packages feed

proto-lens-protoc 0.1.0.5 → 0.9.0.1

raw patch · 22 files changed

Files

+ Changelog.md view
@@ -0,0 +1,127 @@+# Changelog for `proto-lens-protoc`++## v0.9.0.1+- Support GHC 9.12.+- Support GHC 9.14.++## v0.9.0.0+- Support Protobuf Editions 2023 and 2024.+- Update bootstrap protobuf bindings to protobuf v28.0.+- Relax upper bounds for ghc-9.10.++## v0.8.0.0+- Relax upper bounds for ghc-9.6+- Incompatible change: change `forall` to `forall'` in generated code+  due to GHC warning of the upcoming change.++## v0.7.1.1+- Relax upper bounds for ghc-9.2++## v0.7.1.0+- Support GHC 9.0.+- Add ServiceDescriptor to generated services. (#409)+- Support proto3 optional (#400)++## v0.7.0.0+- Support GHC 8.10.+- Support `proto-lens` changes for the new method `packedMessageDescriptor`.+- Bump upper bound to allow base-4.14.+- Bump to ghc-source-gen-0.4.0.0.++### Breaking Changes+- Reexport transitive definitions from modules generated for `.proto` files+  with `import public` statements (#329).+- Bump lower bounds to base-4.10 (ghc-8.2).+- Use `ghc-source-gen` instead of `haskell-src-exts`.  Removes+  `Data.ProtoLens.Compiler.Combinators` and adds+  `Data.ProtoLens.Compiler.Definitions`.+- Limit the exposed library to a single module+  `Data.ProtoLens.Compiler.ModuleName`.  The other modules were not+  used in practice, and exposed internals unnecessarily.++### Backwards-Compatible Changes+- Fix a potential naming conflict when message types and enum values+  are the same except for case.+- Support dependencies on base-4.13 (ghc-8.8) and lens-family-2.0.++## v0.5.0.0++### Breaking Changes+- Capitalize enum values, and capitalize names of enum sub-messages (#270).+- Fix the parser to fail on end-group markers with the wrong tag number (#282).++### Backwards-Compatible Changes+- Allow enum names that start with underscores. (#238)+- Track changes to `proto-lens`: use generated Haskell code and a custom+  parsing monad to encode/decode proto messages faster.+- Store repeated fields internally as `Vector`s, and expose the internal+  representation via new `vec'*` lenses. (#302)+- Use `Vector`s for more efficient encoding/decoding.+- Add more combinators to support the generated code.++## v0.4.0.1+- Bump the dependency on `base` and `containers` to support `ghc-8.6.1`.+- Fix a GHC error on enums with a very large number of cases (#241).++## v0.4.0.0+- Split out `proto-lens-setup` and `proto-lens-runtime` into separate+  packages.+- Hide the constructors and record fields of message types, and make `Show`+  instances call `showMessageShort`.+- Generate explicit `NFData` instances for each type.+- Track the change to `proto-lens`: Don't use `data-default` for+  default proto values (#194).+- Use simplified lens-labels instances. (#208)++## v0.3.1.2+- Bump the upper bound to `temporary-1.3`.+- Fix warnings.++## v0.3.1.1+- Fix management of generated files between Cabal components (#171).+- Bump the lower bound on `base` to indicate we require `ghc>=8.0`.+- Use autogen-modules. (#196)++## v0.3.1.0+- Bump the dependency on `base` for `ghc-8.4.2`.+- Bump the dependency to `Cabal-2.2.*`.+- Make `Symbol` an instance of Semigroup.++## v0.3.0.0+- Remove support for `ghc-7.10`. (#136)+- Use a `.cabal` file that's auto-generated from `hpack`. (#138)+- Separate types into their own module, apart from field lenses.+- Improve readability of `HasLens` instances. (#118)+- Add support for tracking unknown fields. (#129)+- Don't generate Haskell modules if they won't be used. (#126)+- Bundle enum pattern synonyms exports with their type. (#136)+- Split the `Message` class into separate methods. (#139)+- Refactor the `FieldDescriptorType`. (#147)+- Add a case to proto3 enums for unknown values. (#137)+- Track consolidation of `proto-lens-descriptors` into `proto-lens`. (#140)+- Generate service definitions using promoted datatypes. (#154)+- Generate prisms for `oneof` message fields. (#160)++## v0.2.2.3+- Don't camel-case message names.  This reverts behavior which was added+  in v0.2.2.0.++## v0.2.2.2+- Bump the dependency for `process-1.6`.++## v0.2.2.1+- Fix the case where types/constructors of oneofs overlap with those of+  submessages or subenums, by appending `"'"` to the former when required.++## v0.2.2.0+- Bump the dependency on `base` to support `ghc-8.2.1` and `Cabal-2.0`.+- Bump the dependency for `haskell-src-exts-0.19`.+- Improve the semantics of oneof fields, and add a lens to access the+  underlying sum type.+- Generate Ord instances for all exported datatypes.+- Print a better error message when missing `protoc` or `proto-lens-protoc`.+- Expose message names to support `Data.ProtoLens.Any`.+- CamelCase the names of Haskell message types.++## v0.2.1.0 and older+See `Changelog.md` for `proto-lens`.
+ app/Data/ProtoLens/Compiler/Definitions.hs view
@@ -0,0 +1,712 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module takes care of collecting all the definitions in a .proto file+-- and assigning Haskell names to all of the defined things (messages, enums+-- and field names).+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Definitions+    ( Env+    , Definition(..)+    , MessageInfo(..)+    , ServiceInfo(..)+    , MethodInfo(..)+    , PlainFieldInfo(..)+    , FieldInfo(..)+    , FieldKind(..)+    , FieldPacking(..)+    , MapEntryInfo(..)+    , OneofInfo(..)+    , OneofCase(..)+    , FieldName(..)+    , Symbol+    , nameFromSymbol+    , promoteSymbol+    , EnumInfo(..)+    , EnumValueInfo(..)+    , EnumUnrecognizedInfo(..)+    , qualifyEnv+    , unqualifyEnv+    , collectDefinitions+    , collectServices+    , definedFieldType+    , definedType+    , camelCase+    , overloadedFieldName+    ) where++import Data.Char (isUpper, toUpper)+import Data.Int (Int32)+import Data.List (mapAccumL)+import qualified Data.Map as Map+import Data.Maybe (catMaybes, fromMaybe)+#if !MIN_VERSION_base(4,11,0)+import Data.Monoid ((<>))+#endif+import Data.ProtoLens.Labels ()+import Data.ProtoLens.Compiler.Editions.Features+    ( featuresForEdition+    , mergedInto+    )+import qualified Data.Semigroup as Semigroup+import qualified Data.Set as Set+import Data.String (IsString(..))+import Data.Text (Text, cons, splitOn, toLower, uncons, unpack)+import qualified Data.Text as T+import Data.Tree+    ( Tree(..)+    , Forest+    , flatten+    )+import Lens.Family2 ((^.), (^..), toListOf)+import Proto.Google.Protobuf.Descriptor+    ( DescriptorProto+    , Edition(..)+    , EnumDescriptorProto+    , EnumValueDescriptorProto+    , FeatureSet+    , FeatureSet'EnumType(..)+    , FeatureSet'FieldPresence(..)+    , FeatureSet'MessageEncoding(..)+    , FeatureSet'RepeatedFieldEncoding(..)+    , FieldDescriptorProto+    , FieldDescriptorProto'Label(..)+    , FieldDescriptorProto'Type(..)+    , FileDescriptorProto+    , MethodDescriptorProto+    , ServiceDescriptorProto+    )+import GHC.SourceGen+    ( OccNameStr+    , RdrNameStr+    , ModuleNameStr+    , HsType'+    , qual+    , stringTy+    , unqual+    )++-- | 'Env' contains a mapping of proto names (as specified in the .proto file)+-- to Haskell names.  The keys are fully-qualified names, for example,+-- ".package.Message.Submessage".  (The protocol_compiler tool emits all+-- message field types in this form, even if they refer to local definitions.)+--+-- The type 'n' can be either a 'Name' (when talking about definitions within+-- the current file) or a (qualified) 'RdrNameStr' (when talking about definitions+-- either from this or another file).+type Env n = Map.Map Text (Definition n)++{-| Returns the edition for the file.++For proto2 and proto3 files, 'EDITION_PROTO2' and 'EDITION_PROTO3' are returned,+respectively, which will map to the equivalent feature set compatible with+proto2 and proto3.++>>> fileEdition $ defMessage & #syntax .~ "proto2"+Right EDITION_PROTO2+>>> fileEdition $ defMessage & #syntax .~ "proto3"+Right EDITION_PROTO3++-}+fileEdition :: FileDescriptorProto -> Either Text Edition+fileEdition f = case f ^. #syntax of+  "editions" -> Right $ f ^. #edition+  "proto3" -> Right EDITION_PROTO3+  "proto2" -> Right EDITION_PROTO2+  "" -> Right EDITION_PROTO2+  s -> Left $ "Unknown syntax type " <> T.pack (show s)++{-| Returns the feature defaults for the file.++This includes the file-scope options which override+the feature defaults for an edition.+-}+fileFeatures :: FileDescriptorProto -> Either Text FeatureSet+fileFeatures f = do+  edition <- fileEdition f+  features <- featuresForEdition edition+  return $ case f ^. #options . #maybe'features of+             Just overrides -> overrides `mergedInto` features+             Nothing -> features++data Definition n = Message (MessageInfo n) | Enum (EnumInfo n)+    deriving Functor++-- | All the information needed to define or use a proto message type.+data MessageInfo n = MessageInfo+    { messageName :: n  -- ^ Haskell type name+    , messageConstructorName :: n  -- ^ Haskell constructor name+    , messageDescriptor :: DescriptorProto+    , messageFields :: [PlainFieldInfo]+      -- ^ Fields not belonging to a oneof. This includes proto3+      -- optional fields even though they are part of a synthetic+      -- oneof.+    , messageOneofFields :: [OneofInfo]+      -- ^ The oneofs in this message, associated with the fields that+      -- belong to them. Does not include synthetic oneofs generated+      -- for proto3 optional fields.+    , messageUnknownFields :: OccNameStr+      -- ^ The name of the Haskell field in this message that holds the+      -- unknown fields.+    , groupFieldNumber :: Maybe Int32+      -- ^ The number of the field that holds this message, if it is a group.+    } deriving Functor++data ServiceInfo = ServiceInfo+    { serviceName    :: Text+    , servicePackage :: Text+    , serviceMethods :: [MethodInfo]+    , serviceDescriptor :: ServiceDescriptorProto+    }++data MethodInfo = MethodInfo+    { methodName   :: Text+    , methodIdent  :: Text+    , methodInput  :: Text+    , methodOutput :: Text+    , methodClientStreaming :: Bool+    , methodServerStreaming :: Bool+    }++-- | Information about a single field of a proto message,+-- associated with how it is stored.+data PlainFieldInfo = PlainFieldInfo+    { plainFieldKind :: FieldKind+    , plainFieldInfo :: FieldInfo+    }++-- | Information about a single field of a proto message.+data FieldInfo = FieldInfo+    { fieldDescriptor  :: FieldDescriptorProto+    , fieldName :: FieldName+    }++-- | How a field is stored inside of the proto message.+data FieldKind+    = RequiredField+        -- ^ A proto2 required field.  Stored internally as a value.+    | OptionalValueField+        -- ^ A proto3 scalar field.  Stored internally as a value, and+        -- defaults to corresponding instance of fieldDefault.+    | OptionalMaybeField+        -- ^ An optional field where the "unset" and "default" values+        -- are distinguishable.  Stored internally as a Maybe.+        -- In particular: proto2 optional fields, proto3 messages,+        -- proto3 explicitly optional fields and "oneof" fields.+    | RepeatedField FieldPacking+        -- ^ A field containing a sequence of values.+        -- Stored internally as either a list or a map, depending on+        -- whether the field's FieldDescriptorProto of the field has+        -- options.map_entry set.+    | MapField MapEntryInfo+       -- ^ A field containing a map of keys to values.+       -- Serialized as a repeated field of an autogenerated "entry"+       -- proto type, each instance of which contains a key-value pair.++data FieldPacking+    = NotPackable  -- ^ Cannot be packed (e.g., strings or messages).+    | Packable     -- ^ Can be decoded as packed, but should not be not be+                   --   encoded as packed by default.+    | Packed       -- ^ Can be decoded as packed, and should be encoded+                   --   as packed by default.+  deriving Eq++data OneofInfo = OneofInfo+    { oneofFieldName :: FieldName+    , oneofTypeName :: OccNameStr+      -- ^ The name of the sum type corresponding to this oneof.+    , oneofCases :: [OneofCase]+      -- ^ The individual fields that make up this oneof.+    }++data OneofCase = OneofCase+    { caseField :: FieldInfo+    , caseConstructorName :: OccNameStr+        -- ^ The constructor for building a 'oneofTypeName' from the+        -- value in this field.+    , casePrismName :: OccNameStr+        -- ^ The name for building 'Prism' definition.+    }++-- | The "entry" type for a map field is a proto message, autogenerated by+-- protoc, that has two fields: a key and a value. The map field should be+-- serialized like a repeated field of the entry messages.+data MapEntryInfo = MapEntryInfo+    { mapEntryTypeName :: OccNameStr+        -- ^ The Haskell name for this type.+    , keyField :: FieldInfo+        -- ^ The field of the entry type corresponding to the map key.+    , valueField :: FieldInfo+        -- ^ The field of the entry type corresponding to the map value.+    }++data FieldName = FieldName+    { overloadedName :: Symbol+      -- ^ The overloaded name of lenses that access this field.+      -- For example, if the field is called "foo_bar" in the .proto+      -- then @overloadedName == "fooBar"@ and we might generate+      -- @fooBar@ and/or @maybe'fooBar@ lenses to access the data.+      --+      -- May be shared between two different message data types in the same+      -- module.+    , haskellRecordFieldName :: OccNameStr+      -- ^ The Haskell name of this internal record field; for example,+      -- "_Foo'Bar'baz.  Unique within each module.+    }++-- | A string that refers to the name (in Haskell) of a lens that accesses a+-- field.+--+-- For example, in the signature of the overloaded lens+--+-- @+--     foo :: HasLens "foo" ... => Lens ...+-- @+--+-- a 'Symbol' is used to construct both the type-level argument to+-- @HasLens@ and the name of the function @foo@.+newtype Symbol = Symbol String+    deriving (Eq, Ord, IsString, Semigroup.Semigroup, Monoid)++nameFromSymbol :: Symbol -> OccNameStr+nameFromSymbol (Symbol s) = fromString s++-- | Construct a promoted, type-level string.+promoteSymbol :: Symbol -> HsType'+promoteSymbol (Symbol s) = stringTy s++-- | All the information needed to define or use a proto enum type.+data EnumInfo n = EnumInfo+    { enumName :: n+    , enumUnrecognized :: Maybe EnumUnrecognizedInfo+    , enumDescriptor :: EnumDescriptorProto+    , enumValues :: [EnumValueInfo n]+    } deriving Functor++-- | Information about the "unrecognized" case of an enum.+data EnumUnrecognizedInfo = EnumUnrecognizedInfo+    { unrecognizedName :: OccNameStr+    , unrecognizedValueName :: OccNameStr+    }++-- | Information about a single value case of a proto enum.+data EnumValueInfo n = EnumValueInfo+    { enumValueName :: n+    , enumValueDescriptor :: EnumValueDescriptorProto+    , enumAliasOf :: Maybe OccNameStr+        -- ^ If 'Nothing', we turn value into a normal constructor of the enum.+        -- If @'Just' n@, we're treating it as an alias of the constructor @n@+        -- (a PatternSynonym in Haskell).  This mirrors the behavior of the+        -- Java API.+    } deriving Functor++mapEnv :: (n -> n') -> Env n -> Env n'+mapEnv f = fmap $ fmap f++-- Lift a set of local definitions into references to a specific module.+qualifyEnv :: ModuleNameStr -> Env OccNameStr -> Env RdrNameStr+qualifyEnv m = mapEnv (qual m)++-- Lift a set of local definitions into references to the current module.+unqualifyEnv :: Env OccNameStr -> Env RdrNameStr+unqualifyEnv = mapEnv unqual++-- | Look up the Haskell name for the type of a given field (message or enum).+definedFieldType :: FieldDescriptorProto -> Env RdrNameStr -> Definition RdrNameStr+definedFieldType fd env = fromMaybe err $ Map.lookup (fd ^. #typeName) env+  where+    err = error $ "definedFieldType: Field type " ++ unpack (fd ^. #typeName)+                  ++ " not found in environment."++-- | Look up the Haskell name for the type of a given type.+definedType :: Text -> Env RdrNameStr -> Definition RdrNameStr+definedType ty = fromMaybe err . Map.lookup ty+  where+    err = error $ "definedType: Type " ++ unpack ty+                  ++ " not found in environment."++-- | Collect all the definitions in the given file (including definitions+-- nested in other messages), and assign Haskell names to them.+collectDefinitions :: FileDescriptorProto -> Either Text (Env OccNameStr)+collectDefinitions fd = do+  let protoPrefix = case fd ^. #package of+                      "" -> "."+                      p -> "." <> p <> "."+  let hsPrefix = ""+  features <- fileFeatures fd+  return $ Map.fromList $ concatMap flatten $+    messageAndEnumDefs+        features protoPrefix hsPrefix Map.empty+        (fd ^. #messageType) (fd ^. #enumType)++collectServices :: FileDescriptorProto -> [ServiceInfo]+collectServices fd = fmap (toServiceInfo $ fd ^. #package) $ fd ^. #service+  where+    toServiceInfo :: Text -> ServiceDescriptorProto -> ServiceInfo+    toServiceInfo pkg sd =+        ServiceInfo+            { serviceName    = sd ^. #name+            , servicePackage = pkg+            , serviceMethods = fmap toMethodInfo $ sd ^. #method+            , serviceDescriptor = sd+            }++    toMethodInfo :: MethodDescriptorProto -> MethodInfo+    toMethodInfo md =+        MethodInfo+            { methodName   = md ^. #name+            , methodIdent  = camelCase $ md ^. #name+            , methodInput  = fromString . T.unpack $ md ^. #inputType+            , methodOutput = fromString . T.unpack $ md ^. #outputType+            , methodClientStreaming = md ^. #clientStreaming+            , methodServerStreaming = md ^. #serverStreaming+            }++messageAndEnumDefs ::+    FeatureSet -> Text -> String+    -> GroupMap+        -- ^ Group fields of the parent message (if any).+    -> [DescriptorProto]+    -> [EnumDescriptorProto]+    -> Forest (Text, Definition OccNameStr)+        -- ^ Organized as a list of trees, to make it possible for callers+        -- to get the immediate child nested types.+messageAndEnumDefs features protoPrefix hsPrefix groups messages enums+    = map (messageDefs features protoPrefix hsPrefix groups) messages+        ++ map+            (flip Node [] -- Enums have no sub-definitions+                . enumDef features protoPrefix hsPrefix)+            enums++-- | Generate the definitions for a message and its nested types (if any).+messageDefs :: FeatureSet -> Text -> String -> GroupMap -> DescriptorProto+            -> Tree (Text, Definition OccNameStr)+messageDefs features protoPrefix hsPrefix groups d+    = Node (protoName, thisDef) subDefs+  where+    protoName = protoPrefix <> d ^. #name+    hsPrefix' = hsPrefix ++ hsName (d ^. #name) ++ "'"+    allFields = groupFieldsByOneofIndex (d ^. #field)+    thisDef =+        Message MessageInfo+            { messageName = fromString $ hsPrefix ++ hsName (d ^. #name)+              -- Set the constructor name to not conflict with enum values.+            , messageConstructorName =+                 fromString $ hsPrefix ++ hsName (d ^. #name)+                                ++ "'_constructor"+            , messageDescriptor = d+            , messageFields =+                  map (PlainFieldInfo <$>+                              fieldKind features' mapEntries <*> fieldInfo hsPrefix')+                      $ Map.findWithDefault [] Nothing allFields+            , messageOneofFields = collectOneofFields hsPrefix' d allFields+            , messageUnknownFields =+                  fromString $ "_" ++ hsPrefix' ++ "_unknownFields"+            , groupFieldNumber = Map.lookup protoName groups+            }+    subDefs = messageAndEnumDefs+                    features'+                    (protoName <> ".")+                    hsPrefix'+                    (collectGroupFields $ d ^. #field)+                    (d ^. #nestedType)+                    (d ^. #enumType)+    -- For efficiency, only look for map entries within the immediate+    -- nested types, rather than recursively searching through all of them.+    mapEntries = collectMapEntries $ map rootLabel subDefs+    -- Include message-scope feature overrides.+    features' = case d ^. #options . #maybe'features of+      Just overrides -> overrides `mergedInto ` features+      Nothing -> features++-- | If this type is a map entry, retrieves the relevant information+-- along with the proto name of this type.+mapEntryInfo :: Definition OccNameStr -> Maybe MapEntryInfo+mapEntryInfo (Message m)+    | messageDescriptor m ^. #options . #mapEntry+    , [keyFd, valueFd] <- messageFields m+    = Just MapEntryInfo+                { mapEntryTypeName = messageName m+                , keyField = plainFieldInfo keyFd+                , valueField = plainFieldInfo valueFd+                }+mapEntryInfo _ = Nothing++-- | Returns a map whose keys are the proto type name of the entry message.+collectMapEntries :: [(Text, Definition OccNameStr)] -> Map.Map Text MapEntryInfo+collectMapEntries defs =+    Map.fromList+        [(protoName, e) | (protoName, d) <- defs, Just e <- [mapEntryInfo d]]++-- | A map whose keys are the proto type names of the groups in a message,+-- and values are the field numbers for those groups.+-- (Every group corresponds to exactly one message field.)+type GroupMap = Map.Map Text Int32++collectGroupFields :: [FieldDescriptorProto] -> GroupMap+collectGroupFields fs = Map.fromList+    [ (f ^. #typeName, f ^. #number)+    | f <- fs+    , (f ^. #type' == FieldDescriptorProto'TYPE_GROUP) ||+      -- Message fields with DELIMITED encoding are the same as proto2 groups.+      (f ^. #options . #features . #messageEncoding == FeatureSet'DELIMITED)+    ]++fieldInfo :: String -> FieldDescriptorProto -> FieldInfo+fieldInfo hsPrefix f = FieldInfo+                            { fieldDescriptor = f+                            , fieldName = mkFieldName hsPrefix $ f ^. #name+                            }++fieldKind ::+    FeatureSet -> Map.Map Text MapEntryInfo -> FieldDescriptorProto+    -> FieldKind+fieldKind features mapEntries f = case f ^. #label of+            FieldDescriptorProto'LABEL_OPTIONAL ->+                case features' ^. #fieldPresence of+                  FeatureSet'IMPLICIT+                    | f ^. #type' /= FieldDescriptorProto'TYPE_MESSAGE+                      && not (f ^. #proto3Optional)+                      -> OptionalValueField+                    | otherwise -> OptionalMaybeField+                  FeatureSet'EXPLICIT -> OptionalMaybeField+                  FeatureSet'LEGACY_REQUIRED -> RequiredField+                  _ -> error $ "Has unknown field presence: " ++ show (f ^. #name)+            FieldDescriptorProto'LABEL_REQUIRED -> RequiredField+            FieldDescriptorProto'LABEL_REPEATED+                | Just entryInfo <- Map.lookup (f ^. #typeName) mapEntries+                    -> MapField entryInfo+                | otherwise -> RepeatedField packed+  where+    packed+        | f ^. #type' `elem` unpackableTypes = NotPackable+        | packedByDefault = Packed+        | otherwise = Packable++    packedByDefault =+        fromMaybe (features' ^. #repeatedFieldEncoding == FeatureSet'PACKED)+        $ f ^. #options . #maybe'packed++    unpackableTypes =+        [ FieldDescriptorProto'TYPE_MESSAGE+        , FieldDescriptorProto'TYPE_GROUP+        , FieldDescriptorProto'TYPE_STRING+        , FieldDescriptorProto'TYPE_BYTES+        ]++    -- Include field-scope feature overrides+    features' = case f ^. #options . #maybe'features of+      Just overrides -> overrides `mergedInto` features+      Nothing -> features++collectOneofFields+    :: String -> DescriptorProto -> Map.Map (Maybe Int32) [FieldDescriptorProto]+    -> [OneofInfo]+collectOneofFields hsPrefix d allFields+    = catMaybes $ zipWith oneofMaybe [0..] $ d ^.. #oneofDecl . traverse . #name+  where+    oneofMaybe idx n =+      let fields = Map.findWithDefault [] (Just idx) allFields+      in if isSynthetic fields+         then Nothing+         else Just $ oneofInfo n fields+    oneofInfo n fields = OneofInfo+        { oneofFieldName = mkFieldName hsPrefix n+        , oneofTypeName = fromString $ hsPrefix ++ hsNameUnique subdefTypes n+        , oneofCases = map oneofCase fields+        }+    -- The oneof is synthetic if it contains a single proto3_optional field.+    isSynthetic :: [FieldDescriptorProto] -> Bool+    isSynthetic [f] = f ^. #proto3Optional+    isSynthetic _ = False+    oneofCase f =+        let consName = hsPrefix ++ hsNameUnique subdefCons (f ^. #name)+        in OneofCase+            { caseField = fieldInfo hsPrefix f+            , caseConstructorName =+                  -- Note: oneof case constructors aren't prefixed+                  -- by the oneof name; field names (even inside+                  -- of a oneof) are unique within a message.+                  fromString consName+            , casePrismName =+                  fromString $ "_" ++ consName+            }+    -- Make a name that doesn't overlap with those already defined by submessages+    -- or subenums.+    hsNameUnique ns n+        | n' `elem` ns = n' ++ "'"+        | otherwise = n'+      where+        n' = hsName $ camelCase n+    -- The Haskell "type" namespace+    subdefTypes = Set.fromList $ map hsName+                    $ toListOf (#nestedType . traverse . #name) d+                    ++ toListOf (#enumType . traverse . #name) d+    -- The Haskell "expression" namespace (i.e., constructors)+    subdefCons = Set.fromList $ map hsName+                    $ toListOf (#nestedType . traverse . #name) d+                    ++ toListOf (#enumType . traverse . #value . traverse . #name) d++-- | Group fields by the index of the oneof field that they belong to.+-- Or 'Nothing' if they don't belong to a oneof. Proto3 optional+-- fields are included twice, both as members of their synthetic oneof+-- (so that collectOneofFields can use them to recognize synthetic+-- oneofs) and as stand-alone fields for which we generate bindings.+groupFieldsByOneofIndex+    :: [FieldDescriptorProto] -> Map.Map (Maybe Int32) [FieldDescriptorProto]+groupFieldsByOneofIndex =+    fmap reverse+    . Map.fromListWith (++)+    . concatMap mapElementsForField+  where+    mapElementsForField+      :: FieldDescriptorProto -> [(Maybe Int32, [FieldDescriptorProto])]+    mapElementsForField f = case f ^. #maybe'oneofIndex of+      Nothing -> [(Nothing, [f])]+      Just idx -> if f ^. #proto3Optional+                  then [(Nothing, [f]), (Just idx, [f])]+                  else [(Just idx, [f])]++hsName :: Text -> String+hsName = unpack . capitalize++mkFieldName :: String -> Text -> FieldName+mkFieldName hsPrefix n = FieldName+                    { overloadedName = fromString n'+                    , haskellRecordFieldName = fromString $ "_" ++ hsPrefix ++ n'+                    }+      where+        n' = fieldBaseName n++-- | Get the name in Haskell of a proto field, taking care of camel casing and+-- clashes with language keywords.  Doesn't handle the name prefix of the+-- containing type.+fieldBaseName :: Text -> String+fieldBaseName = unpack . disambiguate . camelCase+  where+    disambiguate s+        | s `Set.member` reservedKeywords = s <> "'"+        | otherwise = s++camelCase :: Text -> Text+camelCase s =+    -- Preserve any initial underlines (e.g., "_foo_bar" -> "_fooBar").+    let (underlines, rest) = T.span (== '_') s+    in case splitOn "_" rest of+        -- splitOn always returns a list with at least one element.+        [] -> error $ "camelCase: splitOn returned empty list: "+                        ++ show rest+        [""] -> error $ "camelCase: name consists only of underscores: "+                            ++ show s+        s':ss -> T.concat $ underlines : lowerInitialChars s' : map capitalize ss++-- | Lower-case all initial upper-case characters.+-- For example: "Foo" -> "foo", "FooBar" -> "fooBar", "FOObar" -> "foobar"+lowerInitialChars :: Text -> Text+lowerInitialChars s = toLower pre <> post+  where (pre, post) = T.span isUpper s++-- | A list of reserved keywords that aren't valid as variable names.+reservedKeywords :: Set.Set Text+reservedKeywords = Set.fromList $+    -- Haskell2010 keywords:+    -- https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4+    -- We don't include keywords that are allowed to be variable names,+    -- in particular: "as" and "hiding".+    [ "case"+    , "class"+    , "data"+    , "default"+    , "deriving"+    , "do"+    , "else"+    , "forall"+    , "foreign"+    , "if"+    , "import"+    , "in"+    , "infix"+    , "infixl"+    , "infixr"+    , "instance"+    , "let"+    , "module"+    , "newtype"+    , "of"+    , "then"+    , "type"+    , "where"+    ]+    ++  -- Nonstandard extensions+    [ "mdo"   -- RecursiveDo+    , "rec"   -- Arrows, RecursiveDo+    , "pattern"  -- PatternSynonyms+    , "proc"  -- Arrows+    ]++-- | Generate the definition for an enum type.+enumDef :: FeatureSet -> Text -> String -> EnumDescriptorProto+          -> (Text, Definition OccNameStr)+enumDef features protoPrefix hsPrefix d = let+    mkText n = protoPrefix <> n+    mkHsName n = fromString $ hsPrefix ++ case hsName n of+      ('_':xs) -> 'X':xs+      xs       -> xs+    -- Include enum-scope feature overrides.+    features' = case d ^. #options . #maybe'features of+      Just overrides -> overrides `mergedInto` features+      Nothing -> features+    in (mkText (d ^. #name)+       , Enum EnumInfo+            { enumName = mkHsName (d ^. #name)+            , enumUnrecognized = case features' ^. #enumType of+                FeatureSet'CLOSED -> Nothing+                FeatureSet'OPEN ->+                  Just EnumUnrecognizedInfo+                      { unrecognizedName+                          = mkHsName (d ^. #name <> "'Unrecognized")+                      , unrecognizedValueName+                          = mkHsName (d ^. #name <> "'UnrecognizedValue")+                      }+                _ -> error $ "Has unknown enum type: " ++ show (d ^. #name)+            , enumDescriptor = d+            , enumValues = collectEnumValues mkHsName $ d ^. #value+            })++-- | Generate the definitions for each enum value.  In particular, decide+-- whether it's a true constructor or a PatternSynonym to another+-- constructor.+--+-- Like Java, we treat the first case of each numeric value as the "real"+-- constructor, and subsequent cases as synonyms.+collectEnumValues :: (Text -> OccNameStr) -> [EnumValueDescriptorProto]+                  -> [EnumValueInfo OccNameStr]+collectEnumValues mkHsName = snd . mapAccumL helper Map.empty+  where+    helper :: Map.Map Int32 OccNameStr -> EnumValueDescriptorProto+           -> (Map.Map Int32 OccNameStr, EnumValueInfo OccNameStr)+    helper seenNames v+        | Just n' <- Map.lookup k seenNames = (seenNames, mkValue (Just n'))+        | otherwise = (Map.insert k n seenNames, mkValue Nothing)+      where+        mkValue = EnumValueInfo n v+        n = mkHsName (v ^. #name)+        k = v ^. #number++-- Haskell types must start with an uppercase letter, so we capitalize message+-- and enum names.+-- OccNameStr collisions will show up as build errors in the generated haskell file.+capitalize :: Text -> Text+capitalize s+    | Just (c, s') <- uncons s = cons (toUpper c) s'+    | otherwise = s++overloadedFieldName :: FieldInfo -> Symbol+overloadedFieldName = overloadedName . fieldName
+ app/Data/ProtoLens/Compiler/Editions/Defaults.hs view
@@ -0,0 +1,43 @@+-- Copyright 2024 Google LLC. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++{-|+Module: Data.ProtoLens.Compiler.Editions.Defaults+Description: Exports defaults for native features in Protobuf Editions.+Copyright: Copyright (c) 2024 Google LLC+License: BSD3+-}+module Data.ProtoLens.Compiler.Editions.Defaults (nativeDefaults) where++import Data.ByteString (ByteString)+import Data.ProtoLens (decodeMessage)+import Proto.Google.Protobuf.Descriptor (FeatureSetDefaults)++{-| 'FeatureSetDefaults' message containing feature defaults.++This contains the defaults from editions @LEGACY@ to @EDITION_2023@+for the native features defined by @google.protobuf.FeatureSet@.+-}+nativeDefaults :: FeatureSetDefaults+nativeDefaults+  | Right m <- msg = m+  | Left e <- msg = error $ "unable to decode built-in defaults: " ++ e+  where msg = decodeMessage serializedNativeDefaults++{-| Serialized 'FeatureSetDefaults' message containing feature defaults.++This contains the defaults from editions @PROTO2@ to @EDITION_2024@+for the native features defined by @google.protobuf.FeatureSet@.+The message was generated with @protoc@ and translated into a Haskell string:++> $ protoc --edition_defaults_out=defaults.binpb --edition_defaults_minimum=PROTO2 --edition_defaults_maximum=2024 google/protobuf/descriptor.proto+> $ ghci+> ghci> import Data.ByteString as B+> ghci> B.readFile "defaults.binpb" >>= print . show++-}+serializedNativeDefaults :: ByteString+serializedNativeDefaults = read "\"\\n\\DC3\\CAN\\132\\a\\\"\\NUL*\\f\\b\\SOH\\DLE\\STX\\CAN\\STX \\ETX(\\SOH0\\STX\\n\\DC3\\CAN\\231\\a\\\"\\NUL*\\f\\b\\STX\\DLE\\SOH\\CAN\\SOH \\STX(\\SOH0\\SOH\\n\\DC3\\CAN\\232\\a\\\"\\f\\b\\SOH\\DLE\\SOH\\CAN\\SOH \\STX(\\SOH0\\SOH*\\NUL \\230\\a(\\233\\a\""
+ app/Data/ProtoLens/Compiler/Editions/Features.hs view
@@ -0,0 +1,94 @@+-- Copyright 2024 Google LLC. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}++{-|+Module: Data.ProtoLens.Compiler.Editions.Features+Description: Resolves a feature set for a particular edition with Protobuf Editions.+Copyright: Copyright (c) 2024 Google LLC+License: BSD3+-}+module Data.ProtoLens.Compiler.Editions.Features+  ( featuresForEdition+  , featuresForEditionFromDefaults+  , mergedInto+  ) where++import Control.Applicative ((<|>))+import Data.ProtoLens (defMessage)+import Data.ProtoLens.Compiler.Editions.Defaults (nativeDefaults)+import Data.ProtoLens.Labels ()+import qualified Data.Text as T+import Data.Text (Text)+import Lens.Family2 ((^.), (.~), (&))+import Proto.Google.Protobuf.Descriptor+  ( Edition+  , FeatureSet+  , FeatureSetDefaults)++{-|+Returns the native feature set defaults for the given edition.++Native features refer to the fields directly defined by 'FeatureSet'.+Features defined as extensions of 'FeatureSet' would be custom features.+-}+featuresForEdition :: Edition -> Either Text FeatureSet+featuresForEdition = featuresForEditionFromDefaults nativeDefaults++{-|+Given the feature set defaults for multiple editions,+return the feature set defaults for the given edition.++If extensions were supported, this could be used directly+to resolve custom features defined as extensions of 'FeatureSet'+for a particular edition.+-}+featuresForEditionFromDefaults+  :: FeatureSetDefaults+  -> Edition+  -> Either Text FeatureSet+featuresForEditionFromDefaults defaults edition+  | (d : _) <- candidates =+      Right $ (d ^. #overridableFeatures) `mergedInto` (d ^. #fixedFeatures)+  | otherwise =+      Left $ "Unsupported edition.  Tag number: " <> (T.pack . show . fromEnum) edition+  where+    candidates = dropWhile (\d -> d ^. #edition > edition) recentFirst++    -- #defaults is supposed to be in ascending order of editions+    recentFirst = reverse $ defaults ^. #defaults++{-|+Returns the result of merging a 'FeatureSet' message into another 'FeatureSet' message.++The semantics are the same as @MergeFrom@ in C++.+When merging a message A into a message B, then any field that has a value in A+will override the value of the same field in B,+otherwise the field in B is used as is.++Consider using this function as an infix operator.+For example,++>>> let c = a `mergedInto` b++could be read like "message C is the message A merged into message B".++If merging was generally supported for all messages,+we would use it directly instead of using this custom implementation for 'FeatureSet'.+This does not support merging extensions or unknown fields.+-}+mergedInto :: FeatureSet  -- ^ Feature set to merge from.+           -> FeatureSet  -- ^ Feature set to merge into.+           -> FeatureSet  -- ^ The merged feature set.+mergedInto a b = defMessage+  & #maybe'fieldPresence .~ (a ^. #maybe'fieldPresence <|> b ^. #maybe'fieldPresence)+  & #maybe'enumType .~ (a ^. #maybe'enumType <|> b ^. #maybe'enumType)+  & #maybe'repeatedFieldEncoding .~ (a ^. #maybe'repeatedFieldEncoding <|> b ^. #maybe'repeatedFieldEncoding)+  & #maybe'utf8Validation .~ (a ^. #maybe'utf8Validation <|> b ^. #maybe'utf8Validation)+  & #maybe'messageEncoding .~ (a ^. #maybe'messageEncoding <|> b ^. #maybe'messageEncoding)+  & #maybe'jsonFormat .~ (a ^. #maybe'jsonFormat <|> b ^. #maybe'jsonFormat)
+ app/Data/ProtoLens/Compiler/Generate.hs view
@@ -0,0 +1,1108 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module builds the actual, generated Haskell file+-- for a given input .proto file.+{-# LANGUAGE CPP #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Generate(+    generateModule,+    ) where+++import Control.Arrow (second)+import qualified Data.Foldable as F+import qualified Data.List as List+import qualified Data.Map as Map+import Data.Maybe (isJust)+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif+import Data.Ord (comparing)+import qualified Data.Set as Set+import Data.String (fromString)+import Data.Text (unpack)+import qualified Data.Text as T+import Data.Tuple (swap)+import GHC.SourceGen+#if MIN_VERSION_ghc(8,10,0)+import GHC.Hs (ideclName, ideclAs)+#else+import HsSyn (ideclName, ideclAs)+#endif+#if MIN_VERSION_ghc(9,10,0)+import GHC.Parser.Annotation (noAnn)+#elif MIN_VERSION_ghc(9,2,0)+import GHC.Parser.Annotation (EpAnn(EpAnnNotUsed), SrcSpanAnn'(SrcSpanAnn))+#endif+#if MIN_VERSION_ghc(9,0,0)+#if MIN_VERSION_ghc(9,6,0)+import Language.Haskell.Syntax.Module.Name (moduleNameString, mkModuleName)+#else+import GHC.Unit.Module.Name (moduleNameString, mkModuleName)+#endif+import qualified GHC.Utils.Outputable as Outputable+import GHC.Types.SrcLoc (unLoc)+import qualified GHC.Types.SrcLoc as SrcLoc+#else+import Module (moduleNameString, mkModuleName)+import qualified Outputable+import SrcLoc (unLoc)+import qualified SrcLoc+#endif+import Lens.Family2 ((^.))+import Text.Printf (printf)++import Proto.Google.Protobuf.Descriptor+    ( EnumValueDescriptorProto+    , FileDescriptorProto+    , FieldDescriptorProto+    , FieldDescriptorProto'Type(..)+    )++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.Generate.Commented+import Data.ProtoLens.Compiler.Generate.Encoding+import Data.ProtoLens.Compiler.Generate.Field+    ( hsFieldType+    , hsFieldVectorType+    )++import Data.ProtoLens.Encoding (encodeMessage)+import qualified Data.ByteString as BS++-- Whether to import the "Runtime" modules or the originals;+-- e.g., Data.ProtoLens.Runtime.Data.Map vs Data.Map.+data UseRuntime = UseRuntime | UseOriginal+    deriving (Eq, Read)++-- | Generate a Haskell module for the given input file(s).+-- input contains all defined names, incl. those in this module+generateModule :: ModuleNameStr+               -> FileDescriptorProto -- ^ The complete file descriptor+               -> [ModuleNameStr]  -- ^ The imported modules+               -> [ModuleNameStr]  -- ^ The publicly imported modules+               -> Env OccNameStr      -- ^ Definitions in this file+               -> Env RdrNameStr     -- ^ Definitions in the imported modules+               -> [ServiceInfo]+               -> [CommentedModule]+generateModule modName fdesc imports publicImports definitions importedEnv services+    = [ CommentedModule pragmas+            (module' (Just modName)+                (Just $ serviceExports+                        ++ concatMap generateExports (Map.elems definitions)+                        ++ map moduleContents publicImports)+                (mainImports ++ sharedImports+                    ++ map importQualified (imports List.\\ publicImports)+                    ++ map import' publicImports)+                [])+          $ concatMap generateDecls (Map.toList definitions)+         ++ map uncommented (concatMap (generateServiceDecls env) services)+         ++ map uncommented packedFileDescriptorProto+      , CommentedModule pragmas+            (module' (Just fieldModName) Nothing+                (sharedImports ++ map importQualified imports) [])+          $ map uncommented+          $ concatMap generateFieldDecls allLensNames+      ]+  where+    fieldModName = fromString $ moduleNameString (unModuleNameStr modName) ++ "_Fields"+    pragmas =+          [ languagePragma $ List.intercalate ", " $ map fromString+              ["ScopedTypeVariables", "DataKinds", "TypeFamilies",+               "UndecidableInstances", "GeneralizedNewtypeDeriving",+               "MultiParamTypeClasses", "FlexibleContexts", "FlexibleInstances",+               "PatternSynonyms", "MagicHash", "NoImplicitPrelude",+               "DataKinds", "BangPatterns", "TypeApplications",+               "OverloadedStrings", "DerivingStrategies"]+              -- Allow unused imports in case we don't import anything from+              -- Data.Text, Data.Int, etc.+          , optionsGhcPragma "-Wno-unused-imports"+            -- haskell-src-exts doesn't support exporting `Foo(..., A, B)`+            -- in a single entry, so we use two: `Foo(..)` and `Foo(A, B)`.+          , optionsGhcPragma "-Wno-duplicate-exports"+            -- Don't warn if empty "import public" modules are reexported.+          , optionsGhcPragma "-Wno-dodgy-exports"+          ]+    mainImports = map (reexported . importQualified)+                    [ "Control.DeepSeq", "Data.ProtoLens.Prism" ]+    sharedImports = map (reexported . importQualified)+              [ "Prelude", "Data.Int", "Data.Monoid", "Data.Word"+              , "Data.ProtoLens"+              , "Data.ProtoLens.Encoding.Bytes"+              , "Data.ProtoLens.Encoding.Growing"+              , "Data.ProtoLens.Encoding.Parser.Unsafe"+              , "Data.ProtoLens.Encoding.Wire"+              , "Data.ProtoLens.Field"+              , "Data.ProtoLens.Message.Enum"+              , "Data.ProtoLens.Service.Types"+              , "Lens.Family2", "Lens.Family2.Unchecked"+              , "Data.Text",  "Data.Map", "Data.ByteString", "Data.ByteString.Char8"+              , "Data.Text.Encoding"+              , "Data.Vector"+              , "Data.Vector.Generic"+              , "Data.Vector.Unboxed"+              , "Text.Read"+              ]+    env = Map.union (unqualifyEnv definitions) importedEnv+    generateDecls (protoName, Message m)+        = generateMessageDecls fieldModName env (stripDotPrefix protoName) m+       ++ map uncommented (concatMap (generatePrisms env) (messageOneofFields m))+    generateDecls (_, Enum e) = map uncommented $ generateEnumDecls e+    generateExports (Message m) = generateMessageExports m+                               ++ concatMap generatePrismExports (messageOneofFields m)+    generateExports (Enum e) = generateEnumExports e+    serviceExports = fmap generateServiceExports services+    allLensNames = F.toList $ Set.fromList+        [ lensSymbol inst+        | Message m <- Map.elems definitions+        , info <- allMessageFields env m+        , inst <- recordFieldLenses info+        ]+    -- The packedFileDescriptorProto is a file level definition that's+    -- shared across all message definitions.  If there are no+    -- messages, it's omitted since it's only used inside of Message+    -- instances.+    packedFileDescriptorProto+      | null [m | Message m <- Map.elems definitions] = []+      | otherwise = [+          typeSig "packedFileDescriptor" $ var "Data.ByteString.ByteString",+          valBind "packedFileDescriptor" $ string packedFDesc+          ]+      where+        packedFDesc = fmap (toEnum . fromEnum) . BS.unpack . encodeMessage $ fdesc+    -- The Env uses the convention that Message names are prefixed with '.'+    -- (since that's how the FileDescriptorProto refers to them).+    -- Strip that off when defining MessageDescriptor.messageName.+    stripDotPrefix s+        | Just ('.', s') <- T.uncons s = s'+        | otherwise = s++allMessageFields :: Env RdrNameStr -> MessageInfo OccNameStr -> [RecordField]+allMessageFields env info =+    map (plainRecordField env) (messageFields info)+        ++ map (oneofRecordField env) (messageOneofFields info)++{- We import modules as follows:++1) Modules from proto-lens-runtime: import qualified, strip the prefix:+     import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text++2) Modules from "import" declarations: import qualified:+     import qualified Proto.Foo.Bar++3) Modules from "import public" declarations: import unqualified:+     import Proto.Foo.Bar+   To reexport the imported declarations from the current module via+     module ... (module Proto.Foo.Bar)+   the module Proto.Foo.Bar needs to be unqualified.+   Alternately we could explicitly enumerate every definition being reexported, but+   that would lead to less readable Haddocks and also make codegen a little more+   complicated.+-}++importQualified :: ModuleNameStr -> ImportDecl'+importQualified = qualified' . import'++type ModifyImports = ImportDecl' -> ImportDecl'++reexported :: ModifyImports+reexported imp = imp { ideclName = noLoc m', ideclAs = Just m }+  where+#if MIN_VERSION_ghc(9,10,0)+    noLoc = SrcLoc.L noAnn+#elif MIN_VERSION_ghc(9,2,0)+    noLoc = SrcLoc.L (SrcSpanAnn EpAnnNotUsed SrcLoc.noSrcSpan)+#else+    noLoc = SrcLoc.noLoc+#endif+    m' = mkModuleName $ "Data.ProtoLens.Runtime." ++ moduleNameString (unLoc m)+    m = ideclName imp++messageComment :: ModuleNameStr -> OccNameStr -> [RecordField] -> Outputable.SDoc+messageComment fieldModName n fields =+    Outputable.vcat+        $ [Outputable.text "Fields :", ""]+            ++ map item (concatMap recordFieldLenses fields)+  where+    item :: LensInstance -> Outputable.SDoc+    item l = Outputable.text (printf "    * '%s.%s' @:: "+                 (moduleNameStrToString fieldModName)+                 (occNameStrToString $ nameFromSymbol $ lensSymbol l))+             Outputable.<>+                 Outputable.ppr (var "Lens'" @@ t @@ lensFieldType l)+             Outputable.<> Outputable.char '@'+    t = var (unqual n)++generateMessageExports :: MessageInfo OccNameStr -> [IE']+generateMessageExports m =+    -- Hide the message contructor, but expose "oneof" case constructors.+    thingWith (unqual $ messageName m) []+        : map (thingAll . unqual . oneofTypeName)+                (messageOneofFields m)++generateServiceDecls :: Env RdrNameStr -> ServiceInfo -> [HsDecl']+generateServiceDecls env si =+    -- data MyService = MyService+    [ data' serverDataName []+      [ recordCon serverDataName []+      ]+      []+    ] +++    -- instance Data.ProtoLens.Service.Types.Service MyService where+    --     type ServiceName    MyService = "myService"+    --     type ServicePackage MyService = "some.package"+    --     type ServiceMethods MyService = '["normalMethod", "streamingMethod"]+    --     packedServiceDescriptor _ = ...+    [ instance' (var "Data.ProtoLens.Service.Types.Service" @@ serverRecordType)+        [ tyFamInst "ServiceName" [serverRecordType]+                 . stringTy . T.unpack $ serviceName si+        , tyFamInst "ServicePackage" [serverRecordType]+                 . stringTy . T.unpack $ servicePackage si+        , tyFamInst "ServiceMethods" [serverRecordType]+                 $ listPromotedTy+                      [ stringTy . T.unpack $ methodIdent m+                      | m <- List.sortBy (comparing methodIdent) $ serviceMethods si+                      ]+        , funBind "packedServiceDescriptor" $ match [wildP] $ string svcDescriptor+        ]+    ] +++    -- instance Data.ProtoLens.Service.Types.HasMethodImpl MyService "normalMethod" where+    --     type MethodInput       MyService "normalMethod" = Foo+    --     type MethodOutput      MyService "normalMethod" = Bar+    --     type IsClientStreaming MyService "normalMethod" = 'False+    --     type IsServerStreaming MyService "normalMethod" = 'False+    [ instance' (var "Data.ProtoLens.Service.Types.HasMethodImpl" @@ serverRecordType @@ instanceHead)+        [ tyFamInst "MethodName" [serverRecordType, instanceHead]+                 . stringTy . T.unpack $ methodName m+        , tyFamInst "MethodInput" [serverRecordType, instanceHead]+                 . lookupType $ methodInput m+        , tyFamInst "MethodOutput" [serverRecordType, instanceHead]+                 . lookupType $ methodOutput m+        , tyFamInst "MethodStreamingType" [serverRecordType, instanceHead]+                 . tyPromotedVar+                 $ case (methodClientStreaming m, methodServerStreaming m) of+                     (False, False) -> "Data.ProtoLens.Service.Types.NonStreaming"+                     (True,  False) -> "Data.ProtoLens.Service.Types.ClientStreaming"+                     (False, True)  -> "Data.ProtoLens.Service.Types.ServerStreaming"+                     (True,  True)  -> "Data.ProtoLens.Service.Types.BiDiStreaming"+        ]+    | m <- serviceMethods si+    , let instanceHead = stringTy (T.unpack $ methodIdent m)+    ]+  where+    svcDescriptor = fmap (toEnum . fromEnum) . BS.unpack . encodeMessage $ serviceDescriptor si+    serverDataName = fromString . T.unpack $ serviceName si+    serverRecordType = var $ unqual serverDataName++    lookupType t = case definedType t env of+                       Message msg -> var $ messageName msg+                       Enum _ -> error "Service must have a message type"+++generateMessageDecls :: ModuleNameStr -> Env RdrNameStr -> T.Text -> MessageInfo OccNameStr -> [CommentedDecl]+generateMessageDecls fieldModName env protoName info =+    -- data Bar = Bar {+    --    foo :: Baz+    -- }+    [ commented (messageComment fieldModName (messageName info) allFields)+        $ data' dataName []+            [recordCon (messageConstructorName info) $+                [ (recordFieldName f, strict $ field $ recordFieldType f)+                | f <- allFields+                ]+                ++ [(messageUnknownFields info, strict $ field $ var "Data.ProtoLens.FieldSet")]+            ]+            [derivingStock [var "Prelude.Eq", var "Prelude.Ord"]]+    -- instance Show Bar where+    --   showsPrec __x __s = showChar '{' (showString (showMessageShort __x) (showChar '}' s))+    , uncommented $+        instance' (var "Prelude.Show" @@ dataType)+            [funBind "showsPrec" $ match [bvar "_", bvar "__x", bvar "__s"]+                $ var "Prelude.showChar" @@ char '{'+                    @@ (var "Prelude.showString"+                            @@ (var "Data.ProtoLens.showMessageShort" @@ var "__x")+                        @@ (var "Prelude.showChar" @@ char '}' @@ var "__s"))]+    ] +++    -- oneof field data type declarations+    -- proto: message Foo {+    --          oneof bar {+    --            float c = 1;+    --            Sub s = 2;+    --          }+    --        }+    -- haskell: data Foo'Bar = Foo'Bar'c !Prelude.Float+    --                       | Foo'Bar's !Sub+    [ uncommented $ data' (oneofTypeName oneofInfo) []+      [ prefixCon consName [strict $ field $ hsFieldType env f]+      | c <- oneofCases oneofInfo+      , let f = caseField c+      , let consName = caseConstructorName c+      ]+      [derivingStock [var "Prelude.Show", var "Prelude.Eq", var "Prelude.Ord"]]+    | oneofInfo <- messageOneofFields info+    ] +++    -- instance HasField Foo "foo" Bar+    --   fieldOf _ = ...+    -- Note: for optional fields, this generates an instance both for "foo" and+    -- for "maybe'foo" (see plainRecordField below).+    [ uncommented $ instance'+        (var "Data.ProtoLens.Field.HasField" @@ dataType @@ sym @@ t)+            [funBind "fieldOf" $ match [wildP] $+                var "Prelude.."+                    @@ rawFieldAccessor (unqual $ recordFieldName li)+                    @@ lensExp i]+    | li <- allFields+    , i <- recordFieldLenses li+    , let t = lensFieldType i+    , let sym = promoteSymbol $ lensSymbol i+    ]+    +++    -- instance Message.Message Bar where+    [ uncommented $ instance' (var "Data.ProtoLens.Message" @@ dataType)+        $ messageInstance env protoName info+    -- instance NFData Bar where+    , uncommented $ instance' (var "Control.DeepSeq.NFData" @@ dataType)+        [valBind "rnf" $ messageRnfExpr info]+    ] +++    -- instance NFData Foo'Bar where+    [ uncommented $+        instance' (var "Control.DeepSeq.NFData" @@+                        var (unqual $ oneofTypeName o))+        [funBinds "rnf" $ map oneofRnfMatch $ oneofCases o]+    | o <- messageOneofFields info+    ]+  where+    dataType = var $ unqual dataName+    dataName = messageName info+    allFields = allMessageFields env info++-- oneof Prism declarations+-- proto: message Foo {+--          oneof bar {+--            float c = 1;+--            Sub s = 2;+--          }+--        }+-- haskell: _Foo'C :: Prism' Bar'C Float+--          _Foo'S :: Prism' Bar'S Sub+--+--  example of the function definition for _Foo'C:+-- _Foo'C :: Prism' Bar'C Float+-- _Foo'C+--   = prism' Bar'C+--       (\ p__ ->+--          case p__ of+--              Bar'C p__val -> Prelude.Just p__val+--              _otherwise -> Prelude.Nothing)+generatePrisms :: Env RdrNameStr -> OneofInfo -> [HsDecl']+generatePrisms env oneofInfo =+    if length cases > 1+       then concatMap (generatePrism altOtherwise) cases+       else concatMap (generatePrism mempty) cases+    where+        cases = oneofCases oneofInfo+        altOtherwise = [match [bvar "_otherwise"] (var "Prelude.Nothing")]++        -- Generate type signature+        -- e.g. Prism' Bar'C Float+        generateTypeSig f funName =+            typeSig funName $ var "Data.ProtoLens.Prism.Prism'"+                                -- The oneof sum type name+                             @@ (var . unqual $ oneofTypeName oneofInfo)+                                -- The field contained in the sum+                             @@ hsFieldType env f+        -- Generate function definition+        -- Prism' is constructed with Constructor for building value+        -- and Deconstructor and wrapping in Just for getting value+        generateFunDef :: [RawMatch] -> OccNameStr -> HsExpr'+        generateFunDef otherwiseCase consName =+               var "Data.ProtoLens.Prism.prism'"+               -- Sum type constructor+            @@ var (unqual consName)+               -- Case deconstruction+            @@ lambda [bvar "p__"] (+                    case' (var "p__") $+                       match [conP (unqual consName) [bvar "p__val"]]+                             (var "Prelude.Just" @@ var "p__val")+                       -- We want to generate the otherwise case+                       -- depending on the amount of sum type cases there are+                       : otherwiseCase+                    )+        generatePrism :: [RawMatch] -> OneofCase -> [HsDecl']+        generatePrism otherwiseCase oneofCase =+            let consName = caseConstructorName oneofCase+                prismName = casePrismName oneofCase+            in [ generateTypeSig (caseField oneofCase) prismName+               , valBind prismName $ generateFunDef otherwiseCase consName+               ]++generatePrismExports :: OneofInfo -> [IE']+generatePrismExports = map (var . unqual . casePrismName) . oneofCases++generateEnumExports :: EnumInfo OccNameStr -> [IE']+generateEnumExports e = [thingAll n, thingWith n aliases] ++ proto3NewType+  where+    n = unqual $ enumName e+    aliases = [enumValueName v | v <- enumValues e, needsManualExport v]+    needsManualExport v = isJust (enumAliasOf v)+    proto3NewType = case enumUnrecognized e of+        Just u -> [var . unqual $ unrecognizedValueName u]+        Nothing -> []++generateServiceExports :: ServiceInfo -> IE'+generateServiceExports si = thingAll $ unqual $ fromString $ T.unpack $ serviceName si++generateEnumDecls :: EnumInfo OccNameStr -> [HsDecl']+generateEnumDecls info =+    -- Proto3-only:+    -- newtype FooEnum'UnrecognizedValue = FooEnum'UnrecognizedValue Data.Int.Int32+    --   deriving (Prelude.Eq, Prelude.Ord, Prelude.Show, Prelude.Read)+    [ newtype' (unrecognizedValueName u) []+       (prefixCon (unrecognizedValueName u) [field $ var "Data.Int.Int32"])+       [derivingStock [var "Prelude.Eq", var "Prelude.Ord", var "Prelude.Show"]]+    | Just u <- [unrecognized]+    ]+    ++++    -- data FooEnum+    --     = Enum1+    --     | Enum2+    --     | FooEnum'Unrecognized !FooEnum'UnrecognizedValue+    --   deriving (Prelude.Show, Prelude.Eq, Prelude.Ord, Prelude.Read)+    [ data' dataName []+        (  (flip prefixCon [] <$> constructorNames)+        ++ [ prefixCon (unrecognizedName u)+                [strict $ field $ var $ unqual $ unrecognizedValueName u]+           | Just u <- [unrecognized]+           ]+        )+        [derivingStock [var "Prelude.Show", var "Prelude.Eq", var "Prelude.Ord"]]++    -- instance Data.ProtoLens.MessageEnum FooEnum where+    --       maybeToEnum 0 = Prelude.Just Enum1+    --       maybeToEnum 3 = Prelude.Just Enum2+    --       maybeToEnum k+    --         -- Proto3:+    --         = Prelude.Just+    --             (FooEnum'Unrecognized+    --               (FooEnum'UnrecognizedValue (Prelude.fromIntegral k)))+    --         -- Proto2:+    --         = Nothing+    --+    --       showEnum Foo'Enum2 = "Enum2"+    --       showEnum Foo'Enum1 = "Enum1"+    --       showEnum (FooEnum'Unrecognized (FooEnum'UnrecognizedValue k))+    --         = Prelude.show k+    --+    --       readEnum k+    --           | k == "Enum2a" = Prelude.Just Enum2a -- alias+    --           | k == "Enum2" = Prelude.Just Enum2+    --           | k == "Enum1" = Prelude.Just Enum1+    --       readEnum k = Text.Read.readMaybe k >>= maybeToEnum+    , instance' (var "Data.ProtoLens.MessageEnum" @@ dataType)+        [ funBinds "maybeToEnum" $+            [ match [int k] $ var "Prelude.Just" @@ var (unqual c)+            | (c, k) <- constructorNumbers+            ]+            +++            [ case enumUnrecognized info of+                Nothing -> match [wildP] $ var "Prelude.Nothing"+                Just u -> match [bvar "k"]+                            $ var "Prelude.Just" @@+                                (var (unqual $ unrecognizedName u)+                                @@ (var (unqual $ unrecognizedValueName u)+                                    @@ (var "Prelude.fromIntegral" @@ var "k")+                                    )+                                )+            ]+        , funBinds "showEnum" $+            [ match [conP_ (unqual n)] $ string pn+            | v <- filter (null . enumAliasOf) $ enumValues info+            , let n = enumValueName v+            , let pn = T.unpack $ enumValueDescriptor v ^. #name+            ] +++            [ match [conP (unqual $ unrecognizedName u)+                        [conP (unqual $ unrecognizedValueName u) [bvar "k"]]+                    ]+                $ var "Prelude.show" @@ var "k"+            | Just u <- [unrecognized]+            ]+        , funBind "readEnum" $ matchGRHSs [bvar "k"] $ guardedRhs $+              [ guard (var "Prelude.==" @@ var "k" @@ string pn)+                    $ var "Prelude.Just" @@ var (unqual n)+              | v <- enumValues info+              , let n = enumValueName v+              , let pn = T.unpack $ enumValueDescriptor v ^. #name+              ]+              ++ [guard (var "Prelude.otherwise") $ var "Prelude.>>="+                                      @@ (var "Text.Read.readMaybe" @@ var "k")+                                      @@ var "Data.ProtoLens.maybeToEnum"]+        ]++      -- instance Bounded Foo where+      --    minBound = Foo1+      --    maxBound = FooN+      , instance' (var "Prelude.Bounded" @@ dataType)+          [ valBind "minBound" $ var $ unqual minBoundName+          , valBind "maxBound" $ var $ unqual maxBoundName+          ]++      -- instance Enum Foo where+      --    toEnum k = maybe (error ("Foo.toEnum: unknown argument for enum Foo: "+      --                                ++ show k))+      --                  id (maybeToEnum k)+      --    fromEnum Foo1 = 1+      --    fromEnum Foo2 = 2+      --    ..+      --    succ FooN = error "Foo.succ: bad argument FooN."+      --    succ Foo1 = Foo2+      --    succ Foo2 = Foo3+      --    ..+      --    pred Foo1 = error "Foo.succ: bad argument Foo1."+      --    pred Foo2 = Foo1+      --    pred Foo3 = Foo2+      --    ..+      --    enumFrom = messageEnumFrom+      --    enumFromTo = messageEnumFromTo+      --    enumFromThen = messageEnumFromThen+      --    enumFromThenTo = messageEnumFromThenTo+      , instance' (var "Prelude.Enum" @@ dataType)+        [funBind "toEnum" $ match [bvar "k__"]+                  $ var "Prelude.maybe" @@ errorMessageExpr @@ var "Prelude.id"+                        @@ (var "Data.ProtoLens.maybeToEnum" @@ var "k__")+        , funBinds "fromEnum" $+            [ match [conP_ (unqual c)] $ int k+            | (c, k) <- constructorNumbers+            ]+            +++            [ match [conP (unqual $ unrecognizedName u)+                                [conP (unqual $ unrecognizedValueName u) [bvar "k"]]+                                ]+                    $ var "Prelude.fromIntegral" @@ var "k"+            | Just u <- [unrecognized]+            ]+        , succDecl "succ" maxBoundName succPairs+        , succDecl "pred" minBoundName $ map swap succPairs+        , valBind "enumFrom" $ var "Data.ProtoLens.Message.Enum.messageEnumFrom"+        , valBind "enumFromTo" $ var "Data.ProtoLens.Message.Enum.messageEnumFromTo"+        , valBind "enumFromThen" $ var "Data.ProtoLens.Message.Enum.messageEnumFromThen"+        , valBind "enumFromThenTo"+            $ var "Data.ProtoLens.Message.Enum.messageEnumFromThenTo"+        ]++    -- instance Data.ProtoLens.FieldDefault Foo where+    --   fieldDefault = FirstEnumValue+    , instance' (var "Data.ProtoLens.FieldDefault" @@ dataType)+        [valBind "fieldDefault" defaultCon]++    -- instance NFData Foo where+    --   rnf x__ = seq x__ ()+    -- (Trivial since enum types are already strict)+    , instance' (var "Control.DeepSeq.NFData" @@ dataType)+        [ funBind "rnf" $ match [bvar "x__"]+            $ var "Prelude.seq" @@ var "x__" @@ var "()" ]+    ] ++++    -- pattern Enum2a :: FooEnum+    -- pattern Enum2a = Enum2+    concat+        [ [ patSynSig aliasName dataType+          , patSynBind aliasName [] (bvar originalName)+          ]+        | EnumValueInfo+            { enumValueName = aliasName+            , enumAliasOf = Just originalName+            } <- enumValues info+        ]++  where+    EnumInfo { enumName = dataName+             , enumUnrecognized = unrecognized+             , enumDescriptor = ed+             } = info+    errorMessage = "toEnum: unknown value for enum " ++ unpack (ed ^. #name)+                      ++ ": "++    errorMessageExpr = var "Prelude.error"+                          @@ (var "Prelude.++" @@ string errorMessage+                              @@ (var "Prelude.show" @@ var "k__"))++    dataType = var $ unqual dataName++    constructors :: [(OccNameStr, EnumValueDescriptorProto)]+    constructors = List.sortBy (comparing ((^. #number) . snd))+                            [(n, d) | EnumValueInfo+                                { enumValueName = n+                                , enumValueDescriptor = d+                                , enumAliasOf = Nothing+                                } <- enumValues info+                            ]+    constructorNames = map fst constructors++    defaultCon = var $ unqual minBoundName++    (minBoundName, maxBoundName, succPairs) =+      case constructorNames of+        (c : cs) -> (c, last constructorNames, zip constructorNames cs)+        _ -> error $ "Unexpected empty constructors in " <> show (enumName info)++    constructorNumbers = map (second (fromIntegral . (^. #number))) constructors++    succDecl :: OccNameStr -> OccNameStr -> [(OccNameStr, OccNameStr)] -> RawInstDecl+    succDecl funName boundName thePairs = funBinds funName $+        match [conP_ (unqual boundName)]+            (var "Prelude.error" @@ string (concat+                [ occNameStrToString dataName, "."+                , occNameStrToString funName, ": bad argument "+                , occNameStrToString boundName+                , ". This value would be out of bounds."+                ]))+        :+        [ match [conP_ (unqual from')] $ var $ unqual to+        | (from', to) <- thePairs+        ]+        +++        [ match [conP (unqual $ unrecognizedName u) [wildP]]+            (var "Prelude.error" @@ string (concat+                [ occNameStrToString dataName, "."+                , occNameStrToString funName, ": bad argument: unrecognized value"++                ]))+        | Just u <- [unrecognized]+        ]++generateFieldDecls :: Symbol -> [HsDecl']+generateFieldDecls xStr =+    -- foo :: forall f s a+    --        . (Functor f, HasLens s x a) => LensLike' f s a+    -- foo = fieldOf @s+    [ typeSig x+          $ forall' [bvar "f", bvar "s", bvar "a"]+          $ [ var "Prelude.Functor" @@ var "f"+            , var "Data.ProtoLens.Field.HasField" @@ var "s" @@ xSym @@ var "a"+            ]+          ==> var "Lens.Family2.LensLike'" @@ var "f" @@ var "s" @@ var "a"+    , valBind x $ fieldOfExp xStr+    ]+  where+    x = nameFromSymbol xStr+    xSym = promoteSymbol xStr++------------------------------------------++-- | An individual field of the Haskell type corresponding to a proto message.+data RecordField = RecordField+    { recordFieldName :: OccNameStr  -- ^ The Haskell name of this field (unique+                               --   within the module).+    , recordFieldType :: HsType'  -- ^ Internal type in the record+    , recordFieldLenses :: [LensInstance]+        -- ^ All of the (overloaded) lenses accessing this record field.+    }++-- | An instance of HasLens' for a particular field.+data LensInstance = LensInstance+    { lensSymbol :: Symbol+          -- ^ The overloaded name for this lens.+    , lensFieldType :: HsType'+          -- ^ The type pointed to from this lens.+    , lensExp :: HsExpr'+        -- ^ A lens from the recordFieldType to the lensFieldType; i.e.,+        -- from how it's actually stored in the Haskell record to how the+        -- lens views it.+    }++-- | Compile information about the record field type and type/class instances+-- for this particular field.+--+-- Used for "plain" record fields that are not part of a oneof.+plainRecordField :: Env RdrNameStr -> PlainFieldInfo -> RecordField+plainRecordField env (PlainFieldInfo kind f) = case kind of+    -- data Foo = Foo { _Foo_bar :: Bar }+    -- type instance Field "bar" Foo = Bar+    RequiredField+        -> recordField baseType+                  [LensInstance+                      { lensSymbol = baseName+                      , lensFieldType = baseType+                      , lensExp = rawAccessor+                      }]+    OptionalValueField+              -> recordField baseType+                    [LensInstance+                      { lensSymbol = baseName+                      , lensFieldType = baseType+                      , lensExp = rawAccessor+                      }]+    -- data Foo = Foo { _Foo_bar :: Maybe Bar }+    -- type instance Field "bar" Foo = Bar+    -- type instance Field "maybe'bar" Foo = Maybe Bar+    OptionalMaybeField ->+              recordField maybeType+                  [LensInstance+                      { lensSymbol = baseName+                      , lensFieldType = baseType+                      , lensExp = maybeAccessor+                      }+                  , LensInstance+                      { lensSymbol = "maybe'" <> baseName+                      , lensFieldType = maybeType+                      , lensExp = rawAccessor+                      }+                  ]+        -- data Foo = Foo { _Foo_bar :: Map Bar Baz }+        -- type instance Field "foo" Foo = Map Bar Baz+    MapField entry ->+            let mapType = var "Data.Map.Map"+                            @@ hsFieldType env (keyField entry)+                            @@ hsFieldType env (valueField entry)+            in recordField mapType+                  [LensInstance+                       { lensSymbol = baseName+                       , lensFieldType = mapType+                       , lensExp = rawAccessor+                       }]+        -- data Foo = Foo { _Foo_bar :: [Bar] }+        -- type instance Field "bar" Foo = [Bar]+    RepeatedField {} ->+            recordField vectorType+                  [ LensInstance+                      { lensSymbol = baseName+                      , lensFieldType = listType+                      , lensExp = vectorAccessor+                      }+                  , LensInstance+                      { lensSymbol = "vec'" <> baseName+                      , lensFieldType = vectorType+                      , lensExp = rawAccessor+                      }+                  ]+  where+    recordField = RecordField (haskellRecordFieldName $ fieldName f)+    baseName = overloadedName $ fieldName f+    fd = fieldDescriptor f+    baseType = hsFieldType env f+    maybeType = var "Prelude.Maybe" @@ baseType+    listType = listTy baseType+    vectorType = hsFieldVectorType f @@ baseType+    rawAccessor = var "Prelude.id"+    maybeAccessor = var "Data.ProtoLens.maybeLens"+                          @@ hsFieldValueDefault env fd++vectorAccessor :: HsExpr'+vectorAccessor = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+  where+    getter = var "Data.Vector.Generic.toList"+    setter = lambda [wildP, bvar "y__"]+                $ var "Data.Vector.Generic.fromList" @@ var "y__"++oneofRecordField :: Env RdrNameStr -> OneofInfo -> RecordField+oneofRecordField env oneofInfo+    = RecordField+        { recordFieldName = haskellRecordFieldName $ oneofFieldName oneofInfo+        , recordFieldType =+              var "Prelude.Maybe" @@ var (unqual $ oneofTypeName oneofInfo)+        , recordFieldLenses = lenses+        }+  where+    lenses =+        -- Only generate a "maybe" version of this lens,+        -- since oneofs don't have a notion of a "default" case.+        -- data Foo = Foo { _Foo'bar = Maybe Foo'Bar }+        -- type instance Field "maybe'bar" Foo = Maybe Foo'Bar+        LensInstance+          { lensSymbol = "maybe'" <> overloadedName+                                        (oneofFieldName oneofInfo)+          , lensFieldType =+                var "Prelude.Maybe" @@ var (unqual $ oneofTypeName oneofInfo)+          , lensExp = var "Prelude.id"+          }+        : concat+          -- Generate the same lenses for each sub-field of the oneof+          -- as if they were proto2 optional fields.+          -- type instance Field "bar" Foo = Bar+          -- type instance Field "maybe'bar" Foo = Maybe Bar+            [ [ LensInstance+                { lensSymbol = maybeName+                , lensFieldType = var "Prelude.Maybe" @@ baseType+                , lensExp = oneofFieldAccessor c+                }+              , LensInstance+                { lensSymbol = baseName+                , lensFieldType = baseType+                , lensExp = var "Prelude.."+                                @@ oneofFieldAccessor c+                                @@ (var "Data.ProtoLens.maybeLens"+                                              @@ hsFieldValueDefault env+                                                    (fieldDescriptor f))+                }+              ]+            | c <- oneofCases oneofInfo+            , let f = caseField c+            , let baseName = overloadedName $ fieldName f+            , let baseType = hsFieldType env f+            , let maybeName = "maybe'" <> baseName+            ]++hsFieldDefault :: Env RdrNameStr -> PlainFieldInfo -> HsExpr'+hsFieldDefault env f = case plainFieldKind f of+    RequiredField -> hsFieldValueDefault env fd+    OptionalValueField -> hsFieldValueDefault env fd+    OptionalMaybeField -> var "Prelude.Nothing"+    MapField {} -> var "Data.Map.empty"+    RepeatedField {} -> var "Data.Vector.Generic.empty"+  where+    fd = fieldDescriptor (plainFieldInfo f)++hsFieldValueDefault :: Env RdrNameStr -> FieldDescriptorProto -> HsExpr'+hsFieldValueDefault env fd = case fd ^. #type' of+    FieldDescriptorProto'TYPE_MESSAGE -> var "Data.ProtoLens.defMessage"+    FieldDescriptorProto'TYPE_GROUP -> var "Data.ProtoLens.defMessage"+    FieldDescriptorProto'TYPE_ENUM+        | T.null def -> var "Data.ProtoLens.fieldDefault"+        | Enum e <- definedFieldType fd env+        , Just v <- List.lookup def [ (enumValueDescriptor v ^. #name, enumValueName v)+                                    | v <- enumValues e+                                    ]+            -> var v+        | otherwise -> errorMessage "enum"+    -- The rest of the cases are for scalar fields that have a fieldDefault+    -- instance.+    _ | T.null def -> var "Data.ProtoLens.fieldDefault"+    FieldDescriptorProto'TYPE_BOOL+        | def == "true" -> var "Prelude.True"+        | def == "false" -> var "Prelude.False"+        | otherwise -> errorMessage "bool"+    FieldDescriptorProto'TYPE_STRING+        -> var "Data.Text.pack" @@ string (T.unpack def)+    FieldDescriptorProto'TYPE_BYTES+        -> var "Data.ByteString.pack"+                @@ list (mkByte . fromEnum <$> T.unpack def)+      where mkByte c+              | c > 0 && c < 255 = int $ fromIntegral c+              | otherwise = errorMessage "bytes"+    FieldDescriptorProto'TYPE_FLOAT -> defaultFrac $ T.unpack def+    FieldDescriptorProto'TYPE_DOUBLE -> defaultFrac $ T.unpack def+    -- Otherwise, assume it's an integral field:+    _ -> defaultInt $ T.unpack def+  where+    def = fd ^. #defaultValue+    errorMessage fieldType+        = error $ "Bad default value " ++ show (T.unpack def)+                    ++ " in default value for " ++ fieldType ++ " field "+                    ++ unpack (fd ^. #name)+    -- float/double fields can use nan, inf and -inf as default values.+    -- The Prelude doesn't provide names for them, so we implement+    -- them as division by zero.+    defaultFrac "nan" = var "Prelude./" @@ frac 0 @@ frac 0+    defaultFrac "inf" = var "Prelude./" @@ frac 1 @@ frac 0+    defaultFrac "-inf" = var "Prelude./" @@ frac (negate 1) @@ frac 0+    defaultFrac s = case reads s of+        [(x, "")] -> frac $ toRational (x :: Double)+        _ -> errorMessage "fractional"+    defaultInt s = case reads s of+        [(x, "")] -> int x+        _ -> errorMessage "integral"++-- | A lens to access an internal field.+--+--   lens _Foo_bar (\x__ y__ -> x__ { _Foo_bar = y__ })+rawFieldAccessor :: RdrNameStr -> HsExpr'+rawFieldAccessor f = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+  where+    getter = var f+    setter = lambda [bvar "x__", bvar "y__"]+                    $ recordUpd (var "x__") [(f, var "y__")]++-- | A lens that maps from a oneof sum type to one of its individual cases.+--+-- For example, with+--     data Foo = Bar Int32 | Baz Int64+--+-- this will generate a lens of type @Lens' (Maybe Foo) (Maybe Int32)@.+--+-- (Recall that oneofs are stored in a proto message as @Maybe Foo@, where+-- 'Nothing' means that it's either set to an unknown value or unset.)+--+-- lens+--   (\ x__ -> case x__ of+--       Prelude.Just (Foo'c x__val) -> Prelude.Just x__val+--       otherwise -> Prelude.Nothing)+--   (\ _ y__ -> fmap Foo'c y__+oneofFieldAccessor :: OneofCase -> HsExpr'+oneofFieldAccessor o+        = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+  where+    consName = caseConstructorName o+    getter = lambda [bvar "x__"] $+        case' (var "x__")+            [ match [conP "Prelude.Just" [conP (unqual consName) [bvar "x__val"]]]+                $ var "Prelude.Just" @@ var "x__val"+            , match [bvar "_otherwise"] $ var "Prelude.Nothing"+            ]+    setter = lambda [wildP, bvar "y__"]+                $ var "Prelude.fmap" @@ var (unqual consName) @@ var "y__"++messageInstance :: Env RdrNameStr -> T.Text -> MessageInfo OccNameStr -> [RawInstDecl]+messageInstance env protoName m =+    [ funBind "messageName" $ match [wildP] $+          var "Data.Text.pack" @@ string (T.unpack protoName)+    , funBind "packedMessageDescriptor" $ match [wildP] $ string msgDescriptor+    , funBind "packedFileDescriptor" $ match [wildP] $ var "packedFileDescriptor"+    , valBind "fieldsByTag" $+          let' (map (fieldDescriptorVarBind $ messageName m) fields)+              $ var "Data.Map.fromList" @@ list fieldsByTag+    , valBind "unknownFields"+           $ rawFieldAccessor (unqual $ messageUnknownFields m)+    , valBind "defMessage"+           $ recordConE (unqual $ messageConstructorName m) $+                  [ (unqual $ haskellRecordFieldName+                                    $ fieldName $ plainFieldInfo f,+                        hsFieldDefault env f)+                  | f <- messageFields m+                  ] +++                  [ (unqual $ haskellRecordFieldName $ oneofFieldName o,+                        var "Prelude.Nothing")+                  | o <- messageOneofFields m+                  ] +++                  [ (unqual $ messageUnknownFields m, var "[]")]+    , valBind "parseMessage" $ generatedParser env m+    , valBind "buildMessage" $ generatedBuilder m+    ]+  where+    msgDescriptor = fmap (toEnum . fromEnum) . BS.unpack . encodeMessage $ messageDescriptor m+    fieldsByTag =+        [tuple+              [ t, fieldDescriptorVar f ]+              | f <- fields+              , let t = var "Data.ProtoLens.Tag"+                          @@ int (fromIntegral+                                      $ fieldDescriptor (plainFieldInfo f) ^. #number)+              ]+    fieldDescriptorVar = var . unqual . fieldDescriptorName+    fieldDescriptorName f+        = nameFromSymbol $ overloadedName (fieldName . plainFieldInfo $ f)+                                <> "__field_descriptor"+    fieldDescriptorVarBind n f+        = valBind (fieldDescriptorName f)+            $ fieldDescriptorExpr env n f+    fields = messageFields m+                ++ (messageOneofFields m >>= fmap casePlainField . oneofCases)+    -- The cases of an optional are always treated like proto2 "maybe" fields.+    -- This code here does not apply to proto3 optional fields which+    -- are absent from messageOneofFields, but those get treated as+    -- OptionalMaybeField by fieldKind so they behave the same.+    casePlainField = PlainFieldInfo OptionalMaybeField . caseField++-- | Get the name of the field when used in a text format proto. Groups are+-- special because their text format field name is the name of their type,+-- not the name of the field in the descriptor (e.g. "Foo", not "foo").+textFormatFieldName :: Env RdrNameStr -> FieldDescriptorProto -> T.Text+textFormatFieldName env descr = case descr ^. #type' of+    FieldDescriptorProto'TYPE_GROUP+        | Message msg <- definedFieldType descr env+              -> messageDescriptor msg ^. #name+        | otherwise -> error $ "expected TYPE_GROUP for type name"+                           ++ T.unpack (descr ^. #typeName)+    _ -> descr ^. #name++fieldDescriptorExpr :: Env RdrNameStr -> OccNameStr -> PlainFieldInfo+                    -> HsExpr'+fieldDescriptorExpr env n f =+    (var "Data.ProtoLens.FieldDescriptor"+        -- Record the original .proto name for text format+        @@ string (T.unpack $ textFormatFieldName env fd)+        -- Force the type signature since it can't be inferred for Map entry+        -- types.+        @@ (fieldTypeDescriptorExpr (fd ^. #type')+                @::@+                    (var "Data.ProtoLens.FieldTypeDescriptor"+                        @@ hsFieldType env (plainFieldInfo f)))+        @@ fieldAccessorExpr f)+    -- TODO: why is this type sig needed?+    @::@+    (var "Data.ProtoLens.FieldDescriptor" @@ var (unqual n))+  where+    fd = fieldDescriptor $ plainFieldInfo f++fieldAccessorExpr :: PlainFieldInfo -> HsExpr'+-- (PlainField Required foo), (OptionalField foo), etc...+fieldAccessorExpr (PlainFieldInfo kind f) = accessorCon @@ fieldOfExp hsFieldName++  where+    accessorCon = case kind of+          RequiredField+                -> var "Data.ProtoLens.PlainField" @@ var "Data.ProtoLens.Required"+          OptionalValueField+                -> var "Data.ProtoLens.PlainField" @@ var "Data.ProtoLens.Optional"+          OptionalMaybeField+                -> var "Data.ProtoLens.OptionalField"+          MapField entry+                  -> var "Data.ProtoLens.MapField"+                         @@ fieldOfExp (overloadedField $ keyField entry)+                         @@ fieldOfExp (overloadedField $ valueField entry)+          RepeatedField packed ->+                var "Data.ProtoLens.RepeatedField"+                  @@ if packed == Packed+                        then var "Data.ProtoLens.Packed"+                        else var "Data.ProtoLens.Unpacked"+    hsFieldName+        = case kind of+            OptionalMaybeField -> "maybe'" <> overloadedField f+            _ -> overloadedField f++fieldOfExp :: Symbol -> HsExpr'+fieldOfExp sym = var "Data.ProtoLens.Field.field" `tyApp` promoteSymbol sym++overloadedField :: FieldInfo -> Symbol+overloadedField = overloadedName . fieldName++fieldTypeDescriptorExpr :: FieldDescriptorProto'Type -> HsExpr'+fieldTypeDescriptorExpr = \case+    FieldDescriptorProto'TYPE_DOUBLE -> mk "ScalarField" "DoubleField"+    FieldDescriptorProto'TYPE_FLOAT -> mk "ScalarField" "FloatField"+    FieldDescriptorProto'TYPE_INT64 -> mk "ScalarField" "Int64Field"+    FieldDescriptorProto'TYPE_UINT64 -> mk "ScalarField" "UInt64Field"+    FieldDescriptorProto'TYPE_INT32 -> mk "ScalarField" "Int32Field"+    FieldDescriptorProto'TYPE_FIXED64 -> mk "ScalarField" "Fixed64Field"+    FieldDescriptorProto'TYPE_FIXED32 -> mk "ScalarField" "Fixed32Field"+    FieldDescriptorProto'TYPE_BOOL -> mk "ScalarField" "BoolField"+    FieldDescriptorProto'TYPE_STRING -> mk "ScalarField" "StringField"+    FieldDescriptorProto'TYPE_GROUP -> mk "MessageField" "GroupType"+    FieldDescriptorProto'TYPE_MESSAGE -> mk "MessageField" "MessageType"+    FieldDescriptorProto'TYPE_BYTES -> mk "ScalarField" "BytesField"+    FieldDescriptorProto'TYPE_UINT32 -> mk "ScalarField" "UInt32Field"+    FieldDescriptorProto'TYPE_ENUM -> mk "ScalarField" "EnumField"+    FieldDescriptorProto'TYPE_SFIXED32 -> mk "ScalarField" "SFixed32Field"+    FieldDescriptorProto'TYPE_SFIXED64 -> mk "ScalarField" "SFixed64Field"+    FieldDescriptorProto'TYPE_SINT32 -> mk "ScalarField" "SInt32Field"+    FieldDescriptorProto'TYPE_SINT64 -> mk "ScalarField" "SInt64Field"+  where+    mk x y = var (fromString ("Data.ProtoLens." ++ x))+              @@ var (fromString ("Data.ProtoLens." ++ y))++-- | Generate the implementation of NFData.rnf for the given message.+--+-- instance NFData Bar where+--    rnf = \x -> deepseq (_Bar'foo x) (deepseq (_Bar'bar x) ())+messageRnfExpr :: MessageInfo OccNameStr -> HsExpr'+messageRnfExpr msg = lambda [bvar "x__"] $ foldr ((@@) . seqField) unit fieldNames+  where+    fieldNames = messageUnknownFields msg+                : map (haskellRecordFieldName . fieldName . plainFieldInfo)+                       (messageFields msg)+                ++ map (haskellRecordFieldName . oneofFieldName)+                       (messageOneofFields msg)+    seqField :: OccNameStr -> HsExpr'+    seqField f = var "Control.DeepSeq.deepseq" @@ (var (unqual f) @@ var "x__")++--   rnf (Foo'a x__) = rnf x__+--   rnf (Bar'b x__) = rnf x__+oneofRnfMatch :: OneofCase -> RawMatch+oneofRnfMatch c = match [unqual (caseConstructorName c) `conP` [bvar "x__"]]+                    $ var "Control.DeepSeq.rnf" @@ var "x__"
+ app/Data/ProtoLens/Compiler/Generate/Commented.hs view
@@ -0,0 +1,62 @@+{-# LANGUAGE CPP #-}+-- | Enables pretty-printing Haddock comments along with top-level declarations.+module Data.ProtoLens.Compiler.Generate.Commented where++import GHC.SourceGen+#if MIN_VERSION_ghc(9,0,0)+import GHC.Utils.Outputable (Outputable(..), SDoc, (<+>), ($+$), vcat, empty, text)+#else+import Outputable (Outputable(..), SDoc, (<+>), ($+$), vcat, empty, text)+#endif+#if MIN_VERSION_ghc(8,10,0)+import GHC.Hs (hsmodName)+#else+import HsSyn (hsmodName)+#endif+import GHC (ModuleName)+#if MIN_VERSION_ghc(9,0,0)+import GHC.Types.SrcLoc (unLoc)+#else+import SrcLoc (unLoc)+#endif++-- | A declaration, along with an optional comment.+--+-- GHC's pretty-printer omits the contents of comments, so we can't use it here.+data CommentedDecl = CommentedDecl (Maybe SDoc) HsDecl'++instance Outputable CommentedDecl where+    ppr (CommentedDecl maybeComment decl) =+        maybe empty pprComment maybeComment+        $+$ ppr decl+      where+        pprComment c = text "{- |" <+> c <+> text "-}"++uncommented :: HsDecl' -> CommentedDecl+uncommented = CommentedDecl Nothing++commented :: SDoc -> HsDecl' -> CommentedDecl+commented = CommentedDecl . Just++data CommentedModule = CommentedModule+    { pragmaComments :: [String]+    , moduleHeader :: HsModule'+    , commentedDecls :: [CommentedDecl]+    }++getModuleName :: CommentedModule -> ModuleName+getModuleName m =+    maybe+        (error "getModuleName: No explicit name")+        unLoc+        (hsmodName $ moduleHeader m)++instance Outputable CommentedModule where+    ppr m =+        vcat (map text $ pragmaComments m)+        $+$ ppr (moduleHeader m)+        $+$ vcat (map ppr $ commentedDecls m)++languagePragma, optionsGhcPragma :: String -> String+languagePragma s = "{-# LANGUAGE " ++ s ++ "#-}"+optionsGhcPragma s = "{-# OPTIONS_GHC " ++ s ++ "#-}"
+ app/Data/ProtoLens/Compiler/Generate/Encoding.hs view
@@ -0,0 +1,661 @@+-- | This module generates code for decoding and encoding protocol buffer messages.+--+-- Upstream docs: <https://developers.google.com/protocol-buffers/docs/encoding>+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Generate.Encoding+    ( generatedParser+    , generatedBuilder+    ) where++import Data.Int (Int32)+import qualified Data.Map as Map+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif+import qualified Data.Text as Text+import Lens.Family2 ((^.))+import GHC.SourceGen++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.Generate.Field+import Data.ProtoLens.Encoding.Wire (joinTypeAndTag)+import Proto.Google.Protobuf.Descriptor+  ( FieldDescriptorProto'Type(..)+  , FeatureSet'MessageEncoding(..)+  )++generatedParser :: Env RdrNameStr -> MessageInfo OccNameStr -> HsExpr'+generatedParser env m =+    {- let loop :: T -> Bool -> Bool -> ...+                   -> MVector RealWorld Int32 -> MVector RealWorld Float -> ...+                   -> Parser T+           loop x required'a required'b ... mutable'a mutable'b ... = ...+       in "package.T" <?> do+            mutable'a <- unsafeLiftIO new+            mutable'b <- unsafeLiftIO new+            ...+            loop defMessage True True ... mutable'a mutable'b ...+    -}+    let' [typeSig loop loopSig+         , funBind loop $ match (bvar <$> loopArgs names) loopExpr+         ]+        $ var "Data.ProtoLens.Encoding.Bytes.<?>"+           @@ do' (startStmts ++ [stmt $ continue startExp])+           @@ string msgName+  where+    ty = var (unqual $ messageName m)+    msgName = Text.unpack (messageDescriptor m ^. #name)+    loopSig = foldr (-->)+        (var "Data.ProtoLens.Encoding.Bytes.Parser" @@ ty)+        (loopArgs $ parseStateTypes env m)++    names = parseStateNames m+    exprs = fmap (var . unqual) names+    tag = bvar "tag"+    end = bvar "end"+    loop = "loop"++    (startStmts, startExp) = startParse names++    continue :: ParseState HsExpr' -> HsExpr'+    continue s = foldl (@@) (var loop) (loopArgs s)++    loopExpr+        {- Group:+            do+              tag <- getVarInt+              case tag of+                {groupEndTag} -> {finish}+                ... -- Regular message fields++          TODO(#282): fail the parse if we find a group-end tag+          with an incorrect field number.+        -}+        | Just g <- groupFieldNumber m = do'+            [ tag <-- getVarInt'+            , stmt $ case' tag $+                match [int (groupEndTag g)] (finish m exprs)+                    : parseTagCases continue exprs m+            ]+        {- Regular message type:+              do+                end <- atEnd+                if end+                    then {finish}+                    else do+                        tag <- getVarInt+                        case tag of ...+        -}+        | otherwise = do'+            [ end <-- var "Data.ProtoLens.Encoding.Bytes.atEnd"+            , stmt $+                if' end (finish m exprs)+                    $ do'+                        [ tag <-- getVarInt'+                        , stmt $ case' tag $ parseTagCases continue exprs m+                        ]+            ]++-- | A Parser expression that finalizes the message.+finish :: MessageInfo OccNameStr -> ParseState HsExpr' -> HsExpr'+finish m s = do' $+    {- do+        frozen'a <- unsafeLiftIO $ unsafeFreeze mutable'a+        frozen'b <- unsafeLiftIO $ unsafeFreeze mutable'b+        ...+        {checkMissingFields}+        over unknownFields reverse+            $ set field @"vec'a" frozen'a+            $ set field @"vec'b" frozen'b+            ...+            $ {partialMessage}+    -}+    [ bvar frozen <-- unsafeLiftIO' @@+                    (var "Data.ProtoLens.Encoding.Growing.unsafeFreeze"+                        @@ mutable)+    | (frozen, mutable) <- Map.elems $ Map.intersectionWith (,)+                                frozenNames (repeatedFieldMVectors s)+    ]+    +++    [ stmt $ checkMissingFields s+    , stmt $ var "Prelude.return" @@+        (over' unknownFields' (var "Prelude.reverse")+            @@ foldr (@@)+                (partialMessage s)+                (Map.intersectionWith+                    (\finfo frozen ->+                        var "Lens.Family2.set"+                            @@ fieldOfVector finfo+                            @@ var (unqual frozen))+                repeatedInfos frozenNames))+            ]++  where+    repeatedInfos = repeatedFields m+    frozenNames = (\f -> nameFromSymbol $ "frozen'" <> overloadedFieldName f)+                    <$> repeatedInfos++-- | The state of the parsing loop.  Each instance of @v@ corresponds+-- to an argument of the loop function.+data ParseState v = ParseState+    { partialMessage :: v+        -- ^ The message that we're parsing.+    , requiredFieldsUnset :: Map.Map FieldId v+        -- ^ The required fields of the message, each corresponding to+        -- a @Bool@ argument of the loop.+    , repeatedFieldMVectors :: Map.Map FieldId v+        -- ^ The repeated fields of the message, each corresponding to+        -- an @MVector@ argument of the loop.+    } deriving Functor++-- | Returns a sequence of all arguments of the loop function.+loopArgs :: ParseState v -> [v]+loopArgs s = partialMessage s : Map.elems (requiredFieldsUnset s)+                                ++ Map.elems (repeatedFieldMVectors s)++-- | The proto name of the field.+newtype FieldId = FieldId Text.Text+    deriving (Eq, Ord)++fieldId :: PlainFieldInfo -> FieldId+fieldId f = FieldId $ fieldDescriptor (plainFieldInfo f) ^. #name++-- | The names of the loop arguments.+parseStateNames :: MessageInfo OccNameStr -> ParseState OccNameStr+parseStateNames m = ParseState+    { partialMessage = "x"+    , requiredFieldsUnset = Map.fromList+        [ (fieldId f, nameFromSymbol $ "required'" <> n)+        | f <- messageFields m+        , let info = plainFieldInfo f+        , let n = overloadedFieldName info+        , RequiredField <- [plainFieldKind f]+        ]+    , repeatedFieldMVectors =+        (\f -> nameFromSymbol $ "mutable'" <> overloadedFieldName f)+            <$> repeatedFields m+    }++repeatedFields :: MessageInfo OccNameStr -> Map.Map FieldId FieldInfo+repeatedFields m = Map.fromList+    [ (fieldId f, plainFieldInfo f)+    | f <- messageFields m+    , RepeatedField{} <- [plainFieldKind f]+    ]++-- | Intialize the values of the loop arguments.+startParse :: ParseState OccNameStr -> ([Stmt'], ParseState HsExpr')+startParse names =+    ([ bvar n <-- unsafeLiftIO' @@ var "Data.ProtoLens.Encoding.Growing.new"+     | n <- Map.elems mvectorNames+     ]+    , ParseState+        { partialMessage = var "Data.ProtoLens.defMessage"+        , requiredFieldsUnset = const (var "Prelude.True")+                                    <$> requiredFieldsUnset names+        , repeatedFieldMVectors = var . unqual <$> mvectorNames+        }+    )+  where+    mvectorNames = repeatedFieldMVectors names++-- | The types of the loop arguments.+parseStateTypes :: Env RdrNameStr -> MessageInfo OccNameStr -> ParseState HsType'+parseStateTypes env m = ParseState+    { partialMessage = var $ unqual $ messageName m+    , requiredFieldsUnset = fmap (const $ var "Prelude.Bool")+                            $ requiredFieldsUnset+                            $ parseStateNames m+    , repeatedFieldMVectors = growingType env <$> repeatedFields m+    }++-- | Transform the loop arguments by applying a given function+-- to the intermediate message value.+updateParseState ::+       HsExpr' -- ^ An expression of type @msg -> msg@+    -> ParseState HsExpr'+    -> ParseState HsExpr'+updateParseState f s = s { partialMessage = f @@ partialMessage s }++-- | Transform the loop arguments by marking a required field+-- as having been set.+markRequiredField :: FieldId -> ParseState HsExpr' -> ParseState HsExpr'+markRequiredField f s =+    s { requiredFieldsUnset = Map.insert f (var "Prelude.False")+                                $ requiredFieldsUnset s }++-- | Append to the given repeated field.+appendToRepeated :: FieldId -> HsExpr' -> ParseState HsExpr' -> (Stmt', ParseState HsExpr')+appendToRepeated f x s =+    ( v <-- unsafeLiftIO'+                @@ (var "Data.ProtoLens.Encoding.Growing.append"+                        @@ (repeatedFieldMVectors s Map.! f)+                        @@ x)+    , s { repeatedFieldMVectors =+                            Map.insert f v+                                $ repeatedFieldMVectors s+                        }+    )+  where+    v = bvar "v"++-- | Returns an HsExpr' of type @Parser ()@+-- which fails if any of the missing fields aren't set.+checkMissingFields :: ParseState HsExpr' -> HsExpr'+checkMissingFields s =+    {- let missing = (if required'a then ("a":) else id)+                        ((if required'b then ("b":) else id)+                        ... [])+       in if null missing then return ()+          else fail ("Missing required fields: " ++ show missing)+    -}+    let' [valBind missing allMissingFields]+    $ if' (var "Prelude.null" @@ var missing) (var "Prelude.return" @@ unit)+    $ var "Prelude.fail"+        @@ (var "Prelude.++"+                @@ string "Missing required fields: "+                @@ (var "Prelude.show" @@ (var missing @::@ listTy (var "Prelude.String"))))+  where+    missing = "missing"+    allMissingFields = Map.foldrWithKey consIfMissing (list []) (requiredFieldsUnset s)+    consIfMissing (FieldId f) e rest =+        if' e (cons @@ string (Text.unpack f)) (var "Prelude.id") @@ rest++-- | A list case alternatives for the fields of a message.+--+-- The exact structure of each case differs based on the field type.  However, it+-- generally looks like:+--+-- @+--   {N} -> do+--           {VALUE} <- {PARSE}+--           loop (set {FIELD} {VALUE} x) required'a False required'c ...+-- @+--+-- where:+--  - {N} is an integer representing the wire type + field number,+--  - {VALUE} is an expression of type "V", which is the type of the field,+--  - {PARSE} is an expression of the form "Parser V",+--  - and "loop" and "x" are as in @generatedParser@.+parseTagCases ::+       (ParseState HsExpr' -> HsExpr')+            -- ^ loop continuation, equivalent to "msg -> Bool -> ... -> Bool -> Parser msg".+            -- It continues the loop with the given new value of the message, keeping track+            -- of whether the required fields are still needed.+    -> ParseState HsExpr' -- ^ Previous value of the message and required field states+    -> MessageInfo OccNameStr+    -> [RawMatch]+parseTagCases loop x info =+    concatMap (parseFieldCase loop x) allFields+    -- TODO: currently we ignore unknown fields.+    ++ [unknownFieldCase info loop x]+  where+    allFields = messageFields info+                -- Cases of a oneof are decoded like optional oneof fields.+                ++ [ PlainFieldInfo OptionalMaybeField (caseField c)+                   | o <- messageOneofFields info+                   , c <- oneofCases o+                   ]++-- | A particular parsing case.  See @parseTagCases@ for details.+parseFieldCase ::+    (ParseState HsExpr' -> HsExpr') -> ParseState HsExpr' -> PlainFieldInfo -> [RawMatch]+parseFieldCase loop x f = case plainFieldKind f of+    MapField entryInfo -> [mapCase entryInfo]+    RepeatedField p+        | p == NotPackable -> [unpackedCase]+        | otherwise -> [unpackedCase, packedCase]+    RequiredField -> [requiredCase]+    _ -> [valueCase]+  where+    y = bvar "y"+    entry = bvar "entry"+    info = plainFieldInfo f+    valueCase = match [int (fieldTag info)] $ do'+        [ y <-- parseField info+        , stmt . loop . updateParseState (setField info @@ y)+            $ x+        ]+    requiredCase = match [int (fieldTag info)] $ do'+        [ y <-- parseField info+        , stmt . loop+               . updateParseState (setField info @@ y)+               . markRequiredField (fieldId f)+               $ x+        ]+    unpackedCase = match [int (fieldTag info)]+        $ let (appendStmt, x') = appendToRepeated (fieldId f) y x+        in do'+            [ strictP y <-- parseField info+            , appendStmt+            , stmt . loop $ x'+            ]+    packedCase = match [int (packedFieldTag info)] $ do'+        [ y <-- isolatedLengthy (parsePackedField info+                                    @@ repeatedFieldMVectors x Map.! fieldId f)+        , stmt $ loop x { repeatedFieldMVectors =+                                Map.insert (fieldId f) y+                                    $ repeatedFieldMVectors x }+        ]+    mapCase entryInfo = match [int (fieldTag info)] $ do'+        [ strictP (entry `sigP` var (unqual $ mapEntryTypeName entryInfo))+                <-- parseField info+        , stmt . let' [ valBind "key"+                            $ view' @@ fieldOf (keyField entryInfo)+                                    @@ entry+                      , valBind "value"+                            $ view' @@ fieldOf (valueField entryInfo)+                                    @@ entry+                      ]+               . loop+               . updateParseState+                    (overField info+                                (var "Data.Map.insert" @@ var "key" @@ var "value"))+               $ x+        ]++unknownFieldCase ::+    MessageInfo OccNameStr -> (ParseState HsExpr' -> HsExpr') -> ParseState HsExpr' -> RawMatch+{-+  wire -> do+        !y <- parseTaggedValueFromWire wire+        -- Omitted if not a group:+        case y of+            TaggedValue utag EndGroup+                -> fail ("Mismatched group-end tag number " ++ show utag)+            _ -> return ()+        loop (over unknownFields (\!t -> y:t) x) ...+-}+unknownFieldCase info loop x = match [wire] $ do' $+    [ strictP y <-- if messageDescriptor info ^. #options . #messageSetWireFormat+        then var "Data.ProtoLens.Encoding.Wire.parseMessageSetTaggedValueFromWire" @@ wire+        else var "Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire" @@ wire+    ]+    +++    [ stmt $ case' y+        [ match+            [conP "Data.ProtoLens.Encoding.Wire.TaggedValue"+                [utag, conP_ "Data.ProtoLens.Encoding.Wire.EndGroup"]]+            $ var "Prelude.fail" @@+                (var "Prelude.++"+                    @@ string "Mismatched group-end tag number "+                    @@ (var "Prelude.show" @@ utag))+        , match [wildP] $ var "Prelude.return" @@ unit+        ]+    | Just _ <- [groupFieldNumber info]+    ]+    +++    [ stmt . loop . updateParseState (over' unknownFields' (cons @@ y))+        $ x+    ]+  where+    wire = bvar "wire"+    y = bvar "y"+    utag = bvar "utag"++-- | An expression of type "b -> a -> a", corresponding to a Lens a b+-- for this field.+setField :: FieldInfo -> HsExpr'+setField f = var "Lens.Family2.set" @@ fieldOf f++-- | An expression of type "(b -> b) -> a -> a", corresponding to a+-- Lens a b for this field.+overField :: FieldInfo -> HsExpr' -> HsExpr'+overField f = over' (fieldOf f)++-- | An expression of type "(b -> b) -> a -> a".+--+-- Specifically, this renders to:+--   over f (\!z -> g z) x+-- The extra strictness prevents a space leak due to lists being lazy.+over' :: HsExpr' -> HsExpr' -> HsExpr'+over' f g = var "Lens.Family2.over"+                @@ f+                @@ lambda [strictP t] (g @@ t)+  where+    t = bvar "t"++-- | A "Growing v RealWorld a -> Parser (Growing v RealWorld a)"+-- for a field that can be packed.+parsePackedField :: FieldInfo -> HsExpr'+{- let ploop qs = do+                    packedEnd <- atEnd+                    if packedEnd+                        then return qs+                        else do+                            !q <- {PARSE FIELD}+                            qs' <- append qs q+                            ploop qs'+   in ploop+-}+parsePackedField info = let' [funBind ploop $ match [qs] ploopExp]+                            (var ploop)+  where+    ploop = "ploop"+    q = bvar "q"+    qs = bvar "qs"+    qs' = bvar "qs'"+    packedEnd = bvar "packedEnd"+    ploopExp = do'+        [ packedEnd <-- var "Data.ProtoLens.Encoding.Bytes.atEnd"+        , stmt $+            if' packedEnd+                (var "Prelude.return" @@ qs)+                $ do'+                    [ strictP q <-- parseField info+                    , qs' <-- unsafeLiftIO' @@+                                (var "Data.ProtoLens.Encoding.Growing.append"+                                    @@ qs @@ q)+                    , stmt $ var ploop @@ qs'+                    ]+        ]++generatedBuilder :: MessageInfo OccNameStr -> HsExpr'+generatedBuilder m =+    lambda [x] $ foldMapExp $ map (buildPlainField x) (messageFields m)+                                ++ map (buildOneofField x) (messageOneofFields m)+                            ++ [if messageDescriptor m ^. #options . #messageSetWireFormat+                                  then buildUnknownMessageSet x else buildUnknown x]+                            ++ buildGroupEnd+  where+    x = bvar "_x" -- TODO: rename to "x" once it's always used+    -- If this is a group, finish by emitting the end-group tag.+    buildGroupEnd = [ putVarInt' @@ int (groupEndTag g)+               | Just g <- [groupFieldNumber m]+               ]++buildUnknown :: HsExpr' -> HsExpr'+buildUnknown x+    = var "Data.ProtoLens.Encoding.Wire.buildFieldSet"+                @@ (view' @@ unknownFields' @@ x)++buildUnknownMessageSet :: HsExpr' -> HsExpr'+buildUnknownMessageSet x+    = var "Data.ProtoLens.Encoding.Wire.buildMessageSet"+                @@ (view' @@ unknownFields' @@ x)++-- | Concatenate a list of Monoids into a single value.+-- For example, foldMapExp [a,b,c] will be transformed into+-- the (unrolled) expression a <> b <> c.+foldMapExp :: [HsExpr'] -> HsExpr'+foldMapExp [] = mempty'+foldMapExp [x] = x+foldMapExp (x:xs) = var "Data.Monoid.<>" @@ x @@ foldMapExp xs++-- | An expression of type @Builder@ which encodes the field value+-- @x@ based on the kind and type of the field @f@.+buildPlainField :: HsExpr' -> PlainFieldInfo -> HsExpr'+buildPlainField x f = case plainFieldKind f of+    RequiredField -> buildTaggedField info fieldValue+    OptionalMaybeField -> case' maybeFieldValue+                            [ match [conP_ "Prelude.Nothing"] mempty'+                            , match [conP "Prelude.Just" [v']]+                                $ buildTaggedField info v'+                            ]+    OptionalValueField -> let' [valBind v fieldValue]+                          $ if' (var "Prelude.==" @@ v' @@ var "Data.ProtoLens.fieldDefault")+                                mempty'+                                (buildTaggedField info v')+    MapField entryInfo+        -> var "Data.Monoid.mconcat"+            @@ (var "Prelude.map"+                    @@ lambda [v'] (buildEntry entryInfo v')+                    @@ (var "Data.Map.toList" @@ fieldValue))+    RepeatedField Packed -> buildPackedField info vectorFieldValue+    RepeatedField _ -> var "Data.ProtoLens.Encoding.Bytes.foldMapBuilder"+                            @@ lambda [v']+                                    (buildTaggedField info v')+                            @@ vectorFieldValue+  where+    info = plainFieldInfo f+    v = "_v"+    v' = bvar v+    fieldValue = view'+                    @@ fieldOf info+                    @@ x+    maybeFieldValue = view'+                        @@ fieldOfMaybe info+                        @@ x+    vectorFieldValue = view'+                        @@ fieldOfVector info+                        @@ x+    {- Builds a value of the given map entry type+       from the given key/value pair kv.++       ... set (fieldOf {KEY}) (fst kv)+            (set (fieldOf {VALUE}) (snd kv)+                (defMessage :: Foo'Entry)+    -}+    buildEntry entry kv+        = buildTaggedField info+            $ set'+                @@ fieldOf (keyField entry)+                @@ (var "Prelude.fst" @@ kv)+                @@ (set' @@ fieldOf (valueField entry)+                         @@ (var "Prelude.snd" @@ kv)+                         @@ (var "Data.ProtoLens.defMessage"+                                @::@ var (unqual $ mapEntryTypeName entry)))++fieldOf :: FieldInfo -> HsExpr'+fieldOf = fieldOfExp . overloadedFieldName++fieldOfMaybe :: FieldInfo -> HsExpr'+fieldOfMaybe = fieldOfExp . ("maybe'" <>) . overloadedFieldName++fieldOfOneof :: OneofInfo -> HsExpr'+fieldOfOneof =+    fieldOfExp . ("maybe'" <>) . overloadedName . oneofFieldName++fieldOfVector :: FieldInfo -> HsExpr'+fieldOfVector = fieldOfExp . ("vec'" <>) . overloadedFieldName++-- | Build a field along with its tag.+buildTaggedField :: FieldInfo -> HsExpr' -> HsExpr'+buildTaggedField f x = foldMapExp+    [ putVarInt' @@ int (fieldTag f)+    , buildField f @@ x+    ]++-- | Encodes a packed field as a byte string, along with+-- its wire type+number.+buildPackedField :: FieldInfo -> HsExpr' -> HsExpr'+{-+    let p = x -- where x might be a complicated expression+    in if null p then mempty+    else putVarInt {TAG}+            <> ... (runBuilder (mconcat (map {BUILD_ELT} p)))+-}+buildPackedField f x = let' [valBind p x]+    $ if' (var "Data.Vector.Generic.null" @@ var p) mempty'+    $ var "Data.Monoid.<>"+        @@ (putVarInt' @@ int (packedFieldTag f))+        @@ (buildFieldType lengthy+                @@ (var "Data.ProtoLens.Encoding.Bytes.runBuilder"+                    @@ (var "Data.ProtoLens.Encoding.Bytes.foldMapBuilder"+                            @@ buildField f+                            @@ var p)))+  where+    p = "p"++buildOneofField :: HsExpr' -> OneofInfo -> HsExpr'+buildOneofField x info = case' (view' @@ fieldOfOneof info @@ x) $+    match [conP_ "Prelude.Nothing"] mempty'+    : [ match [conP "Prelude.Just" [conP (unqual $ caseConstructorName c)+                                 [v]]]+            $ buildTaggedField (caseField c) v+      | c <- oneofCases info+      ]+  where+    v = bvar "v"++-- | Compute the proto encoding's representation of the wire type+-- and field number.+--+-- The last three bits of the number store the wire type, and the+-- rest store the field number as a varint.+makeTag :: Int32 -> FieldEncoding -> Integer+makeTag num enc = fromIntegral $ joinTypeAndTag (fromIntegral num) (wireType enc)++fieldTag :: FieldInfo -> Integer+fieldTag f = makeTag (fieldDescriptor f ^. #number) $ fieldInfoEncoding f++packedFieldTag :: FieldInfo -> Integer+packedFieldTag f = makeTag (fieldDescriptor f ^. #number) lengthy++groupEndTag :: Int32 -> Integer+groupEndTag num = makeTag num groupEnd++-- | An expression that selects the overloaded field lens of this name.+--+-- field @"fieldName"+fieldOfExp :: Symbol -> HsExpr'+fieldOfExp sym = tyApp (var "Data.ProtoLens.Field.field") (promoteSymbol sym)++-- | Some functions that are used in multiple places in the generated code.+getVarInt', putVarInt', mempty', view', set', unknownFields', unsafeLiftIO'+    :: HsExpr'+getVarInt' = var "Data.ProtoLens.Encoding.Bytes.getVarInt"+putVarInt' = var "Data.ProtoLens.Encoding.Bytes.putVarInt"+mempty' = var "Data.Monoid.mempty"+view' = var "Lens.Family2.view"+set' = var "Lens.Family2.set"+unknownFields' = var "Data.ProtoLens.unknownFields"+unsafeLiftIO' = var "Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO"++-- | Returns an expression of type @Parser a@ for the given field.+parseField :: FieldInfo -> HsExpr'+parseField f = var "Data.ProtoLens.Encoding.Bytes.<?>"+                    @@ parseFieldType (fieldInfoEncoding f)+                    @@ string n+  where+    n = Text.unpack (fieldDescriptor f ^. #name)++-- | Returns a function corresponding to `a -> Builder`:+buildField :: FieldInfo -> HsExpr'+buildField = buildFieldType . fieldInfoEncoding++fieldInfoEncoding :: FieldInfo -> FieldEncoding+fieldInfoEncoding info+  -- In almost all cases, the encoding of a type is determined only by the type.+  -- There is one exception introduced in Protobuf Editions, and this is the+  -- ability to control the message encoding with "features.message_encoding".+  | isMessage = messageEncoding+  | otherwise = fieldEncoding $ fieldDescriptor info ^. #type'+  where+    descriptor = fieldDescriptor info+    isMessage = descriptor ^. #type' == FieldDescriptorProto'TYPE_MESSAGE+    messageEncoding = case descriptor ^. #options . #features . #messageEncoding of+      -- DELIMITED encoding is the same as proto2 group encoding.+      FeatureSet'DELIMITED -> fieldEncoding FieldDescriptorProto'TYPE_GROUP+      _ -> fieldEncoding FieldDescriptorProto'TYPE_MESSAGE++growingType :: Env RdrNameStr -> FieldInfo -> HsType'+growingType env f+    = var "Data.ProtoLens.Encoding.Growing.Growing"+        @@ hsFieldVectorType f+        @@ var "Data.ProtoLens.Encoding.Growing.RealWorld"+        @@ hsFieldType env f
+ app/Data/ProtoLens/Compiler/Generate/Field.hs view
@@ -0,0 +1,242 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+-- | This module generates the code for decoding and encoding+-- individual field types.+--+-- Upstream docs:+-- <https://developers.google.com/protocol-buffers/docs/encoding#structure>+module Data.ProtoLens.Compiler.Generate.Field+    ( hsFieldType+    , hsFieldVectorType+    , FieldEncoding(..)+    , fieldEncoding+    , lengthy+    , groupEnd+    , isolatedLengthy+    ) where++import Data.Text (unpack)+import Data.Word (Word8)+import Lens.Family2+import Proto.Google.Protobuf.Descriptor (FieldDescriptorProto'Type(..))++import Data.ProtoLens.Compiler.Definitions++import GHC.SourceGen++hsFieldType :: Env RdrNameStr -> FieldInfo -> HsType'+hsFieldType env f = let+    fd = fieldDescriptor f+    in var $ case fd ^. #type' of+        FieldDescriptorProto'TYPE_DOUBLE -> "Prelude.Double"+        FieldDescriptorProto'TYPE_FLOAT -> "Prelude.Float"+        FieldDescriptorProto'TYPE_INT64 -> "Data.Int.Int64"+        FieldDescriptorProto'TYPE_UINT64 -> "Data.Word.Word64"+        FieldDescriptorProto'TYPE_INT32 -> "Data.Int.Int32"+        FieldDescriptorProto'TYPE_FIXED64 -> "Data.Word.Word64"+        FieldDescriptorProto'TYPE_FIXED32 -> "Data.Word.Word32"+        FieldDescriptorProto'TYPE_BOOL -> "Prelude.Bool"+        FieldDescriptorProto'TYPE_STRING -> "Data.Text.Text"+        FieldDescriptorProto'TYPE_GROUP+            | Message m <- definedFieldType fd env -> messageName m+            | otherwise -> error $ "expected TYPE_GROUP for type name"+                                ++ unpack (fd ^. #typeName)+        FieldDescriptorProto'TYPE_MESSAGE+            | Message m <- definedFieldType fd env -> messageName m+            | otherwise -> error $ "expected TYPE_MESSAGE for type name"+                                ++ unpack (fd ^. #typeName)+        FieldDescriptorProto'TYPE_BYTES -> "Data.ByteString.ByteString"+        FieldDescriptorProto'TYPE_UINT32 -> "Data.Word.Word32"+        FieldDescriptorProto'TYPE_ENUM+            | Enum e <- definedFieldType fd env -> enumName e+            | otherwise -> error $ "expected TYPE_ENUM for type name"+                                ++ unpack (fd ^. #typeName)+        FieldDescriptorProto'TYPE_SFIXED32 -> "Data.Int.Int32"+        FieldDescriptorProto'TYPE_SFIXED64 -> "Data.Int.Int64"+        FieldDescriptorProto'TYPE_SINT32 -> "Data.Int.Int32"+        FieldDescriptorProto'TYPE_SINT64 -> "Data.Int.Int64"++hsFieldVectorType :: FieldInfo -> HsType'+hsFieldVectorType f = case fieldDescriptor f ^. #type' of+    FieldDescriptorProto'TYPE_MESSAGE -> boxed+    -- TODO: store enums in unboxed fields.+    FieldDescriptorProto'TYPE_ENUM -> boxed+    FieldDescriptorProto'TYPE_GROUP -> boxed+    FieldDescriptorProto'TYPE_STRING -> boxed+    FieldDescriptorProto'TYPE_BYTES -> boxed+    _ -> unboxed+  where+    boxed = var "Data.Vector.Vector"+    unboxed = var "Data.Vector.Unboxed.Vector"++-- | A representation for how to encode and decode a particular field type.+data FieldEncoding = FieldEncoding+    { buildFieldType :: HsExpr' -- ^ :: a -> Builder+    , parseFieldType :: HsExpr' -- ^ :: Parser a+    , wireType :: Word8+    }++-- | A variable-length integer, decoded as an unsigned Word64.+varint :: FieldEncoding+varint = FieldEncoding+            { wireType = 0+            , buildFieldType = putVarInt'+            , parseFieldType = getVarInt'+            }++-- | A fixed-length integer (Word64).+fixed64 :: FieldEncoding+fixed64 = FieldEncoding+            { wireType = 1+            , buildFieldType = var "Data.ProtoLens.Encoding.Bytes.putFixed64"+            , parseFieldType = var "Data.ProtoLens.Encoding.Bytes.getFixed64"+            }++-- | A fixed-length integer (Word32).+fixed32 :: FieldEncoding+fixed32 = FieldEncoding+            { wireType = 5+            , buildFieldType = var "Data.ProtoLens.Encoding.Bytes.putFixed32"+            , parseFieldType = var "Data.ProtoLens.Encoding.Bytes.getFixed32"+            }++-- | A ByteString, prefixed by its length (which is encoded as a varint).+lengthy :: FieldEncoding+lengthy = FieldEncoding+            { wireType = 2+            , buildFieldType = buildLengthy+            , parseFieldType = parseLengthy+            }+  where+    bs = bvar "bs"+    len = bvar "len"+    buildLengthy =+        -- Bind x since it may be a nontrivial expression:+        lambda [bs]+            $ var "Data.Monoid.<>"+                @@ (putVarInt'+                        @@ (fromIntegral'+                                @@ (var "Data.ByteString.length" @@ bs)))+                @@ (var "Data.ProtoLens.Encoding.Bytes.putBytes" @@ bs)+    parseLengthy = do'+        [ len <-- getVarInt'+        , stmt $ var "Data.ProtoLens.Encoding.Bytes.getBytes"+                    @@ (fromIntegral' @@ len)+        ]++group :: FieldEncoding+group = FieldEncoding+            { wireType = 3+            , buildFieldType = var "Data.ProtoLens.buildMessage"+            , parseFieldType = var "Data.ProtoLens.parseMessage"+            }++groupEnd :: FieldEncoding+groupEnd = FieldEncoding+            { wireType = 4+            , buildFieldType = var "Prelude.const" @@ var "Data.Monoid.mempty"+            , parseFieldType = var "Prelude.return" @@ unit+            }++-- Wrap a field encoding  with Haskell functions that should always succeed.+bijectField :: HsExpr' -> HsExpr' -> FieldEncoding -> FieldEncoding+bijectField buildF parseF f = FieldEncoding+    { buildFieldType = var "Prelude.." @@ buildFieldType f @@ buildF+    , parseFieldType = var "Prelude.fmap" @@ parseF @@ parseFieldType f+    , wireType = wireType f+    }++-- | Convert a field of one integral type to another.+integralField :: FieldEncoding -> FieldEncoding+integralField = bijectField fromIntegral' fromIntegral'++fieldEncoding :: FieldDescriptorProto'Type -> FieldEncoding+fieldEncoding = \case+    FieldDescriptorProto'TYPE_INT64 -> integralField varint+    FieldDescriptorProto'TYPE_UINT64 -> varint+    FieldDescriptorProto'TYPE_INT32 -> integralField varint+    FieldDescriptorProto'TYPE_UINT32 -> integralField varint+    FieldDescriptorProto'TYPE_FIXED64 -> fixed64+    FieldDescriptorProto'TYPE_FIXED32 -> fixed32+    FieldDescriptorProto'TYPE_SFIXED64 -> integralField fixed64+    FieldDescriptorProto'TYPE_SFIXED32 -> integralField fixed32+    FieldDescriptorProto'TYPE_DOUBLE ->+        bijectField+            (var "Data.ProtoLens.Encoding.Bytes.doubleToWord")+            (var "Data.ProtoLens.Encoding.Bytes.wordToDouble")+            fixed64+    FieldDescriptorProto'TYPE_FLOAT ->+        bijectField+            (var "Data.ProtoLens.Encoding.Bytes.floatToWord")+            (var "Data.ProtoLens.Encoding.Bytes.wordToFloat")+            fixed32+    FieldDescriptorProto'TYPE_BOOL ->+        bijectField+            (lambda [bvar "b"] $ if' (var "b") (int 1) (int 0))+            (var "Prelude./=" @@ int 0)+            varint+    FieldDescriptorProto'TYPE_ENUM ->+        -- TODO: don't throw an exception on unknown proto2 enums.+        bijectField (var "Prelude.fromEnum") (var "Prelude.toEnum")+            $ integralField varint+    FieldDescriptorProto'TYPE_SINT64 ->+        bijectField+            (var "Data.ProtoLens.Encoding.Bytes.signedInt64ToWord")+            (var "Data.ProtoLens.Encoding.Bytes.wordToSignedInt64")+            $ integralField varint+    FieldDescriptorProto'TYPE_SINT32 ->+        bijectField+            (var "Data.ProtoLens.Encoding.Bytes.signedInt32ToWord")+            (var "Data.ProtoLens.Encoding.Bytes.wordToSignedInt32")+            $ integralField varint+    FieldDescriptorProto'TYPE_BYTES -> lengthy+    FieldDescriptorProto'TYPE_STRING -> stringField+    FieldDescriptorProto'TYPE_MESSAGE -> message+    FieldDescriptorProto'TYPE_GROUP -> group++-- | A string, represented as Data.Text.Text.+stringField :: FieldEncoding+stringField =+  FieldEncoding+    { wireType = 2+    , buildFieldType = buildString+    , parseFieldType = parseString+    }+  where+    len = bvar "len"+    buildString = var "Prelude.." @@ buildFieldType lengthy+                                  @@ var "Data.Text.Encoding.encodeUtf8"+    parseString = do'+        [ len <-- getVarInt'+        , stmt $ var "Data.ProtoLens.Encoding.Bytes.getText"+                    @@ (fromIntegral' @@ len)+        ]++-- | A protobuf message type.+message :: FieldEncoding+message = lengthy+        { buildFieldType = var "Prelude.." @@+            buildFieldType lengthy @@+            var "Data.ProtoLens.encodeMessage"+        , parseFieldType = isolatedLengthy (var "Data.ProtoLens.parseMessage")+        }++-- | Takes a @Parser a@, reads a varint and then runs the parser+-- isolated to the given length.+isolatedLengthy :: HsExpr' -> HsExpr'+isolatedLengthy parser = do'+    [ len <-- getVarInt'+    , stmt $ var "Data.ProtoLens.Encoding.Bytes.isolate"+                @@ (fromIntegral' @@ len)+                @@ parser+    ]+  where+    len = bvar "len"++-- | Some functions that are used in multiple places in the generated code.+getVarInt', putVarInt', fromIntegral' :: HsExpr'+getVarInt' = var "Data.ProtoLens.Encoding.Bytes.getVarInt"+putVarInt' = var "Data.ProtoLens.Encoding.Bytes.putVarInt"+fromIntegral' = var "Prelude.fromIntegral"
+ app/Data/ProtoLens/Compiler/Plugin.hs view
@@ -0,0 +1,105 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd+--+-- Code for writing protocol compiler plugins.++{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedLabels #-}+module Data.ProtoLens.Compiler.Plugin+    ( ProtoFileName+    , ProtoFile(..)+    , analyzeProtoFiles+    , collectEnvFromDeps+    ) where++import qualified Data.Foldable as F+import qualified Data.Map.Strict as Map+import Data.Map.Strict (Map, unions, (!))+import Data.String (fromString)+import qualified Data.Text as T+import Data.Text (Text)+import Lens.Family2+import Proto.Google.Protobuf.Descriptor (FileDescriptorProto)++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.ModuleName++import GHC.SourceGen (ModuleNameStr, OccNameStr, RdrNameStr)++-- | The filename of an input .proto file.+type ProtoFileName = Text++data ProtoFile = ProtoFile+    { descriptor :: FileDescriptorProto+    , haskellModule :: ModuleNameStr+    , definitions :: Env OccNameStr+    , services :: [ServiceInfo]+    , exportedEnv :: Env RdrNameStr+    , publicImports :: [ModuleNameStr]+    }++-- Given a list of FileDescriptorProtos, collect information about each file+-- into a map of 'ProtoFile's keyed by 'ProtoFileName'.+analyzeProtoFiles :: [FileDescriptorProto] -> Either Text (Map ProtoFileName ProtoFile)+analyzeProtoFiles files = do+    -- The definitions in each input proto file, indexed by filename.+    definitionsByName <- mapM collectDefinitions filesByName+    let servicesByName = fmap collectServices filesByName+    let exportsByName = transitiveExports files+    let exportedEnvs = fmap (foldMap (definitionsByName !)) exportsByName++    let ingestFile f = ProtoFile+          { descriptor = f+          , haskellModule = m+          , definitions = definitionsByName ! n+          , services = servicesByName ! n+          , exportedEnv = qualifyEnv m $ exportedEnvs ! n+          , publicImports = [moduleNames ! i | i <- reexported]+          }+          where+            n = f ^. #name+            m = moduleNames ! n+            reexported =+              [ (f ^. #dependency) !! fromIntegral i+              | i <- f ^. #publicDependency+              ]++    return $ Map.fromList [ (f ^. #name, ingestFile f) | f <- files ]+  where+    filesByName = Map.fromList [(f ^. #name, f) | f <- files]+    moduleNames = fmap fdModuleName filesByName++collectEnvFromDeps :: [ProtoFileName] -> Map ProtoFileName ProtoFile -> Env RdrNameStr+collectEnvFromDeps deps filesByName =+    unions $ fmap (exportedEnv . (filesByName !)) deps++-- | Get the Haskell 'ModuleName' corresponding to a given .proto file.+fdModuleName :: FileDescriptorProto -> ModuleNameStr+fdModuleName fd+      = fromString $ protoModuleName (T.unpack $ fd ^. #name)++-- | Given a list of .proto files (topologically sorted), determine which+-- files' definitions are exported by which files.+--+-- Files only export their own definitions, along with the definitions exported+-- by any "import public" declarations.  (And any definitions that *those* files+-- "import public", etc.)+transitiveExports :: [FileDescriptorProto] -> Map ProtoFileName [ProtoFileName]+-- Accumulate the transitive dependencies by folding over the files in+-- topological order.+transitiveExports = F.foldl' setExportsFromFile Map.empty+  where+    setExportsFromFile :: Map ProtoFileName [ProtoFileName]+                       -> FileDescriptorProto+                       -> Map ProtoFileName [ProtoFileName]+    setExportsFromFile prevExports fd+        = flip (Map.insert n) prevExports $+            n : concat [ prevExports ! ((fd ^. #dependency) !! fromIntegral i)+                       -- Note that publicDependency is a list of indices into+                       -- the dependency list.+                       | i <- fd ^. #publicDependency+                       ]+      where n = fd ^. #name
+ app/Proto/Google/Protobuf/Compiler/Plugin.hs view
@@ -0,0 +1,1811 @@+{- This file was auto-generated from google/protobuf/compiler/plugin.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Compiler.Plugin (+        CodeGeneratorRequest(), CodeGeneratorResponse(),+        CodeGeneratorResponse'Feature(..), CodeGeneratorResponse'Feature(),+        CodeGeneratorResponse'File(), Version()+    ) where+import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+import qualified Proto.Google.Protobuf.Descriptor+{- | Fields :+     +         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.fileToGenerate' @:: Lens' CodeGeneratorRequest [Data.Text.Text]@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'fileToGenerate' @:: Lens' CodeGeneratorRequest (Data.Vector.Vector Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.parameter' @:: Lens' CodeGeneratorRequest Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'parameter' @:: Lens' CodeGeneratorRequest (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.protoFile' @:: Lens' CodeGeneratorRequest [Proto.Google.Protobuf.Descriptor.FileDescriptorProto]@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'protoFile' @:: Lens' CodeGeneratorRequest (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.sourceFileDescriptors' @:: Lens' CodeGeneratorRequest [Proto.Google.Protobuf.Descriptor.FileDescriptorProto]@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'sourceFileDescriptors' @:: Lens' CodeGeneratorRequest (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.compilerVersion' @:: Lens' CodeGeneratorRequest Version@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'compilerVersion' @:: Lens' CodeGeneratorRequest (Prelude.Maybe Version)@ -}+data CodeGeneratorRequest+  = CodeGeneratorRequest'_constructor {_CodeGeneratorRequest'fileToGenerate :: !(Data.Vector.Vector Data.Text.Text),+                                       _CodeGeneratorRequest'parameter :: !(Prelude.Maybe Data.Text.Text),+                                       _CodeGeneratorRequest'protoFile :: !(Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto),+                                       _CodeGeneratorRequest'sourceFileDescriptors :: !(Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto),+                                       _CodeGeneratorRequest'compilerVersion :: !(Prelude.Maybe Version),+                                       _CodeGeneratorRequest'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorRequest where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "fileToGenerate" [Data.Text.Text] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'fileToGenerate+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'fileToGenerate = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "vec'fileToGenerate" (Data.Vector.Vector Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'fileToGenerate+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'fileToGenerate = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "parameter" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'parameter+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'parameter = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "maybe'parameter" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'parameter+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'parameter = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "protoFile" [Proto.Google.Protobuf.Descriptor.FileDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'protoFile+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'protoFile = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "vec'protoFile" (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'protoFile+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'protoFile = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "sourceFileDescriptors" [Proto.Google.Protobuf.Descriptor.FileDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'sourceFileDescriptors+           (\ x__ y__+              -> x__ {_CodeGeneratorRequest'sourceFileDescriptors = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "vec'sourceFileDescriptors" (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'sourceFileDescriptors+           (\ x__ y__+              -> x__ {_CodeGeneratorRequest'sourceFileDescriptors = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "compilerVersion" Version where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'compilerVersion+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'compilerVersion = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "maybe'compilerVersion" (Prelude.Maybe Version) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorRequest'compilerVersion+           (\ x__ y__ -> x__ {_CodeGeneratorRequest'compilerVersion = y__}))+        Prelude.id+instance Data.ProtoLens.Message CodeGeneratorRequest where+  messageName _+    = Data.Text.pack "google.protobuf.compiler.CodeGeneratorRequest"+  packedMessageDescriptor _+    = "\n\+      \\DC4CodeGeneratorRequest\DC2(\n\+      \\DLEfile_to_generate\CAN\SOH \ETX(\tR\SOfileToGenerate\DC2\FS\n\+      \\tparameter\CAN\STX \SOH(\tR\tparameter\DC2C\n\+      \\n\+      \proto_file\CAN\SI \ETX(\v2$.google.protobuf.FileDescriptorProtoR\tprotoFile\DC2\\\n\+      \\ETBsource_file_descriptors\CAN\DC1 \ETX(\v2$.google.protobuf.FileDescriptorProtoR\NAKsourceFileDescriptors\DC2L\n\+      \\DLEcompiler_version\CAN\ETX \SOH(\v2!.google.protobuf.compiler.VersionR\SIcompilerVersion"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        fileToGenerate__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "file_to_generate"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"fileToGenerate")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+        parameter__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "parameter"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'parameter")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+        protoFile__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "proto_file"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.Descriptor.FileDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"protoFile")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+        sourceFileDescriptors__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "source_file_descriptors"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.Descriptor.FileDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"sourceFileDescriptors")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+        compilerVersion__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "compiler_version"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Version)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'compilerVersion")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, fileToGenerate__field_descriptor),+           (Data.ProtoLens.Tag 2, parameter__field_descriptor),+           (Data.ProtoLens.Tag 15, protoFile__field_descriptor),+           (Data.ProtoLens.Tag 17, sourceFileDescriptors__field_descriptor),+           (Data.ProtoLens.Tag 3, compilerVersion__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _CodeGeneratorRequest'_unknownFields+        (\ x__ y__ -> x__ {_CodeGeneratorRequest'_unknownFields = y__})+  defMessage+    = CodeGeneratorRequest'_constructor+        {_CodeGeneratorRequest'fileToGenerate = Data.Vector.Generic.empty,+         _CodeGeneratorRequest'parameter = Prelude.Nothing,+         _CodeGeneratorRequest'protoFile = Data.Vector.Generic.empty,+         _CodeGeneratorRequest'sourceFileDescriptors = Data.Vector.Generic.empty,+         _CodeGeneratorRequest'compilerVersion = Prelude.Nothing,+         _CodeGeneratorRequest'_unknownFields = []}+  parseMessage+    = let+        loop ::+          CodeGeneratorRequest+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Proto.Google.Protobuf.Descriptor.FileDescriptorProto+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Proto.Google.Protobuf.Descriptor.FileDescriptorProto+                   -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorRequest+        loop+          x+          mutable'fileToGenerate+          mutable'protoFile+          mutable'sourceFileDescriptors+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'fileToGenerate <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                    mutable'fileToGenerate)+                      frozen'protoFile <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                               mutable'protoFile)+                      frozen'sourceFileDescriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                           mutable'sourceFileDescriptors)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'fileToGenerate")+                              frozen'fileToGenerate+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'protoFile")+                                 frozen'protoFile+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'sourceFileDescriptors")+                                    frozen'sourceFileDescriptors+                                    x))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getText+                                              (Prelude.fromIntegral len))+                                        "file_to_generate"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'fileToGenerate y)+                                loop x v mutable'protoFile mutable'sourceFileDescriptors+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "parameter"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"parameter") y x)+                                  mutable'fileToGenerate+                                  mutable'protoFile+                                  mutable'sourceFileDescriptors+                        122+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "proto_file"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'protoFile y)+                                loop x mutable'fileToGenerate v mutable'sourceFileDescriptors+                        138+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "source_file_descriptors"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'sourceFileDescriptors y)+                                loop x mutable'fileToGenerate mutable'protoFile v+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "compiler_version"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"compilerVersion") y x)+                                  mutable'fileToGenerate+                                  mutable'protoFile+                                  mutable'sourceFileDescriptors+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'fileToGenerate+                                  mutable'protoFile+                                  mutable'sourceFileDescriptors+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'fileToGenerate <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                          Data.ProtoLens.Encoding.Growing.new+              mutable'protoFile <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                     Data.ProtoLens.Encoding.Growing.new+              mutable'sourceFileDescriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                 Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'fileToGenerate+                mutable'protoFile+                mutable'sourceFileDescriptors)+          "CodeGeneratorRequest"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.Text.Encoding.encodeUtf8+                           _v))+                (Lens.Family2.view+                   (Data.ProtoLens.Field.field @"vec'fileToGenerate") _x))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'parameter") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                      (\ _v+                         -> (Data.Monoid.<>)+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+                              ((Prelude..)+                                 (\ bs+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                 Data.ProtoLens.encodeMessage+                                 _v))+                      (Lens.Family2.view+                         (Data.ProtoLens.Field.field @"vec'protoFile") _x))+                   ((Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                         (\ _v+                            -> (Data.Monoid.<>)+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 138)+                                 ((Prelude..)+                                    (\ bs+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                    Data.ProtoLens.encodeMessage+                                    _v))+                         (Lens.Family2.view+                            (Data.ProtoLens.Field.field @"vec'sourceFileDescriptors") _x))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'compilerVersion") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                                   ((Prelude..)+                                      (\ bs+                                         -> (Data.Monoid.<>)+                                              (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))+                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                      Data.ProtoLens.encodeMessage+                                      _v))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData CodeGeneratorRequest where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_CodeGeneratorRequest'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_CodeGeneratorRequest'fileToGenerate x__)+                (Control.DeepSeq.deepseq+                   (_CodeGeneratorRequest'parameter x__)+                   (Control.DeepSeq.deepseq+                      (_CodeGeneratorRequest'protoFile x__)+                      (Control.DeepSeq.deepseq+                         (_CodeGeneratorRequest'sourceFileDescriptors x__)+                         (Control.DeepSeq.deepseq+                            (_CodeGeneratorRequest'compilerVersion x__) ())))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.error' @:: Lens' CodeGeneratorResponse Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'error' @:: Lens' CodeGeneratorResponse (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.supportedFeatures' @:: Lens' CodeGeneratorResponse Data.Word.Word64@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'supportedFeatures' @:: Lens' CodeGeneratorResponse (Prelude.Maybe Data.Word.Word64)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.minimumEdition' @:: Lens' CodeGeneratorResponse Data.Int.Int32@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'minimumEdition' @:: Lens' CodeGeneratorResponse (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maximumEdition' @:: Lens' CodeGeneratorResponse Data.Int.Int32@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'maximumEdition' @:: Lens' CodeGeneratorResponse (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.file' @:: Lens' CodeGeneratorResponse [CodeGeneratorResponse'File]@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'file' @:: Lens' CodeGeneratorResponse (Data.Vector.Vector CodeGeneratorResponse'File)@ -}+data CodeGeneratorResponse+  = CodeGeneratorResponse'_constructor {_CodeGeneratorResponse'error :: !(Prelude.Maybe Data.Text.Text),+                                        _CodeGeneratorResponse'supportedFeatures :: !(Prelude.Maybe Data.Word.Word64),+                                        _CodeGeneratorResponse'minimumEdition :: !(Prelude.Maybe Data.Int.Int32),+                                        _CodeGeneratorResponse'maximumEdition :: !(Prelude.Maybe Data.Int.Int32),+                                        _CodeGeneratorResponse'file :: !(Data.Vector.Vector CodeGeneratorResponse'File),+                                        _CodeGeneratorResponse'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorResponse where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "error" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'error+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'error = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maybe'error" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'error+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'error = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "supportedFeatures" Data.Word.Word64 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'supportedFeatures+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'supportedFeatures = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maybe'supportedFeatures" (Prelude.Maybe Data.Word.Word64) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'supportedFeatures+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'supportedFeatures = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "minimumEdition" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'minimumEdition+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'minimumEdition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maybe'minimumEdition" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'minimumEdition+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'minimumEdition = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maximumEdition" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'maximumEdition+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'maximumEdition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maybe'maximumEdition" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'maximumEdition+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'maximumEdition = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "file" [CodeGeneratorResponse'File] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'file+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'file = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "vec'file" (Data.Vector.Vector CodeGeneratorResponse'File) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'file+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'file = y__}))+        Prelude.id+instance Data.ProtoLens.Message CodeGeneratorResponse where+  messageName _+    = Data.Text.pack "google.protobuf.compiler.CodeGeneratorResponse"+  packedMessageDescriptor _+    = "\n\+      \\NAKCodeGeneratorResponse\DC2\DC4\n\+      \\ENQerror\CAN\SOH \SOH(\tR\ENQerror\DC2-\n\+      \\DC2supported_features\CAN\STX \SOH(\EOTR\DC1supportedFeatures\DC2'\n\+      \\SIminimum_edition\CAN\ETX \SOH(\ENQR\SOminimumEdition\DC2'\n\+      \\SImaximum_edition\CAN\EOT \SOH(\ENQR\SOmaximumEdition\DC2H\n\+      \\EOTfile\CAN\SI \ETX(\v24.google.protobuf.compiler.CodeGeneratorResponse.FileR\EOTfile\SUB\177\SOH\n\+      \\EOTFile\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2'\n\+      \\SIinsertion_point\CAN\STX \SOH(\tR\SOinsertionPoint\DC2\CAN\n\+      \\acontent\CAN\SI \SOH(\tR\acontent\DC2R\n\+      \\DC3generated_code_info\CAN\DLE \SOH(\v2\".google.protobuf.GeneratedCodeInfoR\DC1generatedCodeInfo\"W\n\+      \\aFeature\DC2\DLE\n\+      \\fFEATURE_NONE\DLE\NUL\DC2\ESC\n\+      \\ETBFEATURE_PROTO3_OPTIONAL\DLE\SOH\DC2\GS\n\+      \\EMFEATURE_SUPPORTS_EDITIONS\DLE\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        error__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "error"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'error")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+        supportedFeatures__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "supported_features"+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'supportedFeatures")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+        minimumEdition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "minimum_edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'minimumEdition")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+        maximumEdition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "maximum_edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'maximumEdition")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+        file__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "file"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor CodeGeneratorResponse'File)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"file")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, error__field_descriptor),+           (Data.ProtoLens.Tag 2, supportedFeatures__field_descriptor),+           (Data.ProtoLens.Tag 3, minimumEdition__field_descriptor),+           (Data.ProtoLens.Tag 4, maximumEdition__field_descriptor),+           (Data.ProtoLens.Tag 15, file__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _CodeGeneratorResponse'_unknownFields+        (\ x__ y__ -> x__ {_CodeGeneratorResponse'_unknownFields = y__})+  defMessage+    = CodeGeneratorResponse'_constructor+        {_CodeGeneratorResponse'error = Prelude.Nothing,+         _CodeGeneratorResponse'supportedFeatures = Prelude.Nothing,+         _CodeGeneratorResponse'minimumEdition = Prelude.Nothing,+         _CodeGeneratorResponse'maximumEdition = Prelude.Nothing,+         _CodeGeneratorResponse'file = Data.Vector.Generic.empty,+         _CodeGeneratorResponse'_unknownFields = []}+  parseMessage+    = let+        loop ::+          CodeGeneratorResponse+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld CodeGeneratorResponse'File+             -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorResponse+        loop x mutable'file+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'file)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'file") frozen'file x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "error"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"error") y x)+                                  mutable'file+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "supported_features"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"supportedFeatures") y x)+                                  mutable'file+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "minimum_edition"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"minimumEdition") y x)+                                  mutable'file+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "maximum_edition"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"maximumEdition") y x)+                                  mutable'file+                        122+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "file"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'file y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'file+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'file)+          "CodeGeneratorResponse"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'error") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'supportedFeatures") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'minimumEdition") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'maximumEdition") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.ProtoLens.encodeMessage+                                       _v))+                            (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'file") _x))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData CodeGeneratorResponse where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_CodeGeneratorResponse'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_CodeGeneratorResponse'error x__)+                (Control.DeepSeq.deepseq+                   (_CodeGeneratorResponse'supportedFeatures x__)+                   (Control.DeepSeq.deepseq+                      (_CodeGeneratorResponse'minimumEdition x__)+                      (Control.DeepSeq.deepseq+                         (_CodeGeneratorResponse'maximumEdition x__)+                         (Control.DeepSeq.deepseq (_CodeGeneratorResponse'file x__) ())))))+data CodeGeneratorResponse'Feature+  = CodeGeneratorResponse'FEATURE_NONE |+    CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL |+    CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum CodeGeneratorResponse'Feature where+  maybeToEnum 0 = Prelude.Just CodeGeneratorResponse'FEATURE_NONE+  maybeToEnum 1+    = Prelude.Just CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+  maybeToEnum 2+    = Prelude.Just CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+  maybeToEnum _ = Prelude.Nothing+  showEnum CodeGeneratorResponse'FEATURE_NONE = "FEATURE_NONE"+  showEnum CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+    = "FEATURE_PROTO3_OPTIONAL"+  showEnum CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+    = "FEATURE_SUPPORTS_EDITIONS"+  readEnum k+    | (Prelude.==) k "FEATURE_NONE"+    = Prelude.Just CodeGeneratorResponse'FEATURE_NONE+    | (Prelude.==) k "FEATURE_PROTO3_OPTIONAL"+    = Prelude.Just CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+    | (Prelude.==) k "FEATURE_SUPPORTS_EDITIONS"+    = Prelude.Just CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded CodeGeneratorResponse'Feature where+  minBound = CodeGeneratorResponse'FEATURE_NONE+  maxBound = CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+instance Prelude.Enum CodeGeneratorResponse'Feature where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Feature: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum CodeGeneratorResponse'FEATURE_NONE = 0+  fromEnum CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL = 1+  fromEnum CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS = 2+  succ CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+    = Prelude.error+        "CodeGeneratorResponse'Feature.succ: bad argument CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS. This value would be out of bounds."+  succ CodeGeneratorResponse'FEATURE_NONE+    = CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+  succ CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+    = CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+  pred CodeGeneratorResponse'FEATURE_NONE+    = Prelude.error+        "CodeGeneratorResponse'Feature.pred: bad argument CodeGeneratorResponse'FEATURE_NONE. This value would be out of bounds."+  pred CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+    = CodeGeneratorResponse'FEATURE_NONE+  pred CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+    = CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault CodeGeneratorResponse'Feature where+  fieldDefault = CodeGeneratorResponse'FEATURE_NONE+instance Control.DeepSeq.NFData CodeGeneratorResponse'Feature where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.name' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'name' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.insertionPoint' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'insertionPoint' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.content' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'content' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.generatedCodeInfo' @:: Lens' CodeGeneratorResponse'File Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'generatedCodeInfo' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo)@ -}+data CodeGeneratorResponse'File+  = CodeGeneratorResponse'File'_constructor {_CodeGeneratorResponse'File'name :: !(Prelude.Maybe Data.Text.Text),+                                             _CodeGeneratorResponse'File'insertionPoint :: !(Prelude.Maybe Data.Text.Text),+                                             _CodeGeneratorResponse'File'content :: !(Prelude.Maybe Data.Text.Text),+                                             _CodeGeneratorResponse'File'generatedCodeInfo :: !(Prelude.Maybe Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo),+                                             _CodeGeneratorResponse'File'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorResponse'File where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'name+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'name+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "insertionPoint" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'insertionPoint+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'File'insertionPoint = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'insertionPoint" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'insertionPoint+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'File'insertionPoint = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "content" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'content+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'content = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'content" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'content+           (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'content = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "generatedCodeInfo" Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'generatedCodeInfo+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'File'generatedCodeInfo = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'generatedCodeInfo" (Prelude.Maybe Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _CodeGeneratorResponse'File'generatedCodeInfo+           (\ x__ y__+              -> x__ {_CodeGeneratorResponse'File'generatedCodeInfo = y__}))+        Prelude.id+instance Data.ProtoLens.Message CodeGeneratorResponse'File where+  messageName _+    = Data.Text.pack+        "google.protobuf.compiler.CodeGeneratorResponse.File"+  packedMessageDescriptor _+    = "\n\+      \\EOTFile\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2'\n\+      \\SIinsertion_point\CAN\STX \SOH(\tR\SOinsertionPoint\DC2\CAN\n\+      \\acontent\CAN\SI \SOH(\tR\acontent\DC2R\n\+      \\DC3generated_code_info\CAN\DLE \SOH(\v2\".google.protobuf.GeneratedCodeInfoR\DC1generatedCodeInfo"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+        insertionPoint__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "insertion_point"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'insertionPoint")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+        content__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "content"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'content")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+        generatedCodeInfo__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "generated_code_info"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.Descriptor.GeneratedCodeInfo)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'generatedCodeInfo")) ::+              Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, insertionPoint__field_descriptor),+           (Data.ProtoLens.Tag 15, content__field_descriptor),+           (Data.ProtoLens.Tag 16, generatedCodeInfo__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _CodeGeneratorResponse'File'_unknownFields+        (\ x__ y__+           -> x__ {_CodeGeneratorResponse'File'_unknownFields = y__})+  defMessage+    = CodeGeneratorResponse'File'_constructor+        {_CodeGeneratorResponse'File'name = Prelude.Nothing,+         _CodeGeneratorResponse'File'insertionPoint = Prelude.Nothing,+         _CodeGeneratorResponse'File'content = Prelude.Nothing,+         _CodeGeneratorResponse'File'generatedCodeInfo = Prelude.Nothing,+         _CodeGeneratorResponse'File'_unknownFields = []}+  parseMessage+    = let+        loop ::+          CodeGeneratorResponse'File+          -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorResponse'File+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "insertion_point"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"insertionPoint") y x)+                        122+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "content"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"content") y x)+                        130+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "generated_code_info"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"generatedCodeInfo") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "File"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'insertionPoint") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'content") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.Text.Encoding.encodeUtf8+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'generatedCodeInfo") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 130)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.ProtoLens.encodeMessage+                                   _v))+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData CodeGeneratorResponse'File where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_CodeGeneratorResponse'File'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_CodeGeneratorResponse'File'name x__)+                (Control.DeepSeq.deepseq+                   (_CodeGeneratorResponse'File'insertionPoint x__)+                   (Control.DeepSeq.deepseq+                      (_CodeGeneratorResponse'File'content x__)+                      (Control.DeepSeq.deepseq+                         (_CodeGeneratorResponse'File'generatedCodeInfo x__) ()))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.major' @:: Lens' Version Data.Int.Int32@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'major' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.minor' @:: Lens' Version Data.Int.Int32@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'minor' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.patch' @:: Lens' Version Data.Int.Int32@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'patch' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.suffix' @:: Lens' Version Data.Text.Text@+         * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'suffix' @:: Lens' Version (Prelude.Maybe Data.Text.Text)@ -}+data Version+  = Version'_constructor {_Version'major :: !(Prelude.Maybe Data.Int.Int32),+                          _Version'minor :: !(Prelude.Maybe Data.Int.Int32),+                          _Version'patch :: !(Prelude.Maybe Data.Int.Int32),+                          _Version'suffix :: !(Prelude.Maybe Data.Text.Text),+                          _Version'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Version where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField Version "major" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'major (\ x__ y__ -> x__ {_Version'major = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'major" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'major (\ x__ y__ -> x__ {_Version'major = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Version "minor" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'minor (\ x__ y__ -> x__ {_Version'minor = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'minor" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'minor (\ x__ y__ -> x__ {_Version'minor = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Version "patch" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'patch (\ x__ y__ -> x__ {_Version'patch = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'patch" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'patch (\ x__ y__ -> x__ {_Version'patch = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Version "suffix" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'suffix (\ x__ y__ -> x__ {_Version'suffix = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'suffix" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Version'suffix (\ x__ y__ -> x__ {_Version'suffix = y__}))+        Prelude.id+instance Data.ProtoLens.Message Version where+  messageName _ = Data.Text.pack "google.protobuf.compiler.Version"+  packedMessageDescriptor _+    = "\n\+      \\aVersion\DC2\DC4\n\+      \\ENQmajor\CAN\SOH \SOH(\ENQR\ENQmajor\DC2\DC4\n\+      \\ENQminor\CAN\STX \SOH(\ENQR\ENQminor\DC2\DC4\n\+      \\ENQpatch\CAN\ETX \SOH(\ENQR\ENQpatch\DC2\SYN\n\+      \\ACKsuffix\CAN\EOT \SOH(\tR\ACKsuffix"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        major__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "major"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'major")) ::+              Data.ProtoLens.FieldDescriptor Version+        minor__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "minor"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'minor")) ::+              Data.ProtoLens.FieldDescriptor Version+        patch__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "patch"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'patch")) ::+              Data.ProtoLens.FieldDescriptor Version+        suffix__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "suffix"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'suffix")) ::+              Data.ProtoLens.FieldDescriptor Version+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, major__field_descriptor),+           (Data.ProtoLens.Tag 2, minor__field_descriptor),+           (Data.ProtoLens.Tag 3, patch__field_descriptor),+           (Data.ProtoLens.Tag 4, suffix__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _Version'_unknownFields+        (\ x__ y__ -> x__ {_Version'_unknownFields = y__})+  defMessage+    = Version'_constructor+        {_Version'major = Prelude.Nothing,+         _Version'minor = Prelude.Nothing, _Version'patch = Prelude.Nothing,+         _Version'suffix = Prelude.Nothing, _Version'_unknownFields = []}+  parseMessage+    = let+        loop :: Version -> Data.ProtoLens.Encoding.Bytes.Parser Version+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "major"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"major") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "minor"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"minor") y x)+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "patch"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"patch") y x)+                        34+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "suffix"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"suffix") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "Version"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'major") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'minor") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'patch") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'suffix") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.Text.Encoding.encodeUtf8+                                   _v))+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData Version where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_Version'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_Version'major x__)+                (Control.DeepSeq.deepseq+                   (_Version'minor x__)+                   (Control.DeepSeq.deepseq+                      (_Version'patch x__)+                      (Control.DeepSeq.deepseq (_Version'suffix x__) ()))))+packedFileDescriptor :: Data.ByteString.ByteString+packedFileDescriptor+  = "\n\+    \%google/protobuf/compiler/plugin.proto\DC2\CANgoogle.protobuf.compiler\SUB google/protobuf/descriptor.proto\"c\n\+    \\aVersion\DC2\DC4\n\+    \\ENQmajor\CAN\SOH \SOH(\ENQR\ENQmajor\DC2\DC4\n\+    \\ENQminor\CAN\STX \SOH(\ENQR\ENQminor\DC2\DC4\n\+    \\ENQpatch\CAN\ETX \SOH(\ENQR\ENQpatch\DC2\SYN\n\+    \\ACKsuffix\CAN\EOT \SOH(\tR\ACKsuffix\"\207\STX\n\+    \\DC4CodeGeneratorRequest\DC2(\n\+    \\DLEfile_to_generate\CAN\SOH \ETX(\tR\SOfileToGenerate\DC2\FS\n\+    \\tparameter\CAN\STX \SOH(\tR\tparameter\DC2C\n\+    \\n\+    \proto_file\CAN\SI \ETX(\v2$.google.protobuf.FileDescriptorProtoR\tprotoFile\DC2\\\n\+    \\ETBsource_file_descriptors\CAN\DC1 \ETX(\v2$.google.protobuf.FileDescriptorProtoR\NAKsourceFileDescriptors\DC2L\n\+    \\DLEcompiler_version\CAN\ETX \SOH(\v2!.google.protobuf.compiler.VersionR\SIcompilerVersion\"\133\EOT\n\+    \\NAKCodeGeneratorResponse\DC2\DC4\n\+    \\ENQerror\CAN\SOH \SOH(\tR\ENQerror\DC2-\n\+    \\DC2supported_features\CAN\STX \SOH(\EOTR\DC1supportedFeatures\DC2'\n\+    \\SIminimum_edition\CAN\ETX \SOH(\ENQR\SOminimumEdition\DC2'\n\+    \\SImaximum_edition\CAN\EOT \SOH(\ENQR\SOmaximumEdition\DC2H\n\+    \\EOTfile\CAN\SI \ETX(\v24.google.protobuf.compiler.CodeGeneratorResponse.FileR\EOTfile\SUB\177\SOH\n\+    \\EOTFile\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2'\n\+    \\SIinsertion_point\CAN\STX \SOH(\tR\SOinsertionPoint\DC2\CAN\n\+    \\acontent\CAN\SI \SOH(\tR\acontent\DC2R\n\+    \\DC3generated_code_info\CAN\DLE \SOH(\v2\".google.protobuf.GeneratedCodeInfoR\DC1generatedCodeInfo\"W\n\+    \\aFeature\DC2\DLE\n\+    \\fFEATURE_NONE\DLE\NUL\DC2\ESC\n\+    \\ETBFEATURE_PROTO3_OPTIONAL\DLE\SOH\DC2\GS\n\+    \\EMFEATURE_SUPPORTS_EDITIONS\DLE\STXBr\n\+    \\FScom.google.protobuf.compilerB\fPluginProtosZ)google.golang.org/protobuf/types/pluginpb\170\STX\CANGoogle.Protobuf.CompilerJ\226B\n\+    \\a\DC2\ENQ\DC4\NUL\179\SOH\SOH\n\+    \\186\ACK\n\+    \\SOH\f\DC2\ETX\DC4\NUL\DC22\137\STX Protocol Buffers - Google's data interchange format\n\+    \ Copyright 2008 Google Inc.  All rights reserved.\n\+    \\n\+    \ Use of this source code is governed by a BSD-style\n\+    \ license that can be found in the LICENSE file or at\n\+    \ https://developers.google.com/open-source/licenses/bsd\n\+    \2\163\EOT Author: kenton@google.com (Kenton Varda)\n\+    \\n\+    \ protoc (aka the Protocol Compiler) can be extended via plugins.  A plugin is\n\+    \ just a program that reads a CodeGeneratorRequest from stdin and writes a\n\+    \ CodeGeneratorResponse to stdout.\n\+    \\n\+    \ Plugins written using C++ can use google/protobuf/compiler/plugin.h instead\n\+    \ of dealing with the raw protocol defined here.\n\+    \\n\+    \ A plugin executable needs only to be placed somewhere in the path.  The\n\+    \ plugin should be named \"protoc-gen-$NAME\", and will then be used when the\n\+    \ flag \"--${NAME}_out\" is passed to protoc.\n\+    \\n\+    \\b\n\+    \\SOH\STX\DC2\ETX\SYN\NUL!\n\+    \\b\n\+    \\SOH\b\DC2\ETX\ETB\NUL5\n\+    \\t\n\+    \\STX\b\SOH\DC2\ETX\ETB\NUL5\n\+    \\b\n\+    \\SOH\b\DC2\ETX\CAN\NUL-\n\+    \\t\n\+    \\STX\b\b\DC2\ETX\CAN\NUL-\n\+    \\b\n\+    \\SOH\b\DC2\ETX\SUB\NUL5\n\+    \\t\n\+    \\STX\b%\DC2\ETX\SUB\NUL5\n\+    \\b\n\+    \\SOH\b\DC2\ETX\ESC\NUL@\n\+    \\t\n\+    \\STX\b\v\DC2\ETX\ESC\NUL@\n\+    \\t\n\+    \\STX\ETX\NUL\DC2\ETX\GS\NUL*\n\+    \6\n\+    \\STX\EOT\NUL\DC2\EOT \NUL'\SOH\SUB* The version number of protocol compiler.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\EOT\NUL\SOH\DC2\ETX \b\SI\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX!\STX\ESC\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\ETX!\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX!\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX!\DC1\SYN\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX!\EM\SUB\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\"\STX\ESC\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\EOT\DC2\ETX\"\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\ENQ\DC2\ETX\"\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\"\DC1\SYN\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\"\EM\SUB\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\STX\DC2\ETX#\STX\ESC\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX#\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\ENQ\DC2\ETX#\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX#\DC1\SYN\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX#\EM\SUB\n\+    \\128\SOH\n\+    \\EOT\EOT\NUL\STX\ETX\DC2\ETX&\STX\GS\SUBs A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n\+    \ be empty for mainline stable releases.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\EOT\DC2\ETX&\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\ENQ\DC2\ETX&\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\SOH\DC2\ETX&\DC2\CAN\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\ETX\DC2\ETX&\ESC\FS\n\+    \O\n\+    \\STX\EOT\SOH\DC2\EOT*\NULO\SOH\SUBC An encoded CodeGeneratorRequest is written to the plugin's stdin.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\EOT\SOH\SOH\DC2\ETX*\b\FS\n\+    \\209\SOH\n\+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX.\STX'\SUB\195\SOH The .proto files that were explicitly listed on the command-line.  The\n\+    \ code generator should generate code only for these files.  Each file's\n\+    \ descriptor will be included in proto_file, below.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\ETX.\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\ETX.\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX.\DC2\"\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX.%&\n\+    \B\n\+    \\EOT\EOT\SOH\STX\SOH\DC2\ETX1\STX \SUB5 The generator parameter passed on the command-line.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\EOT\DC2\ETX1\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\ENQ\DC2\ETX1\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX1\DC2\ESC\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX1\RS\US\n\+    \\150\b\n\+    \\EOT\EOT\SOH\STX\STX\DC2\ETXF\STX/\SUB\136\b FileDescriptorProtos for all files in files_to_generate and everything\n\+    \ they import.  The files will appear in topological order, so each file\n\+    \ appears before any file that imports it.\n\+    \\n\+    \ Note: the files listed in files_to_generate will include runtime-retention\n\+    \ options only, but all other files will include source-retention options.\n\+    \ The source_file_descriptors field below is available in case you need\n\+    \ source-retention options for files_to_generate.\n\+    \\n\+    \ protoc guarantees that all proto_files will be written after\n\+    \ the fields above, even though this is not technically guaranteed by the\n\+    \ protobuf wire format.  This theoretically could allow a plugin to stream\n\+    \ in the FileDescriptorProtos and handle them one by one rather than read\n\+    \ the entire set into memory at once.  However, as of this writing, this\n\+    \ is not similarly optimized on protoc's end -- it will store all fields in\n\+    \ memory at once before sending them to the plugin.\n\+    \\n\+    \ Type names of fields and extensions in the FileDescriptorProto are always\n\+    \ fully qualified.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\EOT\DC2\ETXF\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\ACK\DC2\ETXF\v\RS\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETXF\US)\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETXF,.\n\+    \\167\SOH\n\+    \\EOT\EOT\SOH\STX\ETX\DC2\ETXK\STX<\SUB\153\SOH File descriptors with all options, including source-retention options.\n\+    \ These descriptors are only provided for the files listed in\n\+    \ files_to_generate.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\EOT\DC2\ETXK\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETXK\v\RS\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETXK\US6\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETXK9;\n\+    \7\n\+    \\EOT\EOT\SOH\STX\EOT\DC2\ETXN\STX(\SUB* The version number of protocol compiler.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\EOT\DC2\ETXN\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\ACK\DC2\ETXN\v\DC2\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\SOH\DC2\ETXN\DC3#\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\ETX\DC2\ETXN&'\n\+    \L\n\+    \\STX\EOT\STX\DC2\ENQR\NUL\179\SOH\SOH\SUB? The plugin writes an encoded CodeGeneratorResponse to stdout.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\EOT\STX\SOH\DC2\ETXR\b\GS\n\+    \\237\ETX\n\+    \\EOT\EOT\STX\STX\NUL\DC2\ETX[\STX\FS\SUB\223\ETX Error message.  If non-empty, code generation failed.  The plugin process\n\+    \ should exit with status code zero even if it reports an error in this way.\n\+    \\n\+    \ This should be used to indicate errors in .proto files which prevent the\n\+    \ code generator from generating correct code.  Errors which indicate a\n\+    \ problem in protoc itself -- such as the input CodeGeneratorRequest being\n\+    \ unparseable -- should be reported by writing a message to stderr and\n\+    \ exiting with a non-zero status code.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\NUL\EOT\DC2\ETX[\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETX[\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETX[\DC2\ETB\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETX[\SUB\ESC\n\+    \\137\SOH\n\+    \\EOT\EOT\STX\STX\SOH\DC2\ETX_\STX)\SUB| A bitmask of supported features that the code generator supports.\n\+    \ This is a bitwise \"or\" of values from the Feature enum.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\SOH\EOT\DC2\ETX_\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETX_\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETX_\DC2$\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETX_'(\n\+    \+\n\+    \\EOT\EOT\STX\EOT\NUL\DC2\EOTb\STXf\ETX\SUB\GS Sync with code_generator.h.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\EOT\NUL\SOH\DC2\ETXb\a\SO\n\+    \\r\n\+    \\ACK\EOT\STX\EOT\NUL\STX\NUL\DC2\ETXc\EOT\NAK\n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\NUL\SOH\DC2\ETXc\EOT\DLE\n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\NUL\STX\DC2\ETXc\DC3\DC4\n\+    \\r\n\+    \\ACK\EOT\STX\EOT\NUL\STX\SOH\DC2\ETXd\EOT \n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\SOH\SOH\DC2\ETXd\EOT\ESC\n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\SOH\STX\DC2\ETXd\RS\US\n\+    \\r\n\+    \\ACK\EOT\STX\EOT\NUL\STX\STX\DC2\ETXe\EOT\"\n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\STX\SOH\DC2\ETXe\EOT\GS\n\+    \\SO\n\+    \\a\EOT\STX\EOT\NUL\STX\STX\STX\DC2\ETXe !\n\+    \\167\STX\n\+    \\EOT\EOT\STX\STX\STX\DC2\ETXl\STX%\SUB\153\STX The minimum edition this plugin supports.  This will be treated as an\n\+    \ Edition enum, but we want to allow unknown values.  It should be specified\n\+    \ according the edition enum value, *not* the edition number.  Only takes\n\+    \ effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETXl\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETXl\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETXl\DC1 \n\+    \\f\n\+    \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETXl#$\n\+    \\167\STX\n\+    \\EOT\EOT\STX\STX\ETX\DC2\ETXr\STX%\SUB\153\STX The maximum edition this plugin supports.  This will be treated as an\n\+    \ Edition enum, but we want to allow unknown values.  It should be specified\n\+    \ according the edition enum value, *not* the edition number.  Only takes\n\+    \ effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\ETX\EOT\DC2\ETXr\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\ETX\ENQ\DC2\ETXr\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\STX\STX\ETX\SOH\DC2\ETXr\DC1 \n\+    \\f\n\+    \\ENQ\EOT\STX\STX\ETX\ETX\DC2\ETXr#$\n\+    \4\n\+    \\EOT\EOT\STX\ETX\NUL\DC2\ENQu\STX\177\SOH\ETX\SUB% Represents a single generated file.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\STX\ETX\NUL\SOH\DC2\ETXu\n\+    \\SO\n\+    \\174\ENQ\n\+    \\ACK\EOT\STX\ETX\NUL\STX\NUL\DC2\EOT\129\SOH\EOT\GS\SUB\157\ENQ The file name, relative to the output directory.  The name must not\n\+    \ contain \".\" or \"..\" components and must be relative, not be absolute (so,\n\+    \ the file cannot lie outside the output directory).  \"/\" must be used as\n\+    \ the path separator, not \"\\\".\n\+    \\n\+    \ If the name is omitted, the content will be appended to the previous\n\+    \ file.  This allows the generator to break large files into small chunks,\n\+    \ and allows the generated text to be streamed back to protoc so that large\n\+    \ files need not reside completely in memory at one time.  Note that as of\n\+    \ this writing protoc does not optimize for this -- it will read the entire\n\+    \ CodeGeneratorResponse before writing files to disk.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\EOT\DC2\EOT\129\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\ENQ\DC2\EOT\129\SOH\r\DC3\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\SOH\DC2\EOT\129\SOH\DC4\CAN\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\ETX\DC2\EOT\129\SOH\ESC\FS\n\+    \\174\DLE\n\+    \\ACK\EOT\STX\ETX\NUL\STX\SOH\DC2\EOT\168\SOH\EOT(\SUB\157\DLE If non-empty, indicates that the named file should already exist, and the\n\+    \ content here is to be inserted into that file at a defined insertion\n\+    \ point.  This feature allows a code generator to extend the output\n\+    \ produced by another code generator.  The original generator may provide\n\+    \ insertion points by placing special annotations in the file that look\n\+    \ like:\n\+    \   @@protoc_insertion_point(NAME)\n\+    \ The annotation can have arbitrary text before and after it on the line,\n\+    \ which allows it to be placed in a comment.  NAME should be replaced with\n\+    \ an identifier naming the point -- this is what other generators will use\n\+    \ as the insertion_point.  Code inserted at this point will be placed\n\+    \ immediately above the line containing the insertion point (thus multiple\n\+    \ insertions to the same point will come out in the order they were added).\n\+    \ The double-@ is intended to make it unlikely that the generated code\n\+    \ could contain things that look like insertion points by accident.\n\+    \\n\+    \ For example, the C++ code generator places the following line in the\n\+    \ .pb.h files that it generates:\n\+    \   // @@protoc_insertion_point(namespace_scope)\n\+    \ This line appears within the scope of the file's package namespace, but\n\+    \ outside of any particular class.  Another plugin can then specify the\n\+    \ insertion_point \"namespace_scope\" to generate additional classes or\n\+    \ other declarations that should be placed in this scope.\n\+    \\n\+    \ Note that if the line containing the insertion point begins with\n\+    \ whitespace, the same whitespace will be added to every line of the\n\+    \ inserted text.  This is useful for languages like Python, where\n\+    \ indentation matters.  In these languages, the insertion point comment\n\+    \ should be indented the same amount as any inserted code will need to be\n\+    \ in order to work correctly in that context.\n\+    \\n\+    \ The code generator that generates the initial file and the one which\n\+    \ inserts into it must both run as part of a single invocation of protoc.\n\+    \ Code generators are executed in the order in which they appear on the\n\+    \ command line.\n\+    \\n\+    \ If |insertion_point| is present, |name| must also be present.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\EOT\DC2\EOT\168\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\ENQ\DC2\EOT\168\SOH\r\DC3\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\SOH\DC2\EOT\168\SOH\DC4#\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\ETX\DC2\EOT\168\SOH&'\n\+    \$\n\+    \\ACK\EOT\STX\ETX\NUL\STX\STX\DC2\EOT\171\SOH\EOT!\SUB\DC4 The file contents.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\EOT\DC2\EOT\171\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\ENQ\DC2\EOT\171\SOH\r\DC3\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\SOH\DC2\EOT\171\SOH\DC4\ESC\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\ETX\DC2\EOT\171\SOH\RS \n\+    \\225\SOH\n\+    \\ACK\EOT\STX\ETX\NUL\STX\ETX\DC2\EOT\176\SOH\EOT8\SUB\208\SOH Information describing the file content being inserted. If an insertion\n\+    \ point is used, this information will be appropriately offset and inserted\n\+    \ into the code generation metadata for the generated files.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\ETX\EOT\DC2\EOT\176\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\ETX\ACK\DC2\EOT\176\SOH\r\RS\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\ETX\SOH\DC2\EOT\176\SOH\US2\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\ETX\ETX\DC2\EOT\176\SOH57\n\+    \\f\n\+    \\EOT\EOT\STX\STX\EOT\DC2\EOT\178\SOH\STX\SUB\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\EOT\DC2\EOT\178\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\ACK\DC2\EOT\178\SOH\v\SI\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\SOH\DC2\EOT\178\SOH\DLE\DC4\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\ETX\DC2\EOT\178\SOH\ETB\EM"
+ app/Proto/Google/Protobuf/Compiler/Plugin_Fields.hs view
@@ -0,0 +1,247 @@+{- This file was auto-generated from google/protobuf/compiler/plugin.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Compiler.Plugin_Fields where+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+import qualified Proto.Google.Protobuf.Descriptor+compilerVersion ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "compilerVersion" a) =>+  Lens.Family2.LensLike' f s a+compilerVersion = Data.ProtoLens.Field.field @"compilerVersion"+content ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "content" a) =>+  Lens.Family2.LensLike' f s a+content = Data.ProtoLens.Field.field @"content"+error ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "error" a) =>+  Lens.Family2.LensLike' f s a+error = Data.ProtoLens.Field.field @"error"+file ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "file" a) =>+  Lens.Family2.LensLike' f s a+file = Data.ProtoLens.Field.field @"file"+fileToGenerate ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "fileToGenerate" a) =>+  Lens.Family2.LensLike' f s a+fileToGenerate = Data.ProtoLens.Field.field @"fileToGenerate"+generatedCodeInfo ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "generatedCodeInfo" a) =>+  Lens.Family2.LensLike' f s a+generatedCodeInfo = Data.ProtoLens.Field.field @"generatedCodeInfo"+insertionPoint ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "insertionPoint" a) =>+  Lens.Family2.LensLike' f s a+insertionPoint = Data.ProtoLens.Field.field @"insertionPoint"+major ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "major" a) =>+  Lens.Family2.LensLike' f s a+major = Data.ProtoLens.Field.field @"major"+maximumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maximumEdition" a) =>+  Lens.Family2.LensLike' f s a+maximumEdition = Data.ProtoLens.Field.field @"maximumEdition"+maybe'compilerVersion ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'compilerVersion" a) =>+  Lens.Family2.LensLike' f s a+maybe'compilerVersion+  = Data.ProtoLens.Field.field @"maybe'compilerVersion"+maybe'content ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'content" a) =>+  Lens.Family2.LensLike' f s a+maybe'content = Data.ProtoLens.Field.field @"maybe'content"+maybe'error ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'error" a) =>+  Lens.Family2.LensLike' f s a+maybe'error = Data.ProtoLens.Field.field @"maybe'error"+maybe'generatedCodeInfo ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'generatedCodeInfo" a) =>+  Lens.Family2.LensLike' f s a+maybe'generatedCodeInfo+  = Data.ProtoLens.Field.field @"maybe'generatedCodeInfo"+maybe'insertionPoint ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'insertionPoint" a) =>+  Lens.Family2.LensLike' f s a+maybe'insertionPoint+  = Data.ProtoLens.Field.field @"maybe'insertionPoint"+maybe'major ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'major" a) =>+  Lens.Family2.LensLike' f s a+maybe'major = Data.ProtoLens.Field.field @"maybe'major"+maybe'maximumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'maximumEdition" a) =>+  Lens.Family2.LensLike' f s a+maybe'maximumEdition+  = Data.ProtoLens.Field.field @"maybe'maximumEdition"+maybe'minimumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'minimumEdition" a) =>+  Lens.Family2.LensLike' f s a+maybe'minimumEdition+  = Data.ProtoLens.Field.field @"maybe'minimumEdition"+maybe'minor ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'minor" a) =>+  Lens.Family2.LensLike' f s a+maybe'minor = Data.ProtoLens.Field.field @"maybe'minor"+maybe'name ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'name" a) =>+  Lens.Family2.LensLike' f s a+maybe'name = Data.ProtoLens.Field.field @"maybe'name"+maybe'parameter ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'parameter" a) =>+  Lens.Family2.LensLike' f s a+maybe'parameter = Data.ProtoLens.Field.field @"maybe'parameter"+maybe'patch ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'patch" a) =>+  Lens.Family2.LensLike' f s a+maybe'patch = Data.ProtoLens.Field.field @"maybe'patch"+maybe'suffix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'suffix" a) =>+  Lens.Family2.LensLike' f s a+maybe'suffix = Data.ProtoLens.Field.field @"maybe'suffix"+maybe'supportedFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'supportedFeatures" a) =>+  Lens.Family2.LensLike' f s a+maybe'supportedFeatures+  = Data.ProtoLens.Field.field @"maybe'supportedFeatures"+minimumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "minimumEdition" a) =>+  Lens.Family2.LensLike' f s a+minimumEdition = Data.ProtoLens.Field.field @"minimumEdition"+minor ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "minor" a) =>+  Lens.Family2.LensLike' f s a+minor = Data.ProtoLens.Field.field @"minor"+name ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>+  Lens.Family2.LensLike' f s a+name = Data.ProtoLens.Field.field @"name"+parameter ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "parameter" a) =>+  Lens.Family2.LensLike' f s a+parameter = Data.ProtoLens.Field.field @"parameter"+patch ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "patch" a) =>+  Lens.Family2.LensLike' f s a+patch = Data.ProtoLens.Field.field @"patch"+protoFile ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "protoFile" a) =>+  Lens.Family2.LensLike' f s a+protoFile = Data.ProtoLens.Field.field @"protoFile"+sourceFileDescriptors ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "sourceFileDescriptors" a) =>+  Lens.Family2.LensLike' f s a+sourceFileDescriptors+  = Data.ProtoLens.Field.field @"sourceFileDescriptors"+suffix ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "suffix" a) =>+  Lens.Family2.LensLike' f s a+suffix = Data.ProtoLens.Field.field @"suffix"+supportedFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "supportedFeatures" a) =>+  Lens.Family2.LensLike' f s a+supportedFeatures = Data.ProtoLens.Field.field @"supportedFeatures"+vec'file ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'file" a) =>+  Lens.Family2.LensLike' f s a+vec'file = Data.ProtoLens.Field.field @"vec'file"+vec'fileToGenerate ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'fileToGenerate" a) =>+  Lens.Family2.LensLike' f s a+vec'fileToGenerate+  = Data.ProtoLens.Field.field @"vec'fileToGenerate"+vec'protoFile ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'protoFile" a) =>+  Lens.Family2.LensLike' f s a+vec'protoFile = Data.ProtoLens.Field.field @"vec'protoFile"+vec'sourceFileDescriptors ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'sourceFileDescriptors" a) =>+  Lens.Family2.LensLike' f s a+vec'sourceFileDescriptors+  = Data.ProtoLens.Field.field @"vec'sourceFileDescriptors"
+ app/Proto/Google/Protobuf/Descriptor.hs view
@@ -0,0 +1,18329 @@+{- This file was auto-generated from google/protobuf/descriptor.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Descriptor (+        DescriptorProto(), DescriptorProto'ExtensionRange(),+        DescriptorProto'ReservedRange(), Edition(..), Edition(),+        EnumDescriptorProto(), EnumDescriptorProto'EnumReservedRange(),+        EnumOptions(), EnumValueDescriptorProto(), EnumValueOptions(),+        ExtensionRangeOptions(), ExtensionRangeOptions'Declaration(),+        ExtensionRangeOptions'VerificationState(..),+        ExtensionRangeOptions'VerificationState(), FeatureSet(),+        FeatureSet'EnumType(..), FeatureSet'EnumType(),+        FeatureSet'FieldPresence(..), FeatureSet'FieldPresence(),+        FeatureSet'JsonFormat(..), FeatureSet'JsonFormat(),+        FeatureSet'MessageEncoding(..), FeatureSet'MessageEncoding(),+        FeatureSet'RepeatedFieldEncoding(..),+        FeatureSet'RepeatedFieldEncoding(), FeatureSet'Utf8Validation(..),+        FeatureSet'Utf8Validation(), FeatureSetDefaults(),+        FeatureSetDefaults'FeatureSetEditionDefault(),+        FieldDescriptorProto(), FieldDescriptorProto'Label(..),+        FieldDescriptorProto'Label(), FieldDescriptorProto'Type(..),+        FieldDescriptorProto'Type(), FieldOptions(),+        FieldOptions'CType(..), FieldOptions'CType(),+        FieldOptions'EditionDefault(), FieldOptions'FeatureSupport(),+        FieldOptions'JSType(..), FieldOptions'JSType(),+        FieldOptions'OptionRetention(..), FieldOptions'OptionRetention(),+        FieldOptions'OptionTargetType(..), FieldOptions'OptionTargetType(),+        FileDescriptorProto(), FileDescriptorSet(), FileOptions(),+        FileOptions'OptimizeMode(..), FileOptions'OptimizeMode(),+        GeneratedCodeInfo(), GeneratedCodeInfo'Annotation(),+        GeneratedCodeInfo'Annotation'Semantic(..),+        GeneratedCodeInfo'Annotation'Semantic(), MessageOptions(),+        MethodDescriptorProto(), MethodOptions(),+        MethodOptions'IdempotencyLevel(..),+        MethodOptions'IdempotencyLevel(), OneofDescriptorProto(),+        OneofOptions(), ServiceDescriptorProto(), ServiceOptions(),+        SourceCodeInfo(), SourceCodeInfo'Location(), UninterpretedOption(),+        UninterpretedOption'NamePart()+    ) where+import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' DescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' DescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.field' @:: Lens' DescriptorProto [FieldDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'field' @:: Lens' DescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.extension' @:: Lens' DescriptorProto [FieldDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extension' @:: Lens' DescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.nestedType' @:: Lens' DescriptorProto [DescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'nestedType' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.enumType' @:: Lens' DescriptorProto [EnumDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'enumType' @:: Lens' DescriptorProto (Data.Vector.Vector EnumDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.extensionRange' @:: Lens' DescriptorProto [DescriptorProto'ExtensionRange]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extensionRange' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto'ExtensionRange)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.oneofDecl' @:: Lens' DescriptorProto [OneofDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'oneofDecl' @:: Lens' DescriptorProto (Data.Vector.Vector OneofDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' DescriptorProto MessageOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' DescriptorProto (Prelude.Maybe MessageOptions)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.reservedRange' @:: Lens' DescriptorProto [DescriptorProto'ReservedRange]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedRange' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto'ReservedRange)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.reservedName' @:: Lens' DescriptorProto [Data.Text.Text]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedName' @:: Lens' DescriptorProto (Data.Vector.Vector Data.Text.Text)@ -}+data DescriptorProto+  = DescriptorProto'_constructor {_DescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                  _DescriptorProto'field :: !(Data.Vector.Vector FieldDescriptorProto),+                                  _DescriptorProto'extension :: !(Data.Vector.Vector FieldDescriptorProto),+                                  _DescriptorProto'nestedType :: !(Data.Vector.Vector DescriptorProto),+                                  _DescriptorProto'enumType :: !(Data.Vector.Vector EnumDescriptorProto),+                                  _DescriptorProto'extensionRange :: !(Data.Vector.Vector DescriptorProto'ExtensionRange),+                                  _DescriptorProto'oneofDecl :: !(Data.Vector.Vector OneofDescriptorProto),+                                  _DescriptorProto'options :: !(Prelude.Maybe MessageOptions),+                                  _DescriptorProto'reservedRange :: !(Data.Vector.Vector DescriptorProto'ReservedRange),+                                  _DescriptorProto'reservedName :: !(Data.Vector.Vector Data.Text.Text),+                                  _DescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'name+           (\ x__ y__ -> x__ {_DescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'name+           (\ x__ y__ -> x__ {_DescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "field" [FieldDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'field+           (\ x__ y__ -> x__ {_DescriptorProto'field = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'field" (Data.Vector.Vector FieldDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'field+           (\ x__ y__ -> x__ {_DescriptorProto'field = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "extension" [FieldDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'extension+           (\ x__ y__ -> x__ {_DescriptorProto'extension = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'extension" (Data.Vector.Vector FieldDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'extension+           (\ x__ y__ -> x__ {_DescriptorProto'extension = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "nestedType" [DescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'nestedType+           (\ x__ y__ -> x__ {_DescriptorProto'nestedType = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'nestedType" (Data.Vector.Vector DescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'nestedType+           (\ x__ y__ -> x__ {_DescriptorProto'nestedType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "enumType" [EnumDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'enumType+           (\ x__ y__ -> x__ {_DescriptorProto'enumType = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'enumType" (Data.Vector.Vector EnumDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'enumType+           (\ x__ y__ -> x__ {_DescriptorProto'enumType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "extensionRange" [DescriptorProto'ExtensionRange] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'extensionRange+           (\ x__ y__ -> x__ {_DescriptorProto'extensionRange = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'extensionRange" (Data.Vector.Vector DescriptorProto'ExtensionRange) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'extensionRange+           (\ x__ y__ -> x__ {_DescriptorProto'extensionRange = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "oneofDecl" [OneofDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'oneofDecl+           (\ x__ y__ -> x__ {_DescriptorProto'oneofDecl = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'oneofDecl" (Data.Vector.Vector OneofDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'oneofDecl+           (\ x__ y__ -> x__ {_DescriptorProto'oneofDecl = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "options" MessageOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'options+           (\ x__ y__ -> x__ {_DescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField DescriptorProto "maybe'options" (Prelude.Maybe MessageOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'options+           (\ x__ y__ -> x__ {_DescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "reservedRange" [DescriptorProto'ReservedRange] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'reservedRange+           (\ x__ y__ -> x__ {_DescriptorProto'reservedRange = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'reservedRange" (Data.Vector.Vector DescriptorProto'ReservedRange) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'reservedRange+           (\ x__ y__ -> x__ {_DescriptorProto'reservedRange = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "reservedName" [Data.Text.Text] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'reservedName+           (\ x__ y__ -> x__ {_DescriptorProto'reservedName = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'reservedName" (Data.Vector.Vector Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'reservedName+           (\ x__ y__ -> x__ {_DescriptorProto'reservedName = y__}))+        Prelude.id+instance Data.ProtoLens.Message DescriptorProto where+  messageName _ = Data.Text.pack "google.protobuf.DescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\SIDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2;\n\+      \\ENQfield\CAN\STX \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\ENQfield\DC2C\n\+      \\textension\CAN\ACK \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\textension\DC2A\n\+      \\vnested_type\CAN\ETX \ETX(\v2 .google.protobuf.DescriptorProtoR\n\+      \nestedType\DC2A\n\+      \\tenum_type\CAN\EOT \ETX(\v2$.google.protobuf.EnumDescriptorProtoR\benumType\DC2X\n\+      \\SIextension_range\CAN\ENQ \ETX(\v2/.google.protobuf.DescriptorProto.ExtensionRangeR\SOextensionRange\DC2D\n\+      \\n\+      \oneof_decl\CAN\b \ETX(\v2%.google.protobuf.OneofDescriptorProtoR\toneofDecl\DC29\n\+      \\aoptions\CAN\a \SOH(\v2\US.google.protobuf.MessageOptionsR\aoptions\DC2U\n\+      \\SOreserved_range\CAN\t \ETX(\v2..google.protobuf.DescriptorProto.ReservedRangeR\rreservedRange\DC2#\n\+      \\rreserved_name\CAN\n\+      \ \ETX(\tR\freservedName\SUBz\n\+      \\SOExtensionRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend\DC2@\n\+      \\aoptions\CAN\ETX \SOH(\v2&.google.protobuf.ExtensionRangeOptionsR\aoptions\SUB7\n\+      \\rReservedRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        field__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "field"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"field")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        extension__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "extension"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"extension")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        nestedType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "nested_type"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"nestedType")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        enumType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "enum_type"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"enumType")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        extensionRange__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "extension_range"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ExtensionRange)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"extensionRange")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        oneofDecl__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "oneof_decl"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor OneofDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"oneofDecl")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor MessageOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        reservedRange__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "reserved_range"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ReservedRange)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"reservedRange")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+        reservedName__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "reserved_name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"reservedName")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, field__field_descriptor),+           (Data.ProtoLens.Tag 6, extension__field_descriptor),+           (Data.ProtoLens.Tag 3, nestedType__field_descriptor),+           (Data.ProtoLens.Tag 4, enumType__field_descriptor),+           (Data.ProtoLens.Tag 5, extensionRange__field_descriptor),+           (Data.ProtoLens.Tag 8, oneofDecl__field_descriptor),+           (Data.ProtoLens.Tag 7, options__field_descriptor),+           (Data.ProtoLens.Tag 9, reservedRange__field_descriptor),+           (Data.ProtoLens.Tag 10, reservedName__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _DescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_DescriptorProto'_unknownFields = y__})+  defMessage+    = DescriptorProto'_constructor+        {_DescriptorProto'name = Prelude.Nothing,+         _DescriptorProto'field = Data.Vector.Generic.empty,+         _DescriptorProto'extension = Data.Vector.Generic.empty,+         _DescriptorProto'nestedType = Data.Vector.Generic.empty,+         _DescriptorProto'enumType = Data.Vector.Generic.empty,+         _DescriptorProto'extensionRange = Data.Vector.Generic.empty,+         _DescriptorProto'oneofDecl = Data.Vector.Generic.empty,+         _DescriptorProto'options = Prelude.Nothing,+         _DescriptorProto'reservedRange = Data.Vector.Generic.empty,+         _DescriptorProto'reservedName = Data.Vector.Generic.empty,+         _DescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          DescriptorProto+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto'ExtensionRange+                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+                      -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto+                         -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld OneofDescriptorProto+                            -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+                               -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto'ReservedRange+                                  -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto+        loop+          x+          mutable'enumType+          mutable'extension+          mutable'extensionRange+          mutable'field+          mutable'nestedType+          mutable'oneofDecl+          mutable'reservedName+          mutable'reservedRange+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                              mutable'enumType)+                      frozen'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                               mutable'extension)+                      frozen'extensionRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                    mutable'extensionRange)+                      frozen'field <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'field)+                      frozen'nestedType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                mutable'nestedType)+                      frozen'oneofDecl <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                               mutable'oneofDecl)+                      frozen'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                  mutable'reservedName)+                      frozen'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                   mutable'reservedRange)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'enumType")+                              frozen'enumType+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'extension")+                                 frozen'extension+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'extensionRange")+                                    frozen'extensionRange+                                    (Lens.Family2.set+                                       (Data.ProtoLens.Field.field @"vec'field")+                                       frozen'field+                                       (Lens.Family2.set+                                          (Data.ProtoLens.Field.field @"vec'nestedType")+                                          frozen'nestedType+                                          (Lens.Family2.set+                                             (Data.ProtoLens.Field.field @"vec'oneofDecl")+                                             frozen'oneofDecl+                                             (Lens.Family2.set+                                                (Data.ProtoLens.Field.field @"vec'reservedName")+                                                frozen'reservedName+                                                (Lens.Family2.set+                                                   (Data.ProtoLens.Field.field @"vec'reservedRange")+                                                   frozen'reservedRange+                                                   x)))))))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        18+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "field"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'field y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  v+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        50+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "extension"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'extension y)+                                loop+                                  x+                                  mutable'enumType+                                  v+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        26+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "nested_type"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'nestedType y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  v+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        34+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "enum_type"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'enumType y)+                                loop+                                  x+                                  v+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        42+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "extension_range"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'extensionRange y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  v+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        66+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "oneof_decl"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'oneofDecl y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  v+                                  mutable'reservedName+                                  mutable'reservedRange+                        58+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+                        74+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "reserved_range"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'reservedRange y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  v+                        82+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getText+                                              (Prelude.fromIntegral len))+                                        "reserved_name"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'reservedName y)+                                loop+                                  x+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  v+                                  mutable'reservedRange+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'enumType+                                  mutable'extension+                                  mutable'extensionRange+                                  mutable'field+                                  mutable'nestedType+                                  mutable'oneofDecl+                                  mutable'reservedName+                                  mutable'reservedRange+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                    Data.ProtoLens.Encoding.Growing.new+              mutable'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                     Data.ProtoLens.Encoding.Growing.new+              mutable'extensionRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                          Data.ProtoLens.Encoding.Growing.new+              mutable'field <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                 Data.ProtoLens.Encoding.Growing.new+              mutable'nestedType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                      Data.ProtoLens.Encoding.Growing.new+              mutable'oneofDecl <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                     Data.ProtoLens.Encoding.Growing.new+              mutable'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        Data.ProtoLens.Encoding.Growing.new+              mutable'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                         Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'enumType+                mutable'extension+                mutable'extensionRange+                mutable'field+                mutable'nestedType+                mutable'oneofDecl+                mutable'reservedName+                mutable'reservedRange)+          "DescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                   (\ _v+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                           ((Prelude..)+                              (\ bs+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                              Data.ProtoLens.encodeMessage+                              _v))+                   (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'field") _x))+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                      (\ _v+                         -> (Data.Monoid.<>)+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+                              ((Prelude..)+                                 (\ bs+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                 Data.ProtoLens.encodeMessage+                                 _v))+                      (Lens.Family2.view+                         (Data.ProtoLens.Field.field @"vec'extension") _x))+                   ((Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                         (\ _v+                            -> (Data.Monoid.<>)+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                                 ((Prelude..)+                                    (\ bs+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                    Data.ProtoLens.encodeMessage+                                    _v))+                         (Lens.Family2.view+                            (Data.ProtoLens.Field.field @"vec'nestedType") _x))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.ProtoLens.encodeMessage+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'enumType") _x))+                         ((Data.Monoid.<>)+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                               (\ _v+                                  -> (Data.Monoid.<>)+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+                                       ((Prelude..)+                                          (\ bs+                                             -> (Data.Monoid.<>)+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                     (Prelude.fromIntegral+                                                        (Data.ByteString.length bs)))+                                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                          Data.ProtoLens.encodeMessage+                                          _v))+                               (Lens.Family2.view+                                  (Data.ProtoLens.Field.field @"vec'extensionRange") _x))+                            ((Data.Monoid.<>)+                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                  (\ _v+                                     -> (Data.Monoid.<>)+                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+                                          ((Prelude..)+                                             (\ bs+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                        (Prelude.fromIntegral+                                                           (Data.ByteString.length bs)))+                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                             Data.ProtoLens.encodeMessage+                                             _v))+                                  (Lens.Family2.view+                                     (Data.ProtoLens.Field.field @"vec'oneofDecl") _x))+                               ((Data.Monoid.<>)+                                  (case+                                       Lens.Family2.view+                                         (Data.ProtoLens.Field.field @"maybe'options") _x+                                   of+                                     Prelude.Nothing -> Data.Monoid.mempty+                                     (Prelude.Just _v)+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+                                            ((Prelude..)+                                               (\ bs+                                                  -> (Data.Monoid.<>)+                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                          (Prelude.fromIntegral+                                                             (Data.ByteString.length bs)))+                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                               Data.ProtoLens.encodeMessage+                                               _v))+                                  ((Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                        (\ _v+                                           -> (Data.Monoid.<>)+                                                (Data.ProtoLens.Encoding.Bytes.putVarInt 74)+                                                ((Prelude..)+                                                   (\ bs+                                                      -> (Data.Monoid.<>)+                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                              (Prelude.fromIntegral+                                                                 (Data.ByteString.length bs)))+                                                           (Data.ProtoLens.Encoding.Bytes.putBytes+                                                              bs))+                                                   Data.ProtoLens.encodeMessage+                                                   _v))+                                        (Lens.Family2.view+                                           (Data.ProtoLens.Field.field @"vec'reservedRange") _x))+                                     ((Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                           (\ _v+                                              -> (Data.Monoid.<>)+                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 82)+                                                   ((Prelude..)+                                                      (\ bs+                                                         -> (Data.Monoid.<>)+                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                 (Prelude.fromIntegral+                                                                    (Data.ByteString.length bs)))+                                                              (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                 bs))+                                                      Data.Text.Encoding.encodeUtf8+                                                      _v))+                                           (Lens.Family2.view+                                              (Data.ProtoLens.Field.field @"vec'reservedName") _x))+                                        (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                           (Lens.Family2.view+                                              Data.ProtoLens.unknownFields _x)))))))))))+instance Control.DeepSeq.NFData DescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_DescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_DescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_DescriptorProto'field x__)+                   (Control.DeepSeq.deepseq+                      (_DescriptorProto'extension x__)+                      (Control.DeepSeq.deepseq+                         (_DescriptorProto'nestedType x__)+                         (Control.DeepSeq.deepseq+                            (_DescriptorProto'enumType x__)+                            (Control.DeepSeq.deepseq+                               (_DescriptorProto'extensionRange x__)+                               (Control.DeepSeq.deepseq+                                  (_DescriptorProto'oneofDecl x__)+                                  (Control.DeepSeq.deepseq+                                     (_DescriptorProto'options x__)+                                     (Control.DeepSeq.deepseq+                                        (_DescriptorProto'reservedRange x__)+                                        (Control.DeepSeq.deepseq+                                           (_DescriptorProto'reservedName x__) ()))))))))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' DescriptorProto'ExtensionRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' DescriptorProto'ExtensionRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' DescriptorProto'ExtensionRange ExtensionRangeOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe ExtensionRangeOptions)@ -}+data DescriptorProto'ExtensionRange+  = DescriptorProto'ExtensionRange'_constructor {_DescriptorProto'ExtensionRange'start :: !(Prelude.Maybe Data.Int.Int32),+                                                 _DescriptorProto'ExtensionRange'end :: !(Prelude.Maybe Data.Int.Int32),+                                                 _DescriptorProto'ExtensionRange'options :: !(Prelude.Maybe ExtensionRangeOptions),+                                                 _DescriptorProto'ExtensionRange'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto'ExtensionRange where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "start" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'start+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'start = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'start+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'start = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "end" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'end+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'end = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'end+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'end = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "options" ExtensionRangeOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'options+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'options" (Prelude.Maybe ExtensionRangeOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ExtensionRange'options+           (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'options = y__}))+        Prelude.id+instance Data.ProtoLens.Message DescriptorProto'ExtensionRange where+  messageName _+    = Data.Text.pack "google.protobuf.DescriptorProto.ExtensionRange"+  packedMessageDescriptor _+    = "\n\+      \\SOExtensionRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend\DC2@\n\+      \\aoptions\CAN\ETX \SOH(\v2&.google.protobuf.ExtensionRangeOptionsR\aoptions"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        start__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "start"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'start")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+        end__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "end"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'end")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor ExtensionRangeOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, start__field_descriptor),+           (Data.ProtoLens.Tag 2, end__field_descriptor),+           (Data.ProtoLens.Tag 3, options__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _DescriptorProto'ExtensionRange'_unknownFields+        (\ x__ y__+           -> x__ {_DescriptorProto'ExtensionRange'_unknownFields = y__})+  defMessage+    = DescriptorProto'ExtensionRange'_constructor+        {_DescriptorProto'ExtensionRange'start = Prelude.Nothing,+         _DescriptorProto'ExtensionRange'end = Prelude.Nothing,+         _DescriptorProto'ExtensionRange'options = Prelude.Nothing,+         _DescriptorProto'ExtensionRange'_unknownFields = []}+  parseMessage+    = let+        loop ::+          DescriptorProto'ExtensionRange+          -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto'ExtensionRange+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "start"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "end"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "ExtensionRange"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData DescriptorProto'ExtensionRange where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_DescriptorProto'ExtensionRange'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_DescriptorProto'ExtensionRange'start x__)+                (Control.DeepSeq.deepseq+                   (_DescriptorProto'ExtensionRange'end x__)+                   (Control.DeepSeq.deepseq+                      (_DescriptorProto'ExtensionRange'options x__) ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' DescriptorProto'ReservedRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' DescriptorProto'ReservedRange (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' DescriptorProto'ReservedRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' DescriptorProto'ReservedRange (Prelude.Maybe Data.Int.Int32)@ -}+data DescriptorProto'ReservedRange+  = DescriptorProto'ReservedRange'_constructor {_DescriptorProto'ReservedRange'start :: !(Prelude.Maybe Data.Int.Int32),+                                                _DescriptorProto'ReservedRange'end :: !(Prelude.Maybe Data.Int.Int32),+                                                _DescriptorProto'ReservedRange'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto'ReservedRange where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "start" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ReservedRange'start+           (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'start = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ReservedRange'start+           (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'start = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "end" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ReservedRange'end+           (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'end = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _DescriptorProto'ReservedRange'end+           (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'end = y__}))+        Prelude.id+instance Data.ProtoLens.Message DescriptorProto'ReservedRange where+  messageName _+    = Data.Text.pack "google.protobuf.DescriptorProto.ReservedRange"+  packedMessageDescriptor _+    = "\n\+      \\rReservedRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        start__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "start"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'start")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto'ReservedRange+        end__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "end"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'end")) ::+              Data.ProtoLens.FieldDescriptor DescriptorProto'ReservedRange+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, start__field_descriptor),+           (Data.ProtoLens.Tag 2, end__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _DescriptorProto'ReservedRange'_unknownFields+        (\ x__ y__+           -> x__ {_DescriptorProto'ReservedRange'_unknownFields = y__})+  defMessage+    = DescriptorProto'ReservedRange'_constructor+        {_DescriptorProto'ReservedRange'start = Prelude.Nothing,+         _DescriptorProto'ReservedRange'end = Prelude.Nothing,+         _DescriptorProto'ReservedRange'_unknownFields = []}+  parseMessage+    = let+        loop ::+          DescriptorProto'ReservedRange+          -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto'ReservedRange+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "start"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "end"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "ReservedRange"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData DescriptorProto'ReservedRange where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_DescriptorProto'ReservedRange'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_DescriptorProto'ReservedRange'start x__)+                (Control.DeepSeq.deepseq+                   (_DescriptorProto'ReservedRange'end x__) ()))+data Edition+  = EDITION_UNKNOWN |+    EDITION_1_TEST_ONLY |+    EDITION_2_TEST_ONLY |+    EDITION_LEGACY |+    EDITION_PROTO2 |+    EDITION_PROTO3 |+    EDITION_2023 |+    EDITION_2024 |+    EDITION_99997_TEST_ONLY |+    EDITION_99998_TEST_ONLY |+    EDITION_99999_TEST_ONLY |+    EDITION_MAX+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum Edition where+  maybeToEnum 0 = Prelude.Just EDITION_UNKNOWN+  maybeToEnum 1 = Prelude.Just EDITION_1_TEST_ONLY+  maybeToEnum 2 = Prelude.Just EDITION_2_TEST_ONLY+  maybeToEnum 900 = Prelude.Just EDITION_LEGACY+  maybeToEnum 998 = Prelude.Just EDITION_PROTO2+  maybeToEnum 999 = Prelude.Just EDITION_PROTO3+  maybeToEnum 1000 = Prelude.Just EDITION_2023+  maybeToEnum 1001 = Prelude.Just EDITION_2024+  maybeToEnum 99997 = Prelude.Just EDITION_99997_TEST_ONLY+  maybeToEnum 99998 = Prelude.Just EDITION_99998_TEST_ONLY+  maybeToEnum 99999 = Prelude.Just EDITION_99999_TEST_ONLY+  maybeToEnum 2147483647 = Prelude.Just EDITION_MAX+  maybeToEnum _ = Prelude.Nothing+  showEnum EDITION_UNKNOWN = "EDITION_UNKNOWN"+  showEnum EDITION_LEGACY = "EDITION_LEGACY"+  showEnum EDITION_PROTO2 = "EDITION_PROTO2"+  showEnum EDITION_PROTO3 = "EDITION_PROTO3"+  showEnum EDITION_2023 = "EDITION_2023"+  showEnum EDITION_2024 = "EDITION_2024"+  showEnum EDITION_1_TEST_ONLY = "EDITION_1_TEST_ONLY"+  showEnum EDITION_2_TEST_ONLY = "EDITION_2_TEST_ONLY"+  showEnum EDITION_99997_TEST_ONLY = "EDITION_99997_TEST_ONLY"+  showEnum EDITION_99998_TEST_ONLY = "EDITION_99998_TEST_ONLY"+  showEnum EDITION_99999_TEST_ONLY = "EDITION_99999_TEST_ONLY"+  showEnum EDITION_MAX = "EDITION_MAX"+  readEnum k+    | (Prelude.==) k "EDITION_UNKNOWN" = Prelude.Just EDITION_UNKNOWN+    | (Prelude.==) k "EDITION_LEGACY" = Prelude.Just EDITION_LEGACY+    | (Prelude.==) k "EDITION_PROTO2" = Prelude.Just EDITION_PROTO2+    | (Prelude.==) k "EDITION_PROTO3" = Prelude.Just EDITION_PROTO3+    | (Prelude.==) k "EDITION_2023" = Prelude.Just EDITION_2023+    | (Prelude.==) k "EDITION_2024" = Prelude.Just EDITION_2024+    | (Prelude.==) k "EDITION_1_TEST_ONLY"+    = Prelude.Just EDITION_1_TEST_ONLY+    | (Prelude.==) k "EDITION_2_TEST_ONLY"+    = Prelude.Just EDITION_2_TEST_ONLY+    | (Prelude.==) k "EDITION_99997_TEST_ONLY"+    = Prelude.Just EDITION_99997_TEST_ONLY+    | (Prelude.==) k "EDITION_99998_TEST_ONLY"+    = Prelude.Just EDITION_99998_TEST_ONLY+    | (Prelude.==) k "EDITION_99999_TEST_ONLY"+    = Prelude.Just EDITION_99999_TEST_ONLY+    | (Prelude.==) k "EDITION_MAX" = Prelude.Just EDITION_MAX+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded Edition where+  minBound = EDITION_UNKNOWN+  maxBound = EDITION_MAX+instance Prelude.Enum Edition where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Edition: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum EDITION_UNKNOWN = 0+  fromEnum EDITION_1_TEST_ONLY = 1+  fromEnum EDITION_2_TEST_ONLY = 2+  fromEnum EDITION_LEGACY = 900+  fromEnum EDITION_PROTO2 = 998+  fromEnum EDITION_PROTO3 = 999+  fromEnum EDITION_2023 = 1000+  fromEnum EDITION_2024 = 1001+  fromEnum EDITION_99997_TEST_ONLY = 99997+  fromEnum EDITION_99998_TEST_ONLY = 99998+  fromEnum EDITION_99999_TEST_ONLY = 99999+  fromEnum EDITION_MAX = 2147483647+  succ EDITION_MAX+    = Prelude.error+        "Edition.succ: bad argument EDITION_MAX. This value would be out of bounds."+  succ EDITION_UNKNOWN = EDITION_1_TEST_ONLY+  succ EDITION_1_TEST_ONLY = EDITION_2_TEST_ONLY+  succ EDITION_2_TEST_ONLY = EDITION_LEGACY+  succ EDITION_LEGACY = EDITION_PROTO2+  succ EDITION_PROTO2 = EDITION_PROTO3+  succ EDITION_PROTO3 = EDITION_2023+  succ EDITION_2023 = EDITION_2024+  succ EDITION_2024 = EDITION_99997_TEST_ONLY+  succ EDITION_99997_TEST_ONLY = EDITION_99998_TEST_ONLY+  succ EDITION_99998_TEST_ONLY = EDITION_99999_TEST_ONLY+  succ EDITION_99999_TEST_ONLY = EDITION_MAX+  pred EDITION_UNKNOWN+    = Prelude.error+        "Edition.pred: bad argument EDITION_UNKNOWN. This value would be out of bounds."+  pred EDITION_1_TEST_ONLY = EDITION_UNKNOWN+  pred EDITION_2_TEST_ONLY = EDITION_1_TEST_ONLY+  pred EDITION_LEGACY = EDITION_2_TEST_ONLY+  pred EDITION_PROTO2 = EDITION_LEGACY+  pred EDITION_PROTO3 = EDITION_PROTO2+  pred EDITION_2023 = EDITION_PROTO3+  pred EDITION_2024 = EDITION_2023+  pred EDITION_99997_TEST_ONLY = EDITION_2024+  pred EDITION_99998_TEST_ONLY = EDITION_99997_TEST_ONLY+  pred EDITION_99999_TEST_ONLY = EDITION_99998_TEST_ONLY+  pred EDITION_MAX = EDITION_99999_TEST_ONLY+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault Edition where+  fieldDefault = EDITION_UNKNOWN+instance Control.DeepSeq.NFData Edition where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' EnumDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' EnumDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.value' @:: Lens' EnumDescriptorProto [EnumValueDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'value' @:: Lens' EnumDescriptorProto (Data.Vector.Vector EnumValueDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' EnumDescriptorProto EnumOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' EnumDescriptorProto (Prelude.Maybe EnumOptions)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.reservedRange' @:: Lens' EnumDescriptorProto [EnumDescriptorProto'EnumReservedRange]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedRange' @:: Lens' EnumDescriptorProto (Data.Vector.Vector EnumDescriptorProto'EnumReservedRange)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.reservedName' @:: Lens' EnumDescriptorProto [Data.Text.Text]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedName' @:: Lens' EnumDescriptorProto (Data.Vector.Vector Data.Text.Text)@ -}+data EnumDescriptorProto+  = EnumDescriptorProto'_constructor {_EnumDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                      _EnumDescriptorProto'value :: !(Data.Vector.Vector EnumValueDescriptorProto),+                                      _EnumDescriptorProto'options :: !(Prelude.Maybe EnumOptions),+                                      _EnumDescriptorProto'reservedRange :: !(Data.Vector.Vector EnumDescriptorProto'EnumReservedRange),+                                      _EnumDescriptorProto'reservedName :: !(Data.Vector.Vector Data.Text.Text),+                                      _EnumDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'name+           (\ x__ y__ -> x__ {_EnumDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'name+           (\ x__ y__ -> x__ {_EnumDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "value" [EnumValueDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'value+           (\ x__ y__ -> x__ {_EnumDescriptorProto'value = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'value" (Data.Vector.Vector EnumValueDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'value+           (\ x__ y__ -> x__ {_EnumDescriptorProto'value = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "options" EnumOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'options+           (\ x__ y__ -> x__ {_EnumDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "maybe'options" (Prelude.Maybe EnumOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'options+           (\ x__ y__ -> x__ {_EnumDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "reservedRange" [EnumDescriptorProto'EnumReservedRange] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'reservedRange+           (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedRange = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'reservedRange" (Data.Vector.Vector EnumDescriptorProto'EnumReservedRange) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'reservedRange+           (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedRange = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "reservedName" [Data.Text.Text] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'reservedName+           (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedName = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'reservedName" (Data.Vector.Vector Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'reservedName+           (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedName = y__}))+        Prelude.id+instance Data.ProtoLens.Message EnumDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.EnumDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\DC3EnumDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2?\n\+      \\ENQvalue\CAN\STX \ETX(\v2).google.protobuf.EnumValueDescriptorProtoR\ENQvalue\DC26\n\+      \\aoptions\CAN\ETX \SOH(\v2\FS.google.protobuf.EnumOptionsR\aoptions\DC2]\n\+      \\SOreserved_range\CAN\EOT \ETX(\v26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\DC2#\n\+      \\rreserved_name\CAN\ENQ \ETX(\tR\freservedName\SUB;\n\+      \\DC1EnumReservedRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto+        value__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "value"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumValueDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"value")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto+        reservedRange__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "reserved_range"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto'EnumReservedRange)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"reservedRange")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto+        reservedName__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "reserved_name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"reservedName")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, value__field_descriptor),+           (Data.ProtoLens.Tag 3, options__field_descriptor),+           (Data.ProtoLens.Tag 4, reservedRange__field_descriptor),+           (Data.ProtoLens.Tag 5, reservedName__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _EnumDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_EnumDescriptorProto'_unknownFields = y__})+  defMessage+    = EnumDescriptorProto'_constructor+        {_EnumDescriptorProto'name = Prelude.Nothing,+         _EnumDescriptorProto'value = Data.Vector.Generic.empty,+         _EnumDescriptorProto'options = Prelude.Nothing,+         _EnumDescriptorProto'reservedRange = Data.Vector.Generic.empty,+         _EnumDescriptorProto'reservedName = Data.Vector.Generic.empty,+         _EnumDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          EnumDescriptorProto+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto'EnumReservedRange+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumValueDescriptorProto+                   -> Data.ProtoLens.Encoding.Bytes.Parser EnumDescriptorProto+        loop x mutable'reservedName mutable'reservedRange mutable'value+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                  mutable'reservedName)+                      frozen'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                   mutable'reservedRange)+                      frozen'value <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'value)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'reservedName")+                              frozen'reservedName+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'reservedRange")+                                 frozen'reservedRange+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'value") frozen'value x))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                                  mutable'reservedName+                                  mutable'reservedRange+                                  mutable'value+                        18+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "value"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'value y)+                                loop x mutable'reservedName mutable'reservedRange v+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                                  mutable'reservedName+                                  mutable'reservedRange+                                  mutable'value+                        34+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "reserved_range"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'reservedRange y)+                                loop x mutable'reservedName v mutable'value+                        42+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getText+                                              (Prelude.fromIntegral len))+                                        "reserved_name"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'reservedName y)+                                loop x v mutable'reservedRange mutable'value+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'reservedName+                                  mutable'reservedRange+                                  mutable'value+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        Data.ProtoLens.Encoding.Growing.new+              mutable'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                         Data.ProtoLens.Encoding.Growing.new+              mutable'value <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                 Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'reservedName+                mutable'reservedRange+                mutable'value)+          "EnumDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                   (\ _v+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                           ((Prelude..)+                              (\ bs+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                              Data.ProtoLens.encodeMessage+                              _v))+                   (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'value") _x))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   ((Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                         (\ _v+                            -> (Data.Monoid.<>)+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                 ((Prelude..)+                                    (\ bs+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                    Data.ProtoLens.encodeMessage+                                    _v))+                         (Lens.Family2.view+                            (Data.ProtoLens.Field.field @"vec'reservedRange") _x))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.Text.Encoding.encodeUtf8+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'reservedName") _x))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData EnumDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_EnumDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_EnumDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_EnumDescriptorProto'value x__)+                   (Control.DeepSeq.deepseq+                      (_EnumDescriptorProto'options x__)+                      (Control.DeepSeq.deepseq+                         (_EnumDescriptorProto'reservedRange x__)+                         (Control.DeepSeq.deepseq+                            (_EnumDescriptorProto'reservedName x__) ())))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' EnumDescriptorProto'EnumReservedRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' EnumDescriptorProto'EnumReservedRange (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' EnumDescriptorProto'EnumReservedRange Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' EnumDescriptorProto'EnumReservedRange (Prelude.Maybe Data.Int.Int32)@ -}+data EnumDescriptorProto'EnumReservedRange+  = EnumDescriptorProto'EnumReservedRange'_constructor {_EnumDescriptorProto'EnumReservedRange'start :: !(Prelude.Maybe Data.Int.Int32),+                                                        _EnumDescriptorProto'EnumReservedRange'end :: !(Prelude.Maybe Data.Int.Int32),+                                                        _EnumDescriptorProto'EnumReservedRange'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumDescriptorProto'EnumReservedRange where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "start" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'EnumReservedRange'start+           (\ x__ y__+              -> x__ {_EnumDescriptorProto'EnumReservedRange'start = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'EnumReservedRange'start+           (\ x__ y__+              -> x__ {_EnumDescriptorProto'EnumReservedRange'start = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "end" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'EnumReservedRange'end+           (\ x__ y__+              -> x__ {_EnumDescriptorProto'EnumReservedRange'end = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumDescriptorProto'EnumReservedRange'end+           (\ x__ y__+              -> x__ {_EnumDescriptorProto'EnumReservedRange'end = y__}))+        Prelude.id+instance Data.ProtoLens.Message EnumDescriptorProto'EnumReservedRange where+  messageName _+    = Data.Text.pack+        "google.protobuf.EnumDescriptorProto.EnumReservedRange"+  packedMessageDescriptor _+    = "\n\+      \\DC1EnumReservedRange\DC2\DC4\n\+      \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+      \\ETXend\CAN\STX \SOH(\ENQR\ETXend"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        start__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "start"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'start")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto'EnumReservedRange+        end__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "end"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'end")) ::+              Data.ProtoLens.FieldDescriptor EnumDescriptorProto'EnumReservedRange+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, start__field_descriptor),+           (Data.ProtoLens.Tag 2, end__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _EnumDescriptorProto'EnumReservedRange'_unknownFields+        (\ x__ y__+           -> x__+                {_EnumDescriptorProto'EnumReservedRange'_unknownFields = y__})+  defMessage+    = EnumDescriptorProto'EnumReservedRange'_constructor+        {_EnumDescriptorProto'EnumReservedRange'start = Prelude.Nothing,+         _EnumDescriptorProto'EnumReservedRange'end = Prelude.Nothing,+         _EnumDescriptorProto'EnumReservedRange'_unknownFields = []}+  parseMessage+    = let+        loop ::+          EnumDescriptorProto'EnumReservedRange+          -> Data.ProtoLens.Encoding.Bytes.Parser EnumDescriptorProto'EnumReservedRange+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "start"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "end"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "EnumReservedRange"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData EnumDescriptorProto'EnumReservedRange where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_EnumDescriptorProto'EnumReservedRange'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_EnumDescriptorProto'EnumReservedRange'start x__)+                (Control.DeepSeq.deepseq+                   (_EnumDescriptorProto'EnumReservedRange'end x__) ()))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.allowAlias' @:: Lens' EnumOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'allowAlias' @:: Lens' EnumOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' EnumOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' EnumOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecatedLegacyJsonFieldConflicts' @:: Lens' EnumOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecatedLegacyJsonFieldConflicts' @:: Lens' EnumOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' EnumOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' EnumOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' EnumOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' EnumOptions (Data.Vector.Vector UninterpretedOption)@ -}+data EnumOptions+  = EnumOptions'_constructor {_EnumOptions'allowAlias :: !(Prelude.Maybe Prelude.Bool),+                              _EnumOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                              _EnumOptions'deprecatedLegacyJsonFieldConflicts :: !(Prelude.Maybe Prelude.Bool),+                              _EnumOptions'features :: !(Prelude.Maybe FeatureSet),+                              _EnumOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                              _EnumOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumOptions "allowAlias" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'allowAlias+           (\ x__ y__ -> x__ {_EnumOptions'allowAlias = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'allowAlias" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'allowAlias+           (\ x__ y__ -> x__ {_EnumOptions'allowAlias = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'deprecated+           (\ x__ y__ -> x__ {_EnumOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'deprecated+           (\ x__ y__ -> x__ {_EnumOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "deprecatedLegacyJsonFieldConflicts" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'deprecatedLegacyJsonFieldConflicts+           (\ x__ y__+              -> x__ {_EnumOptions'deprecatedLegacyJsonFieldConflicts = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'deprecatedLegacyJsonFieldConflicts" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'deprecatedLegacyJsonFieldConflicts+           (\ x__ y__+              -> x__ {_EnumOptions'deprecatedLegacyJsonFieldConflicts = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'features+           (\ x__ y__ -> x__ {_EnumOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'features+           (\ x__ y__ -> x__ {_EnumOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_EnumOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_EnumOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message EnumOptions where+  messageName _ = Data.Text.pack "google.protobuf.EnumOptions"+  packedMessageDescriptor _+    = "\n\+      \\vEnumOptions\DC2\US\n\+      \\vallow_alias\CAN\STX \SOH(\bR\n\+      \allowAlias\DC2%\n\+      \\n\+      \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2V\n\+      \&deprecated_legacy_json_field_conflicts\CAN\ACK \SOH(\bR\"deprecatedLegacyJsonFieldConflictsB\STX\CAN\SOH\DC27\n\+      \\bfeatures\CAN\a \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\ENQ\DLE\ACK"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        allowAlias__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "allow_alias"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'allowAlias")) ::+              Data.ProtoLens.FieldDescriptor EnumOptions+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor EnumOptions+        deprecatedLegacyJsonFieldConflicts__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated_legacy_json_field_conflicts"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field+                    @"maybe'deprecatedLegacyJsonFieldConflicts")) ::+              Data.ProtoLens.FieldDescriptor EnumOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor EnumOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor EnumOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 2, allowAlias__field_descriptor),+           (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 6, +            deprecatedLegacyJsonFieldConflicts__field_descriptor),+           (Data.ProtoLens.Tag 7, features__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _EnumOptions'_unknownFields+        (\ x__ y__ -> x__ {_EnumOptions'_unknownFields = y__})+  defMessage+    = EnumOptions'_constructor+        {_EnumOptions'allowAlias = Prelude.Nothing,+         _EnumOptions'deprecated = Prelude.Nothing,+         _EnumOptions'deprecatedLegacyJsonFieldConflicts = Prelude.Nothing,+         _EnumOptions'features = Prelude.Nothing,+         _EnumOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _EnumOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          EnumOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser EnumOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "allow_alias"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"allowAlias") y x)+                                  mutable'uninterpretedOption+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated_legacy_json_field_conflicts"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field+                                        @"deprecatedLegacyJsonFieldConflicts")+                                     y+                                     x)+                                  mutable'uninterpretedOption+                        58+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "EnumOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'allowAlias") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt+                          (\ b -> if b then 1 else 0)+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'deprecated") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt+                             (\ b -> if b then 1 else 0)+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field+                             @"maybe'deprecatedLegacyJsonFieldConflicts")+                          _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt+                                (\ b -> if b then 1 else 0)+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.ProtoLens.encodeMessage+                                   _v))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.ProtoLens.encodeMessage+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData EnumOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_EnumOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_EnumOptions'allowAlias x__)+                (Control.DeepSeq.deepseq+                   (_EnumOptions'deprecated x__)+                   (Control.DeepSeq.deepseq+                      (_EnumOptions'deprecatedLegacyJsonFieldConflicts x__)+                      (Control.DeepSeq.deepseq+                         (_EnumOptions'features x__)+                         (Control.DeepSeq.deepseq+                            (_EnumOptions'uninterpretedOption x__) ())))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' EnumValueDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.number' @:: Lens' EnumValueDescriptorProto Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'number' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' EnumValueDescriptorProto EnumValueOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe EnumValueOptions)@ -}+data EnumValueDescriptorProto+  = EnumValueDescriptorProto'_constructor {_EnumValueDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                           _EnumValueDescriptorProto'number :: !(Prelude.Maybe Data.Int.Int32),+                                           _EnumValueDescriptorProto'options :: !(Prelude.Maybe EnumValueOptions),+                                           _EnumValueDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumValueDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'name+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'name+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "number" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'number+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'number = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'number" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'number+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'number = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "options" EnumValueOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'options+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'options" (Prelude.Maybe EnumValueOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueDescriptorProto'options+           (\ x__ y__ -> x__ {_EnumValueDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Message EnumValueDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.EnumValueDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\CANEnumValueDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\SYN\n\+      \\ACKnumber\CAN\STX \SOH(\ENQR\ACKnumber\DC2;\n\+      \\aoptions\CAN\ETX \SOH(\v2!.google.protobuf.EnumValueOptionsR\aoptions"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+        number__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "number"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'number")) ::+              Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumValueOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, number__field_descriptor),+           (Data.ProtoLens.Tag 3, options__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _EnumValueDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_EnumValueDescriptorProto'_unknownFields = y__})+  defMessage+    = EnumValueDescriptorProto'_constructor+        {_EnumValueDescriptorProto'name = Prelude.Nothing,+         _EnumValueDescriptorProto'number = Prelude.Nothing,+         _EnumValueDescriptorProto'options = Prelude.Nothing,+         _EnumValueDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          EnumValueDescriptorProto+          -> Data.ProtoLens.Encoding.Bytes.Parser EnumValueDescriptorProto+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "number"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"number") y x)+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "EnumValueDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'number") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData EnumValueDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_EnumValueDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_EnumValueDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_EnumValueDescriptorProto'number x__)+                   (Control.DeepSeq.deepseq+                      (_EnumValueDescriptorProto'options x__) ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' EnumValueOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' EnumValueOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' EnumValueOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' EnumValueOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.debugRedact' @:: Lens' EnumValueOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'debugRedact' @:: Lens' EnumValueOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.featureSupport' @:: Lens' EnumValueOptions FieldOptions'FeatureSupport@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'featureSupport' @:: Lens' EnumValueOptions (Prelude.Maybe FieldOptions'FeatureSupport)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' EnumValueOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' EnumValueOptions (Data.Vector.Vector UninterpretedOption)@ -}+data EnumValueOptions+  = EnumValueOptions'_constructor {_EnumValueOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                                   _EnumValueOptions'features :: !(Prelude.Maybe FeatureSet),+                                   _EnumValueOptions'debugRedact :: !(Prelude.Maybe Prelude.Bool),+                                   _EnumValueOptions'featureSupport :: !(Prelude.Maybe FieldOptions'FeatureSupport),+                                   _EnumValueOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                                   _EnumValueOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumValueOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumValueOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'deprecated+           (\ x__ y__ -> x__ {_EnumValueOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField EnumValueOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'deprecated+           (\ x__ y__ -> x__ {_EnumValueOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'features+           (\ x__ y__ -> x__ {_EnumValueOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumValueOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'features+           (\ x__ y__ -> x__ {_EnumValueOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueOptions "debugRedact" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'debugRedact+           (\ x__ y__ -> x__ {_EnumValueOptions'debugRedact = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField EnumValueOptions "maybe'debugRedact" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'debugRedact+           (\ x__ y__ -> x__ {_EnumValueOptions'debugRedact = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueOptions "featureSupport" FieldOptions'FeatureSupport where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'featureSupport+           (\ x__ y__ -> x__ {_EnumValueOptions'featureSupport = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumValueOptions "maybe'featureSupport" (Prelude.Maybe FieldOptions'FeatureSupport) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'featureSupport+           (\ x__ y__ -> x__ {_EnumValueOptions'featureSupport = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_EnumValueOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumValueOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _EnumValueOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_EnumValueOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message EnumValueOptions where+  messageName _ = Data.Text.pack "google.protobuf.EnumValueOptions"+  packedMessageDescriptor _+    = "\n\+      \\DLEEnumValueOptions\DC2%\n\+      \\n\+      \deprecated\CAN\SOH \SOH(\b:\ENQfalseR\n\+      \deprecated\DC27\n\+      \\bfeatures\CAN\STX \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2(\n\+      \\fdebug_redact\CAN\ETX \SOH(\b:\ENQfalseR\vdebugRedact\DC2U\n\+      \\SIfeature_support\CAN\EOT \SOH(\v2,.google.protobuf.FieldOptions.FeatureSupportR\SOfeatureSupport\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor EnumValueOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor EnumValueOptions+        debugRedact__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "debug_redact"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'debugRedact")) ::+              Data.ProtoLens.FieldDescriptor EnumValueOptions+        featureSupport__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "feature_support"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'FeatureSupport)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'featureSupport")) ::+              Data.ProtoLens.FieldDescriptor EnumValueOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor EnumValueOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 2, features__field_descriptor),+           (Data.ProtoLens.Tag 3, debugRedact__field_descriptor),+           (Data.ProtoLens.Tag 4, featureSupport__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _EnumValueOptions'_unknownFields+        (\ x__ y__ -> x__ {_EnumValueOptions'_unknownFields = y__})+  defMessage+    = EnumValueOptions'_constructor+        {_EnumValueOptions'deprecated = Prelude.Nothing,+         _EnumValueOptions'features = Prelude.Nothing,+         _EnumValueOptions'debugRedact = Prelude.Nothing,+         _EnumValueOptions'featureSupport = Prelude.Nothing,+         _EnumValueOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _EnumValueOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          EnumValueOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser EnumValueOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "debug_redact"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"debugRedact") y x)+                                  mutable'uninterpretedOption+                        34+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "feature_support"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"featureSupport") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "EnumValueOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'deprecated") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt+                          (\ b -> if b then 1 else 0)+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.ProtoLens.encodeMessage+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'debugRedact") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt+                                (\ b -> if b then 1 else 0)+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'featureSupport") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.ProtoLens.encodeMessage+                                   _v))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.ProtoLens.encodeMessage+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData EnumValueOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_EnumValueOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_EnumValueOptions'deprecated x__)+                (Control.DeepSeq.deepseq+                   (_EnumValueOptions'features x__)+                   (Control.DeepSeq.deepseq+                      (_EnumValueOptions'debugRedact x__)+                      (Control.DeepSeq.deepseq+                         (_EnumValueOptions'featureSupport x__)+                         (Control.DeepSeq.deepseq+                            (_EnumValueOptions'uninterpretedOption x__) ())))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' ExtensionRangeOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' ExtensionRangeOptions (Data.Vector.Vector UninterpretedOption)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.declaration' @:: Lens' ExtensionRangeOptions [ExtensionRangeOptions'Declaration]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'declaration' @:: Lens' ExtensionRangeOptions (Data.Vector.Vector ExtensionRangeOptions'Declaration)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' ExtensionRangeOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' ExtensionRangeOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.verification' @:: Lens' ExtensionRangeOptions ExtensionRangeOptions'VerificationState@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'verification' @:: Lens' ExtensionRangeOptions (Prelude.Maybe ExtensionRangeOptions'VerificationState)@ -}+data ExtensionRangeOptions+  = ExtensionRangeOptions'_constructor {_ExtensionRangeOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                                        _ExtensionRangeOptions'declaration :: !(Data.Vector.Vector ExtensionRangeOptions'Declaration),+                                        _ExtensionRangeOptions'features :: !(Prelude.Maybe FeatureSet),+                                        _ExtensionRangeOptions'verification :: !(Prelude.Maybe ExtensionRangeOptions'VerificationState),+                                        _ExtensionRangeOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ExtensionRangeOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'uninterpretedOption+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'uninterpretedOption+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "declaration" [ExtensionRangeOptions'Declaration] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'declaration+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'declaration = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "vec'declaration" (Data.Vector.Vector ExtensionRangeOptions'Declaration) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'declaration+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'declaration = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'features+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'features+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "verification" ExtensionRangeOptions'VerificationState where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'verification+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'verification = y__}))+        (Data.ProtoLens.maybeLens ExtensionRangeOptions'UNVERIFIED)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "maybe'verification" (Prelude.Maybe ExtensionRangeOptions'VerificationState) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'verification+           (\ x__ y__ -> x__ {_ExtensionRangeOptions'verification = y__}))+        Prelude.id+instance Data.ProtoLens.Message ExtensionRangeOptions where+  messageName _+    = Data.Text.pack "google.protobuf.ExtensionRangeOptions"+  packedMessageDescriptor _+    = "\n\+      \\NAKExtensionRangeOptions\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\DC2Y\n\+      \\vdeclaration\CAN\STX \ETX(\v22.google.protobuf.ExtensionRangeOptions.DeclarationR\vdeclarationB\ETX\136\SOH\STX\DC27\n\+      \\bfeatures\CAN2 \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2m\n\+      \\fverification\CAN\ETX \SOH(\SO28.google.protobuf.ExtensionRangeOptions.VerificationState:\n\+      \UNVERIFIEDR\fverificationB\ETX\136\SOH\STX\SUB\148\SOH\n\+      \\vDeclaration\DC2\SYN\n\+      \\ACKnumber\CAN\SOH \SOH(\ENQR\ACKnumber\DC2\ESC\n\+      \\tfull_name\CAN\STX \SOH(\tR\bfullName\DC2\DC2\n\+      \\EOTtype\CAN\ETX \SOH(\tR\EOTtype\DC2\SUB\n\+      \\breserved\CAN\ENQ \SOH(\bR\breserved\DC2\SUB\n\+      \\brepeated\CAN\ACK \SOH(\bR\brepeatedJ\EOT\b\EOT\DLE\ENQ\"4\n\+      \\DC1VerificationState\DC2\SI\n\+      \\vDECLARATION\DLE\NUL\DC2\SO\n\+      \\n\+      \UNVERIFIED\DLE\SOH*\t\b\232\a\DLE\128\128\128\128\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions+        declaration__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "declaration"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor ExtensionRangeOptions'Declaration)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"declaration")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions+        verification__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "verification"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor ExtensionRangeOptions'VerificationState)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'verification")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor),+           (Data.ProtoLens.Tag 2, declaration__field_descriptor),+           (Data.ProtoLens.Tag 50, features__field_descriptor),+           (Data.ProtoLens.Tag 3, verification__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _ExtensionRangeOptions'_unknownFields+        (\ x__ y__ -> x__ {_ExtensionRangeOptions'_unknownFields = y__})+  defMessage+    = ExtensionRangeOptions'_constructor+        {_ExtensionRangeOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _ExtensionRangeOptions'declaration = Data.Vector.Generic.empty,+         _ExtensionRangeOptions'features = Prelude.Nothing,+         _ExtensionRangeOptions'verification = Prelude.Nothing,+         _ExtensionRangeOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          ExtensionRangeOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ExtensionRangeOptions'Declaration+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+                -> Data.ProtoLens.Encoding.Bytes.Parser ExtensionRangeOptions+        loop x mutable'declaration mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'declaration <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                 mutable'declaration)+                      frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'declaration")+                              frozen'declaration+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                                 frozen'uninterpretedOption+                                 x)))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x mutable'declaration v+                        18+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "declaration"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'declaration y)+                                loop x v mutable'uninterpretedOption+                        402+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'declaration+                                  mutable'uninterpretedOption+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "verification"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"verification") y x)+                                  mutable'declaration+                                  mutable'uninterpretedOption+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'declaration+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'declaration <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       Data.ProtoLens.Encoding.Growing.new+              mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'declaration+                mutable'uninterpretedOption)+          "ExtensionRangeOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view+                   (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                   (\ _v+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                           ((Prelude..)+                              (\ bs+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                              Data.ProtoLens.encodeMessage+                              _v))+                   (Lens.Family2.view+                      (Data.ProtoLens.Field.field @"vec'declaration") _x))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 402)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'verification") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                                ((Prelude..)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                   Prelude.fromEnum+                                   _v))+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData ExtensionRangeOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_ExtensionRangeOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_ExtensionRangeOptions'uninterpretedOption x__)+                (Control.DeepSeq.deepseq+                   (_ExtensionRangeOptions'declaration x__)+                   (Control.DeepSeq.deepseq+                      (_ExtensionRangeOptions'features x__)+                      (Control.DeepSeq.deepseq+                         (_ExtensionRangeOptions'verification x__) ()))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.number' @:: Lens' ExtensionRangeOptions'Declaration Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'number' @:: Lens' ExtensionRangeOptions'Declaration (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.fullName' @:: Lens' ExtensionRangeOptions'Declaration Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'fullName' @:: Lens' ExtensionRangeOptions'Declaration (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.type'' @:: Lens' ExtensionRangeOptions'Declaration Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'type'' @:: Lens' ExtensionRangeOptions'Declaration (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.reserved' @:: Lens' ExtensionRangeOptions'Declaration Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'reserved' @:: Lens' ExtensionRangeOptions'Declaration (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.repeated' @:: Lens' ExtensionRangeOptions'Declaration Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'repeated' @:: Lens' ExtensionRangeOptions'Declaration (Prelude.Maybe Prelude.Bool)@ -}+data ExtensionRangeOptions'Declaration+  = ExtensionRangeOptions'Declaration'_constructor {_ExtensionRangeOptions'Declaration'number :: !(Prelude.Maybe Data.Int.Int32),+                                                    _ExtensionRangeOptions'Declaration'fullName :: !(Prelude.Maybe Data.Text.Text),+                                                    _ExtensionRangeOptions'Declaration'type' :: !(Prelude.Maybe Data.Text.Text),+                                                    _ExtensionRangeOptions'Declaration'reserved :: !(Prelude.Maybe Prelude.Bool),+                                                    _ExtensionRangeOptions'Declaration'repeated :: !(Prelude.Maybe Prelude.Bool),+                                                    _ExtensionRangeOptions'Declaration'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ExtensionRangeOptions'Declaration where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "number" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'number+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'number = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "maybe'number" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'number+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'number = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "fullName" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'fullName+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'fullName = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "maybe'fullName" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'fullName+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'fullName = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "type'" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'type'+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'type' = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "maybe'type'" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'type'+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'type' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "reserved" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'reserved+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'reserved = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "maybe'reserved" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'reserved+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'reserved = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "repeated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'repeated+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'repeated = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions'Declaration "maybe'repeated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ExtensionRangeOptions'Declaration'repeated+           (\ x__ y__+              -> x__ {_ExtensionRangeOptions'Declaration'repeated = y__}))+        Prelude.id+instance Data.ProtoLens.Message ExtensionRangeOptions'Declaration where+  messageName _+    = Data.Text.pack+        "google.protobuf.ExtensionRangeOptions.Declaration"+  packedMessageDescriptor _+    = "\n\+      \\vDeclaration\DC2\SYN\n\+      \\ACKnumber\CAN\SOH \SOH(\ENQR\ACKnumber\DC2\ESC\n\+      \\tfull_name\CAN\STX \SOH(\tR\bfullName\DC2\DC2\n\+      \\EOTtype\CAN\ETX \SOH(\tR\EOTtype\DC2\SUB\n\+      \\breserved\CAN\ENQ \SOH(\bR\breserved\DC2\SUB\n\+      \\brepeated\CAN\ACK \SOH(\bR\brepeatedJ\EOT\b\EOT\DLE\ENQ"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        number__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "number"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'number")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions'Declaration+        fullName__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "full_name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'fullName")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions'Declaration+        type'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'type'")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions'Declaration+        reserved__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "reserved"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'reserved")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions'Declaration+        repeated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "repeated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'repeated")) ::+              Data.ProtoLens.FieldDescriptor ExtensionRangeOptions'Declaration+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, number__field_descriptor),+           (Data.ProtoLens.Tag 2, fullName__field_descriptor),+           (Data.ProtoLens.Tag 3, type'__field_descriptor),+           (Data.ProtoLens.Tag 5, reserved__field_descriptor),+           (Data.ProtoLens.Tag 6, repeated__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _ExtensionRangeOptions'Declaration'_unknownFields+        (\ x__ y__+           -> x__ {_ExtensionRangeOptions'Declaration'_unknownFields = y__})+  defMessage+    = ExtensionRangeOptions'Declaration'_constructor+        {_ExtensionRangeOptions'Declaration'number = Prelude.Nothing,+         _ExtensionRangeOptions'Declaration'fullName = Prelude.Nothing,+         _ExtensionRangeOptions'Declaration'type' = Prelude.Nothing,+         _ExtensionRangeOptions'Declaration'reserved = Prelude.Nothing,+         _ExtensionRangeOptions'Declaration'repeated = Prelude.Nothing,+         _ExtensionRangeOptions'Declaration'_unknownFields = []}+  parseMessage+    = let+        loop ::+          ExtensionRangeOptions'Declaration+          -> Data.ProtoLens.Encoding.Bytes.Parser ExtensionRangeOptions'Declaration+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "number"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"number") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "full_name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"fullName") y x)+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "type"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") y x)+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "reserved"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"reserved") y x)+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "repeated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"repeated") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "Declaration"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'number") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'fullName") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'type'") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.Text.Encoding.encodeUtf8+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'reserved") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt+                                   (\ b -> if b then 1 else 0)+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'repeated") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (\ b -> if b then 1 else 0)+                                      _v))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData ExtensionRangeOptions'Declaration where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_ExtensionRangeOptions'Declaration'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_ExtensionRangeOptions'Declaration'number x__)+                (Control.DeepSeq.deepseq+                   (_ExtensionRangeOptions'Declaration'fullName x__)+                   (Control.DeepSeq.deepseq+                      (_ExtensionRangeOptions'Declaration'type' x__)+                      (Control.DeepSeq.deepseq+                         (_ExtensionRangeOptions'Declaration'reserved x__)+                         (Control.DeepSeq.deepseq+                            (_ExtensionRangeOptions'Declaration'repeated x__) ())))))+data ExtensionRangeOptions'VerificationState+  = ExtensionRangeOptions'DECLARATION |+    ExtensionRangeOptions'UNVERIFIED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum ExtensionRangeOptions'VerificationState where+  maybeToEnum 0 = Prelude.Just ExtensionRangeOptions'DECLARATION+  maybeToEnum 1 = Prelude.Just ExtensionRangeOptions'UNVERIFIED+  maybeToEnum _ = Prelude.Nothing+  showEnum ExtensionRangeOptions'DECLARATION = "DECLARATION"+  showEnum ExtensionRangeOptions'UNVERIFIED = "UNVERIFIED"+  readEnum k+    | (Prelude.==) k "DECLARATION"+    = Prelude.Just ExtensionRangeOptions'DECLARATION+    | (Prelude.==) k "UNVERIFIED"+    = Prelude.Just ExtensionRangeOptions'UNVERIFIED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded ExtensionRangeOptions'VerificationState where+  minBound = ExtensionRangeOptions'DECLARATION+  maxBound = ExtensionRangeOptions'UNVERIFIED+instance Prelude.Enum ExtensionRangeOptions'VerificationState where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum VerificationState: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum ExtensionRangeOptions'DECLARATION = 0+  fromEnum ExtensionRangeOptions'UNVERIFIED = 1+  succ ExtensionRangeOptions'UNVERIFIED+    = Prelude.error+        "ExtensionRangeOptions'VerificationState.succ: bad argument ExtensionRangeOptions'UNVERIFIED. This value would be out of bounds."+  succ ExtensionRangeOptions'DECLARATION+    = ExtensionRangeOptions'UNVERIFIED+  pred ExtensionRangeOptions'DECLARATION+    = Prelude.error+        "ExtensionRangeOptions'VerificationState.pred: bad argument ExtensionRangeOptions'DECLARATION. This value would be out of bounds."+  pred ExtensionRangeOptions'UNVERIFIED+    = ExtensionRangeOptions'DECLARATION+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault ExtensionRangeOptions'VerificationState where+  fieldDefault = ExtensionRangeOptions'DECLARATION+instance Control.DeepSeq.NFData ExtensionRangeOptions'VerificationState where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.fieldPresence' @:: Lens' FeatureSet FeatureSet'FieldPresence@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'fieldPresence' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'FieldPresence)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.enumType' @:: Lens' FeatureSet FeatureSet'EnumType@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'enumType' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'EnumType)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.repeatedFieldEncoding' @:: Lens' FeatureSet FeatureSet'RepeatedFieldEncoding@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'repeatedFieldEncoding' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'RepeatedFieldEncoding)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.utf8Validation' @:: Lens' FeatureSet FeatureSet'Utf8Validation@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'utf8Validation' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'Utf8Validation)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.messageEncoding' @:: Lens' FeatureSet FeatureSet'MessageEncoding@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'messageEncoding' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'MessageEncoding)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.jsonFormat' @:: Lens' FeatureSet FeatureSet'JsonFormat@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'jsonFormat' @:: Lens' FeatureSet (Prelude.Maybe FeatureSet'JsonFormat)@ -}+data FeatureSet+  = FeatureSet'_constructor {_FeatureSet'fieldPresence :: !(Prelude.Maybe FeatureSet'FieldPresence),+                             _FeatureSet'enumType :: !(Prelude.Maybe FeatureSet'EnumType),+                             _FeatureSet'repeatedFieldEncoding :: !(Prelude.Maybe FeatureSet'RepeatedFieldEncoding),+                             _FeatureSet'utf8Validation :: !(Prelude.Maybe FeatureSet'Utf8Validation),+                             _FeatureSet'messageEncoding :: !(Prelude.Maybe FeatureSet'MessageEncoding),+                             _FeatureSet'jsonFormat :: !(Prelude.Maybe FeatureSet'JsonFormat),+                             _FeatureSet'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FeatureSet where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FeatureSet "fieldPresence" FeatureSet'FieldPresence where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'fieldPresence+           (\ x__ y__ -> x__ {_FeatureSet'fieldPresence = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'fieldPresence" (Prelude.Maybe FeatureSet'FieldPresence) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'fieldPresence+           (\ x__ y__ -> x__ {_FeatureSet'fieldPresence = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSet "enumType" FeatureSet'EnumType where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'enumType+           (\ x__ y__ -> x__ {_FeatureSet'enumType = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'enumType" (Prelude.Maybe FeatureSet'EnumType) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'enumType+           (\ x__ y__ -> x__ {_FeatureSet'enumType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSet "repeatedFieldEncoding" FeatureSet'RepeatedFieldEncoding where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'repeatedFieldEncoding+           (\ x__ y__ -> x__ {_FeatureSet'repeatedFieldEncoding = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'repeatedFieldEncoding" (Prelude.Maybe FeatureSet'RepeatedFieldEncoding) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'repeatedFieldEncoding+           (\ x__ y__ -> x__ {_FeatureSet'repeatedFieldEncoding = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSet "utf8Validation" FeatureSet'Utf8Validation where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'utf8Validation+           (\ x__ y__ -> x__ {_FeatureSet'utf8Validation = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'utf8Validation" (Prelude.Maybe FeatureSet'Utf8Validation) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'utf8Validation+           (\ x__ y__ -> x__ {_FeatureSet'utf8Validation = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSet "messageEncoding" FeatureSet'MessageEncoding where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'messageEncoding+           (\ x__ y__ -> x__ {_FeatureSet'messageEncoding = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'messageEncoding" (Prelude.Maybe FeatureSet'MessageEncoding) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'messageEncoding+           (\ x__ y__ -> x__ {_FeatureSet'messageEncoding = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSet "jsonFormat" FeatureSet'JsonFormat where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'jsonFormat+           (\ x__ y__ -> x__ {_FeatureSet'jsonFormat = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSet "maybe'jsonFormat" (Prelude.Maybe FeatureSet'JsonFormat) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSet'jsonFormat+           (\ x__ y__ -> x__ {_FeatureSet'jsonFormat = y__}))+        Prelude.id+instance Data.ProtoLens.Message FeatureSet where+  messageName _ = Data.Text.pack "google.protobuf.FeatureSet"+  packedMessageDescriptor _+    = "\n\+      \\n\+      \FeatureSet\DC2\145\SOH\n\+      \\SOfield_presence\CAN\SOH \SOH(\SO2).google.protobuf.FeatureSet.FieldPresenceR\rfieldPresenceB?\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\r\DC2\bEXPLICIT\CAN\132\a\162\SOH\r\DC2\bIMPLICIT\CAN\231\a\162\SOH\r\DC2\bEXPLICIT\CAN\232\a\178\SOH\ETX\b\232\a\DC2l\n\+      \\tenum_type\CAN\STX \SOH(\SO2$.google.protobuf.FeatureSet.EnumTypeR\benumTypeB)\136\SOH\SOH\152\SOH\ACK\152\SOH\SOH\162\SOH\v\DC2\ACKCLOSED\CAN\132\a\162\SOH\t\DC2\EOTOPEN\CAN\231\a\178\SOH\ETX\b\232\a\DC2\152\SOH\n\+      \\ETBrepeated_field_encoding\CAN\ETX \SOH(\SO21.google.protobuf.FeatureSet.RepeatedFieldEncodingR\NAKrepeatedFieldEncodingB-\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\r\DC2\bEXPANDED\CAN\132\a\162\SOH\v\DC2\ACKPACKED\CAN\231\a\178\SOH\ETX\b\232\a\DC2~\n\+      \\SIutf8_validation\CAN\EOT \SOH(\SO2*.google.protobuf.FeatureSet.Utf8ValidationR\SOutf8ValidationB)\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\t\DC2\EOTNONE\CAN\132\a\162\SOH\v\DC2\ACKVERIFY\CAN\231\a\178\SOH\ETX\b\232\a\DC2~\n\+      \\DLEmessage_encoding\CAN\ENQ \SOH(\SO2+.google.protobuf.FeatureSet.MessageEncodingR\SImessageEncodingB&\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\DC4\DC2\SILENGTH_PREFIXED\CAN\132\a\178\SOH\ETX\b\232\a\DC2\130\SOH\n\+      \\vjson_format\CAN\ACK \SOH(\SO2&.google.protobuf.FeatureSet.JsonFormatR\n\+      \jsonFormatB9\136\SOH\SOH\152\SOH\ETX\152\SOH\ACK\152\SOH\SOH\162\SOH\ETB\DC2\DC2LEGACY_BEST_EFFORT\CAN\132\a\162\SOH\n\+      \\DC2\ENQALLOW\CAN\231\a\178\SOH\ETX\b\232\a\"\\\n\+      \\rFieldPresence\DC2\SUB\n\+      \\SYNFIELD_PRESENCE_UNKNOWN\DLE\NUL\DC2\f\n\+      \\bEXPLICIT\DLE\SOH\DC2\f\n\+      \\bIMPLICIT\DLE\STX\DC2\DC3\n\+      \\SILEGACY_REQUIRED\DLE\ETX\"7\n\+      \\bEnumType\DC2\NAK\n\+      \\DC1ENUM_TYPE_UNKNOWN\DLE\NUL\DC2\b\n\+      \\EOTOPEN\DLE\SOH\DC2\n\+      \\n\+      \\ACKCLOSED\DLE\STX\"V\n\+      \\NAKRepeatedFieldEncoding\DC2#\n\+      \\USREPEATED_FIELD_ENCODING_UNKNOWN\DLE\NUL\DC2\n\+      \\n\+      \\ACKPACKED\DLE\SOH\DC2\f\n\+      \\bEXPANDED\DLE\STX\"I\n\+      \\SOUtf8Validation\DC2\ESC\n\+      \\ETBUTF8_VALIDATION_UNKNOWN\DLE\NUL\DC2\n\+      \\n\+      \\ACKVERIFY\DLE\STX\DC2\b\n\+      \\EOTNONE\DLE\ETX\"\EOT\b\SOH\DLE\SOH\"S\n\+      \\SIMessageEncoding\DC2\FS\n\+      \\CANMESSAGE_ENCODING_UNKNOWN\DLE\NUL\DC2\DC3\n\+      \\SILENGTH_PREFIXED\DLE\SOH\DC2\r\n\+      \\tDELIMITED\DLE\STX\"H\n\+      \\n\+      \JsonFormat\DC2\ETB\n\+      \\DC3JSON_FORMAT_UNKNOWN\DLE\NUL\DC2\t\n\+      \\ENQALLOW\DLE\SOH\DC2\SYN\n\+      \\DC2LEGACY_BEST_EFFORT\DLE\STX*\ACK\b\232\a\DLE\139N*\ACK\b\139N\DLE\144N*\ACK\b\144N\DLE\145NJ\ACK\b\231\a\DLE\232\a"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        fieldPresence__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "field_presence"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'FieldPresence)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'fieldPresence")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+        enumType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "enum_type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'EnumType)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'enumType")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+        repeatedFieldEncoding__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "repeated_field_encoding"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'RepeatedFieldEncoding)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'repeatedFieldEncoding")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+        utf8Validation__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "utf8_validation"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'Utf8Validation)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'utf8Validation")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+        messageEncoding__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "message_encoding"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'MessageEncoding)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'messageEncoding")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+        jsonFormat__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "json_format"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet'JsonFormat)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'jsonFormat")) ::+              Data.ProtoLens.FieldDescriptor FeatureSet+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, fieldPresence__field_descriptor),+           (Data.ProtoLens.Tag 2, enumType__field_descriptor),+           (Data.ProtoLens.Tag 3, repeatedFieldEncoding__field_descriptor),+           (Data.ProtoLens.Tag 4, utf8Validation__field_descriptor),+           (Data.ProtoLens.Tag 5, messageEncoding__field_descriptor),+           (Data.ProtoLens.Tag 6, jsonFormat__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FeatureSet'_unknownFields+        (\ x__ y__ -> x__ {_FeatureSet'_unknownFields = y__})+  defMessage+    = FeatureSet'_constructor+        {_FeatureSet'fieldPresence = Prelude.Nothing,+         _FeatureSet'enumType = Prelude.Nothing,+         _FeatureSet'repeatedFieldEncoding = Prelude.Nothing,+         _FeatureSet'utf8Validation = Prelude.Nothing,+         _FeatureSet'messageEncoding = Prelude.Nothing,+         _FeatureSet'jsonFormat = Prelude.Nothing,+         _FeatureSet'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FeatureSet -> Data.ProtoLens.Encoding.Bytes.Parser FeatureSet+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "field_presence"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"fieldPresence") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "enum_type"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"enumType") y x)+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "repeated_field_encoding"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"repeatedFieldEncoding") y x)+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "utf8_validation"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"utf8Validation") y x)+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "message_encoding"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"messageEncoding") y x)+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "json_format"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"jsonFormat") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "FeatureSet"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'fieldPresence") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                          Prelude.fromEnum+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'enumType") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                             Prelude.fromEnum+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'repeatedFieldEncoding") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                Prelude.fromEnum+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'utf8Validation") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                                ((Prelude..)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                   Prelude.fromEnum+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'messageEncoding") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                   ((Prelude..)+                                      ((Prelude..)+                                         Data.ProtoLens.Encoding.Bytes.putVarInt+                                         Prelude.fromIntegral)+                                      Prelude.fromEnum+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view+                                   (Data.ProtoLens.Field.field @"maybe'jsonFormat") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+                                      ((Prelude..)+                                         ((Prelude..)+                                            Data.ProtoLens.Encoding.Bytes.putVarInt+                                            Prelude.fromIntegral)+                                         Prelude.fromEnum+                                         _v))+                            (Data.ProtoLens.Encoding.Wire.buildFieldSet+                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))+instance Control.DeepSeq.NFData FeatureSet where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FeatureSet'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FeatureSet'fieldPresence x__)+                (Control.DeepSeq.deepseq+                   (_FeatureSet'enumType x__)+                   (Control.DeepSeq.deepseq+                      (_FeatureSet'repeatedFieldEncoding x__)+                      (Control.DeepSeq.deepseq+                         (_FeatureSet'utf8Validation x__)+                         (Control.DeepSeq.deepseq+                            (_FeatureSet'messageEncoding x__)+                            (Control.DeepSeq.deepseq (_FeatureSet'jsonFormat x__) ()))))))+data FeatureSet'EnumType+  = FeatureSet'ENUM_TYPE_UNKNOWN |+    FeatureSet'OPEN |+    FeatureSet'CLOSED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'EnumType where+  maybeToEnum 0 = Prelude.Just FeatureSet'ENUM_TYPE_UNKNOWN+  maybeToEnum 1 = Prelude.Just FeatureSet'OPEN+  maybeToEnum 2 = Prelude.Just FeatureSet'CLOSED+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'ENUM_TYPE_UNKNOWN = "ENUM_TYPE_UNKNOWN"+  showEnum FeatureSet'OPEN = "OPEN"+  showEnum FeatureSet'CLOSED = "CLOSED"+  readEnum k+    | (Prelude.==) k "ENUM_TYPE_UNKNOWN"+    = Prelude.Just FeatureSet'ENUM_TYPE_UNKNOWN+    | (Prelude.==) k "OPEN" = Prelude.Just FeatureSet'OPEN+    | (Prelude.==) k "CLOSED" = Prelude.Just FeatureSet'CLOSED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'EnumType where+  minBound = FeatureSet'ENUM_TYPE_UNKNOWN+  maxBound = FeatureSet'CLOSED+instance Prelude.Enum FeatureSet'EnumType where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum EnumType: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'ENUM_TYPE_UNKNOWN = 0+  fromEnum FeatureSet'OPEN = 1+  fromEnum FeatureSet'CLOSED = 2+  succ FeatureSet'CLOSED+    = Prelude.error+        "FeatureSet'EnumType.succ: bad argument FeatureSet'CLOSED. This value would be out of bounds."+  succ FeatureSet'ENUM_TYPE_UNKNOWN = FeatureSet'OPEN+  succ FeatureSet'OPEN = FeatureSet'CLOSED+  pred FeatureSet'ENUM_TYPE_UNKNOWN+    = Prelude.error+        "FeatureSet'EnumType.pred: bad argument FeatureSet'ENUM_TYPE_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'OPEN = FeatureSet'ENUM_TYPE_UNKNOWN+  pred FeatureSet'CLOSED = FeatureSet'OPEN+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'EnumType where+  fieldDefault = FeatureSet'ENUM_TYPE_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'EnumType where+  rnf x__ = Prelude.seq x__ ()+data FeatureSet'FieldPresence+  = FeatureSet'FIELD_PRESENCE_UNKNOWN |+    FeatureSet'EXPLICIT |+    FeatureSet'IMPLICIT |+    FeatureSet'LEGACY_REQUIRED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'FieldPresence where+  maybeToEnum 0 = Prelude.Just FeatureSet'FIELD_PRESENCE_UNKNOWN+  maybeToEnum 1 = Prelude.Just FeatureSet'EXPLICIT+  maybeToEnum 2 = Prelude.Just FeatureSet'IMPLICIT+  maybeToEnum 3 = Prelude.Just FeatureSet'LEGACY_REQUIRED+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'FIELD_PRESENCE_UNKNOWN+    = "FIELD_PRESENCE_UNKNOWN"+  showEnum FeatureSet'EXPLICIT = "EXPLICIT"+  showEnum FeatureSet'IMPLICIT = "IMPLICIT"+  showEnum FeatureSet'LEGACY_REQUIRED = "LEGACY_REQUIRED"+  readEnum k+    | (Prelude.==) k "FIELD_PRESENCE_UNKNOWN"+    = Prelude.Just FeatureSet'FIELD_PRESENCE_UNKNOWN+    | (Prelude.==) k "EXPLICIT" = Prelude.Just FeatureSet'EXPLICIT+    | (Prelude.==) k "IMPLICIT" = Prelude.Just FeatureSet'IMPLICIT+    | (Prelude.==) k "LEGACY_REQUIRED"+    = Prelude.Just FeatureSet'LEGACY_REQUIRED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'FieldPresence where+  minBound = FeatureSet'FIELD_PRESENCE_UNKNOWN+  maxBound = FeatureSet'LEGACY_REQUIRED+instance Prelude.Enum FeatureSet'FieldPresence where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum FieldPresence: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'FIELD_PRESENCE_UNKNOWN = 0+  fromEnum FeatureSet'EXPLICIT = 1+  fromEnum FeatureSet'IMPLICIT = 2+  fromEnum FeatureSet'LEGACY_REQUIRED = 3+  succ FeatureSet'LEGACY_REQUIRED+    = Prelude.error+        "FeatureSet'FieldPresence.succ: bad argument FeatureSet'LEGACY_REQUIRED. This value would be out of bounds."+  succ FeatureSet'FIELD_PRESENCE_UNKNOWN = FeatureSet'EXPLICIT+  succ FeatureSet'EXPLICIT = FeatureSet'IMPLICIT+  succ FeatureSet'IMPLICIT = FeatureSet'LEGACY_REQUIRED+  pred FeatureSet'FIELD_PRESENCE_UNKNOWN+    = Prelude.error+        "FeatureSet'FieldPresence.pred: bad argument FeatureSet'FIELD_PRESENCE_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'EXPLICIT = FeatureSet'FIELD_PRESENCE_UNKNOWN+  pred FeatureSet'IMPLICIT = FeatureSet'EXPLICIT+  pred FeatureSet'LEGACY_REQUIRED = FeatureSet'IMPLICIT+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'FieldPresence where+  fieldDefault = FeatureSet'FIELD_PRESENCE_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'FieldPresence where+  rnf x__ = Prelude.seq x__ ()+data FeatureSet'JsonFormat+  = FeatureSet'JSON_FORMAT_UNKNOWN |+    FeatureSet'ALLOW |+    FeatureSet'LEGACY_BEST_EFFORT+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'JsonFormat where+  maybeToEnum 0 = Prelude.Just FeatureSet'JSON_FORMAT_UNKNOWN+  maybeToEnum 1 = Prelude.Just FeatureSet'ALLOW+  maybeToEnum 2 = Prelude.Just FeatureSet'LEGACY_BEST_EFFORT+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'JSON_FORMAT_UNKNOWN = "JSON_FORMAT_UNKNOWN"+  showEnum FeatureSet'ALLOW = "ALLOW"+  showEnum FeatureSet'LEGACY_BEST_EFFORT = "LEGACY_BEST_EFFORT"+  readEnum k+    | (Prelude.==) k "JSON_FORMAT_UNKNOWN"+    = Prelude.Just FeatureSet'JSON_FORMAT_UNKNOWN+    | (Prelude.==) k "ALLOW" = Prelude.Just FeatureSet'ALLOW+    | (Prelude.==) k "LEGACY_BEST_EFFORT"+    = Prelude.Just FeatureSet'LEGACY_BEST_EFFORT+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'JsonFormat where+  minBound = FeatureSet'JSON_FORMAT_UNKNOWN+  maxBound = FeatureSet'LEGACY_BEST_EFFORT+instance Prelude.Enum FeatureSet'JsonFormat where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum JsonFormat: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'JSON_FORMAT_UNKNOWN = 0+  fromEnum FeatureSet'ALLOW = 1+  fromEnum FeatureSet'LEGACY_BEST_EFFORT = 2+  succ FeatureSet'LEGACY_BEST_EFFORT+    = Prelude.error+        "FeatureSet'JsonFormat.succ: bad argument FeatureSet'LEGACY_BEST_EFFORT. This value would be out of bounds."+  succ FeatureSet'JSON_FORMAT_UNKNOWN = FeatureSet'ALLOW+  succ FeatureSet'ALLOW = FeatureSet'LEGACY_BEST_EFFORT+  pred FeatureSet'JSON_FORMAT_UNKNOWN+    = Prelude.error+        "FeatureSet'JsonFormat.pred: bad argument FeatureSet'JSON_FORMAT_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'ALLOW = FeatureSet'JSON_FORMAT_UNKNOWN+  pred FeatureSet'LEGACY_BEST_EFFORT = FeatureSet'ALLOW+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'JsonFormat where+  fieldDefault = FeatureSet'JSON_FORMAT_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'JsonFormat where+  rnf x__ = Prelude.seq x__ ()+data FeatureSet'MessageEncoding+  = FeatureSet'MESSAGE_ENCODING_UNKNOWN |+    FeatureSet'LENGTH_PREFIXED |+    FeatureSet'DELIMITED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'MessageEncoding where+  maybeToEnum 0 = Prelude.Just FeatureSet'MESSAGE_ENCODING_UNKNOWN+  maybeToEnum 1 = Prelude.Just FeatureSet'LENGTH_PREFIXED+  maybeToEnum 2 = Prelude.Just FeatureSet'DELIMITED+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'MESSAGE_ENCODING_UNKNOWN+    = "MESSAGE_ENCODING_UNKNOWN"+  showEnum FeatureSet'LENGTH_PREFIXED = "LENGTH_PREFIXED"+  showEnum FeatureSet'DELIMITED = "DELIMITED"+  readEnum k+    | (Prelude.==) k "MESSAGE_ENCODING_UNKNOWN"+    = Prelude.Just FeatureSet'MESSAGE_ENCODING_UNKNOWN+    | (Prelude.==) k "LENGTH_PREFIXED"+    = Prelude.Just FeatureSet'LENGTH_PREFIXED+    | (Prelude.==) k "DELIMITED" = Prelude.Just FeatureSet'DELIMITED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'MessageEncoding where+  minBound = FeatureSet'MESSAGE_ENCODING_UNKNOWN+  maxBound = FeatureSet'DELIMITED+instance Prelude.Enum FeatureSet'MessageEncoding where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum MessageEncoding: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'MESSAGE_ENCODING_UNKNOWN = 0+  fromEnum FeatureSet'LENGTH_PREFIXED = 1+  fromEnum FeatureSet'DELIMITED = 2+  succ FeatureSet'DELIMITED+    = Prelude.error+        "FeatureSet'MessageEncoding.succ: bad argument FeatureSet'DELIMITED. This value would be out of bounds."+  succ FeatureSet'MESSAGE_ENCODING_UNKNOWN+    = FeatureSet'LENGTH_PREFIXED+  succ FeatureSet'LENGTH_PREFIXED = FeatureSet'DELIMITED+  pred FeatureSet'MESSAGE_ENCODING_UNKNOWN+    = Prelude.error+        "FeatureSet'MessageEncoding.pred: bad argument FeatureSet'MESSAGE_ENCODING_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'LENGTH_PREFIXED+    = FeatureSet'MESSAGE_ENCODING_UNKNOWN+  pred FeatureSet'DELIMITED = FeatureSet'LENGTH_PREFIXED+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'MessageEncoding where+  fieldDefault = FeatureSet'MESSAGE_ENCODING_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'MessageEncoding where+  rnf x__ = Prelude.seq x__ ()+data FeatureSet'RepeatedFieldEncoding+  = FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN |+    FeatureSet'PACKED |+    FeatureSet'EXPANDED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'RepeatedFieldEncoding where+  maybeToEnum 0+    = Prelude.Just FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+  maybeToEnum 1 = Prelude.Just FeatureSet'PACKED+  maybeToEnum 2 = Prelude.Just FeatureSet'EXPANDED+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+    = "REPEATED_FIELD_ENCODING_UNKNOWN"+  showEnum FeatureSet'PACKED = "PACKED"+  showEnum FeatureSet'EXPANDED = "EXPANDED"+  readEnum k+    | (Prelude.==) k "REPEATED_FIELD_ENCODING_UNKNOWN"+    = Prelude.Just FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+    | (Prelude.==) k "PACKED" = Prelude.Just FeatureSet'PACKED+    | (Prelude.==) k "EXPANDED" = Prelude.Just FeatureSet'EXPANDED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'RepeatedFieldEncoding where+  minBound = FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+  maxBound = FeatureSet'EXPANDED+instance Prelude.Enum FeatureSet'RepeatedFieldEncoding where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum RepeatedFieldEncoding: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN = 0+  fromEnum FeatureSet'PACKED = 1+  fromEnum FeatureSet'EXPANDED = 2+  succ FeatureSet'EXPANDED+    = Prelude.error+        "FeatureSet'RepeatedFieldEncoding.succ: bad argument FeatureSet'EXPANDED. This value would be out of bounds."+  succ FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN = FeatureSet'PACKED+  succ FeatureSet'PACKED = FeatureSet'EXPANDED+  pred FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+    = Prelude.error+        "FeatureSet'RepeatedFieldEncoding.pred: bad argument FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'PACKED = FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+  pred FeatureSet'EXPANDED = FeatureSet'PACKED+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'RepeatedFieldEncoding where+  fieldDefault = FeatureSet'REPEATED_FIELD_ENCODING_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'RepeatedFieldEncoding where+  rnf x__ = Prelude.seq x__ ()+data FeatureSet'Utf8Validation+  = FeatureSet'UTF8_VALIDATION_UNKNOWN |+    FeatureSet'VERIFY |+    FeatureSet'NONE+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FeatureSet'Utf8Validation where+  maybeToEnum 0 = Prelude.Just FeatureSet'UTF8_VALIDATION_UNKNOWN+  maybeToEnum 2 = Prelude.Just FeatureSet'VERIFY+  maybeToEnum 3 = Prelude.Just FeatureSet'NONE+  maybeToEnum _ = Prelude.Nothing+  showEnum FeatureSet'UTF8_VALIDATION_UNKNOWN+    = "UTF8_VALIDATION_UNKNOWN"+  showEnum FeatureSet'VERIFY = "VERIFY"+  showEnum FeatureSet'NONE = "NONE"+  readEnum k+    | (Prelude.==) k "UTF8_VALIDATION_UNKNOWN"+    = Prelude.Just FeatureSet'UTF8_VALIDATION_UNKNOWN+    | (Prelude.==) k "VERIFY" = Prelude.Just FeatureSet'VERIFY+    | (Prelude.==) k "NONE" = Prelude.Just FeatureSet'NONE+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FeatureSet'Utf8Validation where+  minBound = FeatureSet'UTF8_VALIDATION_UNKNOWN+  maxBound = FeatureSet'NONE+instance Prelude.Enum FeatureSet'Utf8Validation where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Utf8Validation: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FeatureSet'UTF8_VALIDATION_UNKNOWN = 0+  fromEnum FeatureSet'VERIFY = 2+  fromEnum FeatureSet'NONE = 3+  succ FeatureSet'NONE+    = Prelude.error+        "FeatureSet'Utf8Validation.succ: bad argument FeatureSet'NONE. This value would be out of bounds."+  succ FeatureSet'UTF8_VALIDATION_UNKNOWN = FeatureSet'VERIFY+  succ FeatureSet'VERIFY = FeatureSet'NONE+  pred FeatureSet'UTF8_VALIDATION_UNKNOWN+    = Prelude.error+        "FeatureSet'Utf8Validation.pred: bad argument FeatureSet'UTF8_VALIDATION_UNKNOWN. This value would be out of bounds."+  pred FeatureSet'VERIFY = FeatureSet'UTF8_VALIDATION_UNKNOWN+  pred FeatureSet'NONE = FeatureSet'VERIFY+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FeatureSet'Utf8Validation where+  fieldDefault = FeatureSet'UTF8_VALIDATION_UNKNOWN+instance Control.DeepSeq.NFData FeatureSet'Utf8Validation where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.defaults' @:: Lens' FeatureSetDefaults [FeatureSetDefaults'FeatureSetEditionDefault]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'defaults' @:: Lens' FeatureSetDefaults (Data.Vector.Vector FeatureSetDefaults'FeatureSetEditionDefault)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.minimumEdition' @:: Lens' FeatureSetDefaults Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'minimumEdition' @:: Lens' FeatureSetDefaults (Prelude.Maybe Edition)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maximumEdition' @:: Lens' FeatureSetDefaults Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'maximumEdition' @:: Lens' FeatureSetDefaults (Prelude.Maybe Edition)@ -}+data FeatureSetDefaults+  = FeatureSetDefaults'_constructor {_FeatureSetDefaults'defaults :: !(Data.Vector.Vector FeatureSetDefaults'FeatureSetEditionDefault),+                                     _FeatureSetDefaults'minimumEdition :: !(Prelude.Maybe Edition),+                                     _FeatureSetDefaults'maximumEdition :: !(Prelude.Maybe Edition),+                                     _FeatureSetDefaults'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FeatureSetDefaults where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "defaults" [FeatureSetDefaults'FeatureSetEditionDefault] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'defaults+           (\ x__ y__ -> x__ {_FeatureSetDefaults'defaults = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "vec'defaults" (Data.Vector.Vector FeatureSetDefaults'FeatureSetEditionDefault) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'defaults+           (\ x__ y__ -> x__ {_FeatureSetDefaults'defaults = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "minimumEdition" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'minimumEdition+           (\ x__ y__ -> x__ {_FeatureSetDefaults'minimumEdition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "maybe'minimumEdition" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'minimumEdition+           (\ x__ y__ -> x__ {_FeatureSetDefaults'minimumEdition = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "maximumEdition" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'maximumEdition+           (\ x__ y__ -> x__ {_FeatureSetDefaults'maximumEdition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSetDefaults "maybe'maximumEdition" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'maximumEdition+           (\ x__ y__ -> x__ {_FeatureSetDefaults'maximumEdition = y__}))+        Prelude.id+instance Data.ProtoLens.Message FeatureSetDefaults where+  messageName _ = Data.Text.pack "google.protobuf.FeatureSetDefaults"+  packedMessageDescriptor _+    = "\n\+      \\DC2FeatureSetDefaults\DC2X\n\+      \\bdefaults\CAN\SOH \ETX(\v2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\bdefaults\DC2A\n\+      \\SIminimum_edition\CAN\EOT \SOH(\SO2\CAN.google.protobuf.EditionR\SOminimumEdition\DC2A\n\+      \\SImaximum_edition\CAN\ENQ \SOH(\SO2\CAN.google.protobuf.EditionR\SOmaximumEdition\SUB\248\SOH\n\+      \\CANFeatureSetEditionDefault\DC22\n\+      \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2N\n\+      \\DC4overridable_features\CAN\EOT \SOH(\v2\ESC.google.protobuf.FeatureSetR\DC3overridableFeatures\DC2B\n\+      \\SOfixed_features\CAN\ENQ \SOH(\v2\ESC.google.protobuf.FeatureSetR\rfixedFeaturesJ\EOT\b\SOH\DLE\STXJ\EOT\b\STX\DLE\ETXR\bfeatures"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        defaults__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "defaults"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSetDefaults'FeatureSetEditionDefault)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"defaults")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults+        minimumEdition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "minimum_edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'minimumEdition")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults+        maximumEdition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "maximum_edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'maximumEdition")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, defaults__field_descriptor),+           (Data.ProtoLens.Tag 4, minimumEdition__field_descriptor),+           (Data.ProtoLens.Tag 5, maximumEdition__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FeatureSetDefaults'_unknownFields+        (\ x__ y__ -> x__ {_FeatureSetDefaults'_unknownFields = y__})+  defMessage+    = FeatureSetDefaults'_constructor+        {_FeatureSetDefaults'defaults = Data.Vector.Generic.empty,+         _FeatureSetDefaults'minimumEdition = Prelude.Nothing,+         _FeatureSetDefaults'maximumEdition = Prelude.Nothing,+         _FeatureSetDefaults'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FeatureSetDefaults+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FeatureSetDefaults'FeatureSetEditionDefault+             -> Data.ProtoLens.Encoding.Bytes.Parser FeatureSetDefaults+        loop x mutable'defaults+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'defaults <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                              mutable'defaults)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'defaults") frozen'defaults x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "defaults"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'defaults y)+                                loop x v+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "minimum_edition"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"minimumEdition") y x)+                                  mutable'defaults+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "maximum_edition"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"maximumEdition") y x)+                                  mutable'defaults+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'defaults+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'defaults <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                    Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'defaults)+          "FeatureSetDefaults"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view+                   (Data.ProtoLens.Field.field @"vec'defaults") _x))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'minimumEdition") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                          ((Prelude..)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                             Prelude.fromEnum+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'maximumEdition") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                             ((Prelude..)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                Prelude.fromEnum+                                _v))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData FeatureSetDefaults where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FeatureSetDefaults'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FeatureSetDefaults'defaults x__)+                (Control.DeepSeq.deepseq+                   (_FeatureSetDefaults'minimumEdition x__)+                   (Control.DeepSeq.deepseq+                      (_FeatureSetDefaults'maximumEdition x__) ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.edition' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'edition' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault (Prelude.Maybe Edition)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.overridableFeatures' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'overridableFeatures' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.fixedFeatures' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'fixedFeatures' @:: Lens' FeatureSetDefaults'FeatureSetEditionDefault (Prelude.Maybe FeatureSet)@ -}+data FeatureSetDefaults'FeatureSetEditionDefault+  = FeatureSetDefaults'FeatureSetEditionDefault'_constructor {_FeatureSetDefaults'FeatureSetEditionDefault'edition :: !(Prelude.Maybe Edition),+                                                              _FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures :: !(Prelude.Maybe FeatureSet),+                                                              _FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures :: !(Prelude.Maybe FeatureSet),+                                                              _FeatureSetDefaults'FeatureSetEditionDefault'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FeatureSetDefaults'FeatureSetEditionDefault where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "edition" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'edition+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'edition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "maybe'edition" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'edition+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'edition = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "overridableFeatures" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "maybe'overridableFeatures" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "fixedFeatures" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FeatureSetDefaults'FeatureSetEditionDefault "maybe'fixedFeatures" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures+           (\ x__ y__+              -> x__+                   {_FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures = y__}))+        Prelude.id+instance Data.ProtoLens.Message FeatureSetDefaults'FeatureSetEditionDefault where+  messageName _+    = Data.Text.pack+        "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"+  packedMessageDescriptor _+    = "\n\+      \\CANFeatureSetEditionDefault\DC22\n\+      \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2N\n\+      \\DC4overridable_features\CAN\EOT \SOH(\v2\ESC.google.protobuf.FeatureSetR\DC3overridableFeatures\DC2B\n\+      \\SOfixed_features\CAN\ENQ \SOH(\v2\ESC.google.protobuf.FeatureSetR\rfixedFeaturesJ\EOT\b\SOH\DLE\STXJ\EOT\b\STX\DLE\ETXR\bfeatures"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        edition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'edition")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults'FeatureSetEditionDefault+        overridableFeatures__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "overridable_features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'overridableFeatures")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults'FeatureSetEditionDefault+        fixedFeatures__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "fixed_features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'fixedFeatures")) ::+              Data.ProtoLens.FieldDescriptor FeatureSetDefaults'FeatureSetEditionDefault+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 3, edition__field_descriptor),+           (Data.ProtoLens.Tag 4, overridableFeatures__field_descriptor),+           (Data.ProtoLens.Tag 5, fixedFeatures__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FeatureSetDefaults'FeatureSetEditionDefault'_unknownFields+        (\ x__ y__+           -> x__+                {_FeatureSetDefaults'FeatureSetEditionDefault'_unknownFields = y__})+  defMessage+    = FeatureSetDefaults'FeatureSetEditionDefault'_constructor+        {_FeatureSetDefaults'FeatureSetEditionDefault'edition = Prelude.Nothing,+         _FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures = Prelude.Nothing,+         _FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures = Prelude.Nothing,+         _FeatureSetDefaults'FeatureSetEditionDefault'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FeatureSetDefaults'FeatureSetEditionDefault+          -> Data.ProtoLens.Encoding.Bytes.Parser FeatureSetDefaults'FeatureSetEditionDefault+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"edition") y x)+                        34+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "overridable_features"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"overridableFeatures") y x)+                        42+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "fixed_features"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"fixedFeatures") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "FeatureSetEditionDefault"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'edition") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                       ((Prelude..)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                          Prelude.fromEnum+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'overridableFeatures") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.ProtoLens.encodeMessage+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'fixedFeatures") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData FeatureSetDefaults'FeatureSetEditionDefault where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FeatureSetDefaults'FeatureSetEditionDefault'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FeatureSetDefaults'FeatureSetEditionDefault'edition x__)+                (Control.DeepSeq.deepseq+                   (_FeatureSetDefaults'FeatureSetEditionDefault'overridableFeatures+                      x__)+                   (Control.DeepSeq.deepseq+                      (_FeatureSetDefaults'FeatureSetEditionDefault'fixedFeatures x__)+                      ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' FieldDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.number' @:: Lens' FieldDescriptorProto Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'number' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.label' @:: Lens' FieldDescriptorProto FieldDescriptorProto'Label@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'label' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldDescriptorProto'Label)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.type'' @:: Lens' FieldDescriptorProto FieldDescriptorProto'Type@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'type'' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldDescriptorProto'Type)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.typeName' @:: Lens' FieldDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'typeName' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.extendee' @:: Lens' FieldDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'extendee' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.defaultValue' @:: Lens' FieldDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'defaultValue' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.oneofIndex' @:: Lens' FieldDescriptorProto Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'oneofIndex' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.jsonName' @:: Lens' FieldDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'jsonName' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' FieldDescriptorProto FieldOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldOptions)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.proto3Optional' @:: Lens' FieldDescriptorProto Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'proto3Optional' @:: Lens' FieldDescriptorProto (Prelude.Maybe Prelude.Bool)@ -}+data FieldDescriptorProto+  = FieldDescriptorProto'_constructor {_FieldDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                       _FieldDescriptorProto'number :: !(Prelude.Maybe Data.Int.Int32),+                                       _FieldDescriptorProto'label :: !(Prelude.Maybe FieldDescriptorProto'Label),+                                       _FieldDescriptorProto'type' :: !(Prelude.Maybe FieldDescriptorProto'Type),+                                       _FieldDescriptorProto'typeName :: !(Prelude.Maybe Data.Text.Text),+                                       _FieldDescriptorProto'extendee :: !(Prelude.Maybe Data.Text.Text),+                                       _FieldDescriptorProto'defaultValue :: !(Prelude.Maybe Data.Text.Text),+                                       _FieldDescriptorProto'oneofIndex :: !(Prelude.Maybe Data.Int.Int32),+                                       _FieldDescriptorProto'jsonName :: !(Prelude.Maybe Data.Text.Text),+                                       _FieldDescriptorProto'options :: !(Prelude.Maybe FieldOptions),+                                       _FieldDescriptorProto'proto3Optional :: !(Prelude.Maybe Prelude.Bool),+                                       _FieldDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'name+           (\ x__ y__ -> x__ {_FieldDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'name+           (\ x__ y__ -> x__ {_FieldDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "number" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'number+           (\ x__ y__ -> x__ {_FieldDescriptorProto'number = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'number" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'number+           (\ x__ y__ -> x__ {_FieldDescriptorProto'number = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "label" FieldDescriptorProto'Label where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'label+           (\ x__ y__ -> x__ {_FieldDescriptorProto'label = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'label" (Prelude.Maybe FieldDescriptorProto'Label) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'label+           (\ x__ y__ -> x__ {_FieldDescriptorProto'label = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "type'" FieldDescriptorProto'Type where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'type'+           (\ x__ y__ -> x__ {_FieldDescriptorProto'type' = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'type'" (Prelude.Maybe FieldDescriptorProto'Type) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'type'+           (\ x__ y__ -> x__ {_FieldDescriptorProto'type' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "typeName" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'typeName+           (\ x__ y__ -> x__ {_FieldDescriptorProto'typeName = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'typeName" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'typeName+           (\ x__ y__ -> x__ {_FieldDescriptorProto'typeName = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "extendee" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'extendee+           (\ x__ y__ -> x__ {_FieldDescriptorProto'extendee = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'extendee" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'extendee+           (\ x__ y__ -> x__ {_FieldDescriptorProto'extendee = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "defaultValue" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'defaultValue+           (\ x__ y__ -> x__ {_FieldDescriptorProto'defaultValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'defaultValue" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'defaultValue+           (\ x__ y__ -> x__ {_FieldDescriptorProto'defaultValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "oneofIndex" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'oneofIndex+           (\ x__ y__ -> x__ {_FieldDescriptorProto'oneofIndex = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'oneofIndex" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'oneofIndex+           (\ x__ y__ -> x__ {_FieldDescriptorProto'oneofIndex = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "jsonName" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'jsonName+           (\ x__ y__ -> x__ {_FieldDescriptorProto'jsonName = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'jsonName" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'jsonName+           (\ x__ y__ -> x__ {_FieldDescriptorProto'jsonName = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "options" FieldOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'options+           (\ x__ y__ -> x__ {_FieldDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'options" (Prelude.Maybe FieldOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'options+           (\ x__ y__ -> x__ {_FieldDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "proto3Optional" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'proto3Optional+           (\ x__ y__ -> x__ {_FieldDescriptorProto'proto3Optional = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'proto3Optional" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldDescriptorProto'proto3Optional+           (\ x__ y__ -> x__ {_FieldDescriptorProto'proto3Optional = y__}))+        Prelude.id+instance Data.ProtoLens.Message FieldDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.FieldDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\DC4FieldDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\SYN\n\+      \\ACKnumber\CAN\ETX \SOH(\ENQR\ACKnumber\DC2A\n\+      \\ENQlabel\CAN\EOT \SOH(\SO2+.google.protobuf.FieldDescriptorProto.LabelR\ENQlabel\DC2>\n\+      \\EOTtype\CAN\ENQ \SOH(\SO2*.google.protobuf.FieldDescriptorProto.TypeR\EOTtype\DC2\ESC\n\+      \\ttype_name\CAN\ACK \SOH(\tR\btypeName\DC2\SUB\n\+      \\bextendee\CAN\STX \SOH(\tR\bextendee\DC2#\n\+      \\rdefault_value\CAN\a \SOH(\tR\fdefaultValue\DC2\US\n\+      \\voneof_index\CAN\t \SOH(\ENQR\n\+      \oneofIndex\DC2\ESC\n\+      \\tjson_name\CAN\n\+      \ \SOH(\tR\bjsonName\DC27\n\+      \\aoptions\CAN\b \SOH(\v2\GS.google.protobuf.FieldOptionsR\aoptions\DC2'\n\+      \\SIproto3_optional\CAN\DC1 \SOH(\bR\SOproto3Optional\"\182\STX\n\+      \\EOTType\DC2\SI\n\+      \\vTYPE_DOUBLE\DLE\SOH\DC2\SO\n\+      \\n\+      \TYPE_FLOAT\DLE\STX\DC2\SO\n\+      \\n\+      \TYPE_INT64\DLE\ETX\DC2\SI\n\+      \\vTYPE_UINT64\DLE\EOT\DC2\SO\n\+      \\n\+      \TYPE_INT32\DLE\ENQ\DC2\DLE\n\+      \\fTYPE_FIXED64\DLE\ACK\DC2\DLE\n\+      \\fTYPE_FIXED32\DLE\a\DC2\r\n\+      \\tTYPE_BOOL\DLE\b\DC2\SI\n\+      \\vTYPE_STRING\DLE\t\DC2\SO\n\+      \\n\+      \TYPE_GROUP\DLE\n\+      \\DC2\DLE\n\+      \\fTYPE_MESSAGE\DLE\v\DC2\SO\n\+      \\n\+      \TYPE_BYTES\DLE\f\DC2\SI\n\+      \\vTYPE_UINT32\DLE\r\DC2\r\n\+      \\tTYPE_ENUM\DLE\SO\DC2\DC1\n\+      \\rTYPE_SFIXED32\DLE\SI\DC2\DC1\n\+      \\rTYPE_SFIXED64\DLE\DLE\DC2\SI\n\+      \\vTYPE_SINT32\DLE\DC1\DC2\SI\n\+      \\vTYPE_SINT64\DLE\DC2\"C\n\+      \\ENQLabel\DC2\DC2\n\+      \\SOLABEL_OPTIONAL\DLE\SOH\DC2\DC2\n\+      \\SOLABEL_REPEATED\DLE\ETX\DC2\DC2\n\+      \\SOLABEL_REQUIRED\DLE\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        number__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "number"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'number")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        label__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "label"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Label)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'label")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        type'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Type)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'type'")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        typeName__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "type_name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'typeName")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        extendee__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "extendee"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'extendee")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        defaultValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "default_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'defaultValue")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        oneofIndex__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "oneof_index"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'oneofIndex")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        jsonName__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "json_name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'jsonName")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+        proto3Optional__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "proto3_optional"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'proto3Optional")) ::+              Data.ProtoLens.FieldDescriptor FieldDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 3, number__field_descriptor),+           (Data.ProtoLens.Tag 4, label__field_descriptor),+           (Data.ProtoLens.Tag 5, type'__field_descriptor),+           (Data.ProtoLens.Tag 6, typeName__field_descriptor),+           (Data.ProtoLens.Tag 2, extendee__field_descriptor),+           (Data.ProtoLens.Tag 7, defaultValue__field_descriptor),+           (Data.ProtoLens.Tag 9, oneofIndex__field_descriptor),+           (Data.ProtoLens.Tag 10, jsonName__field_descriptor),+           (Data.ProtoLens.Tag 8, options__field_descriptor),+           (Data.ProtoLens.Tag 17, proto3Optional__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FieldDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_FieldDescriptorProto'_unknownFields = y__})+  defMessage+    = FieldDescriptorProto'_constructor+        {_FieldDescriptorProto'name = Prelude.Nothing,+         _FieldDescriptorProto'number = Prelude.Nothing,+         _FieldDescriptorProto'label = Prelude.Nothing,+         _FieldDescriptorProto'type' = Prelude.Nothing,+         _FieldDescriptorProto'typeName = Prelude.Nothing,+         _FieldDescriptorProto'extendee = Prelude.Nothing,+         _FieldDescriptorProto'defaultValue = Prelude.Nothing,+         _FieldDescriptorProto'oneofIndex = Prelude.Nothing,+         _FieldDescriptorProto'jsonName = Prelude.Nothing,+         _FieldDescriptorProto'options = Prelude.Nothing,+         _FieldDescriptorProto'proto3Optional = Prelude.Nothing,+         _FieldDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FieldDescriptorProto+          -> Data.ProtoLens.Encoding.Bytes.Parser FieldDescriptorProto+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "number"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"number") y x)+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "label"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"label") y x)+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "type"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") y x)+                        50+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "type_name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"typeName") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "extendee"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"extendee") y x)+                        58+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "default_value"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"defaultValue") y x)+                        72+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "oneof_index"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"oneofIndex") y x)+                        82+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "json_name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"jsonName") y x)+                        66+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                        136+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "proto3_optional"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"proto3Optional") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "FieldDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'number") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'label") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                             ((Prelude..)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                Prelude.fromEnum+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'type'") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                ((Prelude..)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                   Prelude.fromEnum+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'typeName") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+                                   ((Prelude..)+                                      (\ bs+                                         -> (Data.Monoid.<>)+                                              (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))+                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                      Data.Text.Encoding.encodeUtf8+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'extendee") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                                      ((Prelude..)+                                         (\ bs+                                            -> (Data.Monoid.<>)+                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                    (Prelude.fromIntegral+                                                       (Data.ByteString.length bs)))+                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                         Data.Text.Encoding.encodeUtf8+                                         _v))+                            ((Data.Monoid.<>)+                               (case+                                    Lens.Family2.view+                                      (Data.ProtoLens.Field.field @"maybe'defaultValue") _x+                                of+                                  Prelude.Nothing -> Data.Monoid.mempty+                                  (Prelude.Just _v)+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+                                         ((Prelude..)+                                            (\ bs+                                               -> (Data.Monoid.<>)+                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                       (Prelude.fromIntegral+                                                          (Data.ByteString.length bs)))+                                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                            Data.Text.Encoding.encodeUtf8+                                            _v))+                               ((Data.Monoid.<>)+                                  (case+                                       Lens.Family2.view+                                         (Data.ProtoLens.Field.field @"maybe'oneofIndex") _x+                                   of+                                     Prelude.Nothing -> Data.Monoid.mempty+                                     (Prelude.Just _v)+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 72)+                                            ((Prelude..)+                                               Data.ProtoLens.Encoding.Bytes.putVarInt+                                               Prelude.fromIntegral+                                               _v))+                                  ((Data.Monoid.<>)+                                     (case+                                          Lens.Family2.view+                                            (Data.ProtoLens.Field.field @"maybe'jsonName") _x+                                      of+                                        Prelude.Nothing -> Data.Monoid.mempty+                                        (Prelude.Just _v)+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 82)+                                               ((Prelude..)+                                                  (\ bs+                                                     -> (Data.Monoid.<>)+                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                             (Prelude.fromIntegral+                                                                (Data.ByteString.length bs)))+                                                          (Data.ProtoLens.Encoding.Bytes.putBytes+                                                             bs))+                                                  Data.Text.Encoding.encodeUtf8+                                                  _v))+                                     ((Data.Monoid.<>)+                                        (case+                                             Lens.Family2.view+                                               (Data.ProtoLens.Field.field @"maybe'options") _x+                                         of+                                           Prelude.Nothing -> Data.Monoid.mempty+                                           (Prelude.Just _v)+                                             -> (Data.Monoid.<>)+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+                                                  ((Prelude..)+                                                     (\ bs+                                                        -> (Data.Monoid.<>)+                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                (Prelude.fromIntegral+                                                                   (Data.ByteString.length bs)))+                                                             (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                bs))+                                                     Data.ProtoLens.encodeMessage+                                                     _v))+                                        ((Data.Monoid.<>)+                                           (case+                                                Lens.Family2.view+                                                  (Data.ProtoLens.Field.field+                                                     @"maybe'proto3Optional")+                                                  _x+                                            of+                                              Prelude.Nothing -> Data.Monoid.mempty+                                              (Prelude.Just _v)+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 136)+                                                     ((Prelude..)+                                                        Data.ProtoLens.Encoding.Bytes.putVarInt+                                                        (\ b -> if b then 1 else 0)+                                                        _v))+                                           (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                              (Lens.Family2.view+                                                 Data.ProtoLens.unknownFields _x))))))))))))+instance Control.DeepSeq.NFData FieldDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FieldDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FieldDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_FieldDescriptorProto'number x__)+                   (Control.DeepSeq.deepseq+                      (_FieldDescriptorProto'label x__)+                      (Control.DeepSeq.deepseq+                         (_FieldDescriptorProto'type' x__)+                         (Control.DeepSeq.deepseq+                            (_FieldDescriptorProto'typeName x__)+                            (Control.DeepSeq.deepseq+                               (_FieldDescriptorProto'extendee x__)+                               (Control.DeepSeq.deepseq+                                  (_FieldDescriptorProto'defaultValue x__)+                                  (Control.DeepSeq.deepseq+                                     (_FieldDescriptorProto'oneofIndex x__)+                                     (Control.DeepSeq.deepseq+                                        (_FieldDescriptorProto'jsonName x__)+                                        (Control.DeepSeq.deepseq+                                           (_FieldDescriptorProto'options x__)+                                           (Control.DeepSeq.deepseq+                                              (_FieldDescriptorProto'proto3Optional x__)+                                              ())))))))))))+data FieldDescriptorProto'Label+  = FieldDescriptorProto'LABEL_OPTIONAL |+    FieldDescriptorProto'LABEL_REQUIRED |+    FieldDescriptorProto'LABEL_REPEATED+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Label where+  maybeToEnum 1 = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+  maybeToEnum 2 = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+  maybeToEnum 3 = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldDescriptorProto'LABEL_OPTIONAL = "LABEL_OPTIONAL"+  showEnum FieldDescriptorProto'LABEL_REPEATED = "LABEL_REPEATED"+  showEnum FieldDescriptorProto'LABEL_REQUIRED = "LABEL_REQUIRED"+  readEnum k+    | (Prelude.==) k "LABEL_OPTIONAL"+    = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+    | (Prelude.==) k "LABEL_REPEATED"+    = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+    | (Prelude.==) k "LABEL_REQUIRED"+    = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldDescriptorProto'Label where+  minBound = FieldDescriptorProto'LABEL_OPTIONAL+  maxBound = FieldDescriptorProto'LABEL_REPEATED+instance Prelude.Enum FieldDescriptorProto'Label where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Label: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldDescriptorProto'LABEL_OPTIONAL = 1+  fromEnum FieldDescriptorProto'LABEL_REQUIRED = 2+  fromEnum FieldDescriptorProto'LABEL_REPEATED = 3+  succ FieldDescriptorProto'LABEL_REPEATED+    = Prelude.error+        "FieldDescriptorProto'Label.succ: bad argument FieldDescriptorProto'LABEL_REPEATED. This value would be out of bounds."+  succ FieldDescriptorProto'LABEL_OPTIONAL+    = FieldDescriptorProto'LABEL_REQUIRED+  succ FieldDescriptorProto'LABEL_REQUIRED+    = FieldDescriptorProto'LABEL_REPEATED+  pred FieldDescriptorProto'LABEL_OPTIONAL+    = Prelude.error+        "FieldDescriptorProto'Label.pred: bad argument FieldDescriptorProto'LABEL_OPTIONAL. This value would be out of bounds."+  pred FieldDescriptorProto'LABEL_REQUIRED+    = FieldDescriptorProto'LABEL_OPTIONAL+  pred FieldDescriptorProto'LABEL_REPEATED+    = FieldDescriptorProto'LABEL_REQUIRED+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Label where+  fieldDefault = FieldDescriptorProto'LABEL_OPTIONAL+instance Control.DeepSeq.NFData FieldDescriptorProto'Label where+  rnf x__ = Prelude.seq x__ ()+data FieldDescriptorProto'Type+  = FieldDescriptorProto'TYPE_DOUBLE |+    FieldDescriptorProto'TYPE_FLOAT |+    FieldDescriptorProto'TYPE_INT64 |+    FieldDescriptorProto'TYPE_UINT64 |+    FieldDescriptorProto'TYPE_INT32 |+    FieldDescriptorProto'TYPE_FIXED64 |+    FieldDescriptorProto'TYPE_FIXED32 |+    FieldDescriptorProto'TYPE_BOOL |+    FieldDescriptorProto'TYPE_STRING |+    FieldDescriptorProto'TYPE_GROUP |+    FieldDescriptorProto'TYPE_MESSAGE |+    FieldDescriptorProto'TYPE_BYTES |+    FieldDescriptorProto'TYPE_UINT32 |+    FieldDescriptorProto'TYPE_ENUM |+    FieldDescriptorProto'TYPE_SFIXED32 |+    FieldDescriptorProto'TYPE_SFIXED64 |+    FieldDescriptorProto'TYPE_SINT32 |+    FieldDescriptorProto'TYPE_SINT64+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Type where+  maybeToEnum 1 = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+  maybeToEnum 2 = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+  maybeToEnum 3 = Prelude.Just FieldDescriptorProto'TYPE_INT64+  maybeToEnum 4 = Prelude.Just FieldDescriptorProto'TYPE_UINT64+  maybeToEnum 5 = Prelude.Just FieldDescriptorProto'TYPE_INT32+  maybeToEnum 6 = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+  maybeToEnum 7 = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+  maybeToEnum 8 = Prelude.Just FieldDescriptorProto'TYPE_BOOL+  maybeToEnum 9 = Prelude.Just FieldDescriptorProto'TYPE_STRING+  maybeToEnum 10 = Prelude.Just FieldDescriptorProto'TYPE_GROUP+  maybeToEnum 11 = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+  maybeToEnum 12 = Prelude.Just FieldDescriptorProto'TYPE_BYTES+  maybeToEnum 13 = Prelude.Just FieldDescriptorProto'TYPE_UINT32+  maybeToEnum 14 = Prelude.Just FieldDescriptorProto'TYPE_ENUM+  maybeToEnum 15 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+  maybeToEnum 16 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+  maybeToEnum 17 = Prelude.Just FieldDescriptorProto'TYPE_SINT32+  maybeToEnum 18 = Prelude.Just FieldDescriptorProto'TYPE_SINT64+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldDescriptorProto'TYPE_DOUBLE = "TYPE_DOUBLE"+  showEnum FieldDescriptorProto'TYPE_FLOAT = "TYPE_FLOAT"+  showEnum FieldDescriptorProto'TYPE_INT64 = "TYPE_INT64"+  showEnum FieldDescriptorProto'TYPE_UINT64 = "TYPE_UINT64"+  showEnum FieldDescriptorProto'TYPE_INT32 = "TYPE_INT32"+  showEnum FieldDescriptorProto'TYPE_FIXED64 = "TYPE_FIXED64"+  showEnum FieldDescriptorProto'TYPE_FIXED32 = "TYPE_FIXED32"+  showEnum FieldDescriptorProto'TYPE_BOOL = "TYPE_BOOL"+  showEnum FieldDescriptorProto'TYPE_STRING = "TYPE_STRING"+  showEnum FieldDescriptorProto'TYPE_GROUP = "TYPE_GROUP"+  showEnum FieldDescriptorProto'TYPE_MESSAGE = "TYPE_MESSAGE"+  showEnum FieldDescriptorProto'TYPE_BYTES = "TYPE_BYTES"+  showEnum FieldDescriptorProto'TYPE_UINT32 = "TYPE_UINT32"+  showEnum FieldDescriptorProto'TYPE_ENUM = "TYPE_ENUM"+  showEnum FieldDescriptorProto'TYPE_SFIXED32 = "TYPE_SFIXED32"+  showEnum FieldDescriptorProto'TYPE_SFIXED64 = "TYPE_SFIXED64"+  showEnum FieldDescriptorProto'TYPE_SINT32 = "TYPE_SINT32"+  showEnum FieldDescriptorProto'TYPE_SINT64 = "TYPE_SINT64"+  readEnum k+    | (Prelude.==) k "TYPE_DOUBLE"+    = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+    | (Prelude.==) k "TYPE_FLOAT"+    = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+    | (Prelude.==) k "TYPE_INT64"+    = Prelude.Just FieldDescriptorProto'TYPE_INT64+    | (Prelude.==) k "TYPE_UINT64"+    = Prelude.Just FieldDescriptorProto'TYPE_UINT64+    | (Prelude.==) k "TYPE_INT32"+    = Prelude.Just FieldDescriptorProto'TYPE_INT32+    | (Prelude.==) k "TYPE_FIXED64"+    = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+    | (Prelude.==) k "TYPE_FIXED32"+    = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+    | (Prelude.==) k "TYPE_BOOL"+    = Prelude.Just FieldDescriptorProto'TYPE_BOOL+    | (Prelude.==) k "TYPE_STRING"+    = Prelude.Just FieldDescriptorProto'TYPE_STRING+    | (Prelude.==) k "TYPE_GROUP"+    = Prelude.Just FieldDescriptorProto'TYPE_GROUP+    | (Prelude.==) k "TYPE_MESSAGE"+    = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+    | (Prelude.==) k "TYPE_BYTES"+    = Prelude.Just FieldDescriptorProto'TYPE_BYTES+    | (Prelude.==) k "TYPE_UINT32"+    = Prelude.Just FieldDescriptorProto'TYPE_UINT32+    | (Prelude.==) k "TYPE_ENUM"+    = Prelude.Just FieldDescriptorProto'TYPE_ENUM+    | (Prelude.==) k "TYPE_SFIXED32"+    = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+    | (Prelude.==) k "TYPE_SFIXED64"+    = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+    | (Prelude.==) k "TYPE_SINT32"+    = Prelude.Just FieldDescriptorProto'TYPE_SINT32+    | (Prelude.==) k "TYPE_SINT64"+    = Prelude.Just FieldDescriptorProto'TYPE_SINT64+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldDescriptorProto'Type where+  minBound = FieldDescriptorProto'TYPE_DOUBLE+  maxBound = FieldDescriptorProto'TYPE_SINT64+instance Prelude.Enum FieldDescriptorProto'Type where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Type: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldDescriptorProto'TYPE_DOUBLE = 1+  fromEnum FieldDescriptorProto'TYPE_FLOAT = 2+  fromEnum FieldDescriptorProto'TYPE_INT64 = 3+  fromEnum FieldDescriptorProto'TYPE_UINT64 = 4+  fromEnum FieldDescriptorProto'TYPE_INT32 = 5+  fromEnum FieldDescriptorProto'TYPE_FIXED64 = 6+  fromEnum FieldDescriptorProto'TYPE_FIXED32 = 7+  fromEnum FieldDescriptorProto'TYPE_BOOL = 8+  fromEnum FieldDescriptorProto'TYPE_STRING = 9+  fromEnum FieldDescriptorProto'TYPE_GROUP = 10+  fromEnum FieldDescriptorProto'TYPE_MESSAGE = 11+  fromEnum FieldDescriptorProto'TYPE_BYTES = 12+  fromEnum FieldDescriptorProto'TYPE_UINT32 = 13+  fromEnum FieldDescriptorProto'TYPE_ENUM = 14+  fromEnum FieldDescriptorProto'TYPE_SFIXED32 = 15+  fromEnum FieldDescriptorProto'TYPE_SFIXED64 = 16+  fromEnum FieldDescriptorProto'TYPE_SINT32 = 17+  fromEnum FieldDescriptorProto'TYPE_SINT64 = 18+  succ FieldDescriptorProto'TYPE_SINT64+    = Prelude.error+        "FieldDescriptorProto'Type.succ: bad argument FieldDescriptorProto'TYPE_SINT64. This value would be out of bounds."+  succ FieldDescriptorProto'TYPE_DOUBLE+    = FieldDescriptorProto'TYPE_FLOAT+  succ FieldDescriptorProto'TYPE_FLOAT+    = FieldDescriptorProto'TYPE_INT64+  succ FieldDescriptorProto'TYPE_INT64+    = FieldDescriptorProto'TYPE_UINT64+  succ FieldDescriptorProto'TYPE_UINT64+    = FieldDescriptorProto'TYPE_INT32+  succ FieldDescriptorProto'TYPE_INT32+    = FieldDescriptorProto'TYPE_FIXED64+  succ FieldDescriptorProto'TYPE_FIXED64+    = FieldDescriptorProto'TYPE_FIXED32+  succ FieldDescriptorProto'TYPE_FIXED32+    = FieldDescriptorProto'TYPE_BOOL+  succ FieldDescriptorProto'TYPE_BOOL+    = FieldDescriptorProto'TYPE_STRING+  succ FieldDescriptorProto'TYPE_STRING+    = FieldDescriptorProto'TYPE_GROUP+  succ FieldDescriptorProto'TYPE_GROUP+    = FieldDescriptorProto'TYPE_MESSAGE+  succ FieldDescriptorProto'TYPE_MESSAGE+    = FieldDescriptorProto'TYPE_BYTES+  succ FieldDescriptorProto'TYPE_BYTES+    = FieldDescriptorProto'TYPE_UINT32+  succ FieldDescriptorProto'TYPE_UINT32+    = FieldDescriptorProto'TYPE_ENUM+  succ FieldDescriptorProto'TYPE_ENUM+    = FieldDescriptorProto'TYPE_SFIXED32+  succ FieldDescriptorProto'TYPE_SFIXED32+    = FieldDescriptorProto'TYPE_SFIXED64+  succ FieldDescriptorProto'TYPE_SFIXED64+    = FieldDescriptorProto'TYPE_SINT32+  succ FieldDescriptorProto'TYPE_SINT32+    = FieldDescriptorProto'TYPE_SINT64+  pred FieldDescriptorProto'TYPE_DOUBLE+    = Prelude.error+        "FieldDescriptorProto'Type.pred: bad argument FieldDescriptorProto'TYPE_DOUBLE. This value would be out of bounds."+  pred FieldDescriptorProto'TYPE_FLOAT+    = FieldDescriptorProto'TYPE_DOUBLE+  pred FieldDescriptorProto'TYPE_INT64+    = FieldDescriptorProto'TYPE_FLOAT+  pred FieldDescriptorProto'TYPE_UINT64+    = FieldDescriptorProto'TYPE_INT64+  pred FieldDescriptorProto'TYPE_INT32+    = FieldDescriptorProto'TYPE_UINT64+  pred FieldDescriptorProto'TYPE_FIXED64+    = FieldDescriptorProto'TYPE_INT32+  pred FieldDescriptorProto'TYPE_FIXED32+    = FieldDescriptorProto'TYPE_FIXED64+  pred FieldDescriptorProto'TYPE_BOOL+    = FieldDescriptorProto'TYPE_FIXED32+  pred FieldDescriptorProto'TYPE_STRING+    = FieldDescriptorProto'TYPE_BOOL+  pred FieldDescriptorProto'TYPE_GROUP+    = FieldDescriptorProto'TYPE_STRING+  pred FieldDescriptorProto'TYPE_MESSAGE+    = FieldDescriptorProto'TYPE_GROUP+  pred FieldDescriptorProto'TYPE_BYTES+    = FieldDescriptorProto'TYPE_MESSAGE+  pred FieldDescriptorProto'TYPE_UINT32+    = FieldDescriptorProto'TYPE_BYTES+  pred FieldDescriptorProto'TYPE_ENUM+    = FieldDescriptorProto'TYPE_UINT32+  pred FieldDescriptorProto'TYPE_SFIXED32+    = FieldDescriptorProto'TYPE_ENUM+  pred FieldDescriptorProto'TYPE_SFIXED64+    = FieldDescriptorProto'TYPE_SFIXED32+  pred FieldDescriptorProto'TYPE_SINT32+    = FieldDescriptorProto'TYPE_SFIXED64+  pred FieldDescriptorProto'TYPE_SINT64+    = FieldDescriptorProto'TYPE_SINT32+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Type where+  fieldDefault = FieldDescriptorProto'TYPE_DOUBLE+instance Control.DeepSeq.NFData FieldDescriptorProto'Type where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.ctype' @:: Lens' FieldOptions FieldOptions'CType@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ctype' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'CType)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.packed' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'packed' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.jstype' @:: Lens' FieldOptions FieldOptions'JSType@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'jstype' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'JSType)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.lazy' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'lazy' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.unverifiedLazy' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'unverifiedLazy' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.weak' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'weak' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.debugRedact' @:: Lens' FieldOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'debugRedact' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.retention' @:: Lens' FieldOptions FieldOptions'OptionRetention@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'retention' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'OptionRetention)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.targets' @:: Lens' FieldOptions [FieldOptions'OptionTargetType]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'targets' @:: Lens' FieldOptions (Data.Vector.Vector FieldOptions'OptionTargetType)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.editionDefaults' @:: Lens' FieldOptions [FieldOptions'EditionDefault]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'editionDefaults' @:: Lens' FieldOptions (Data.Vector.Vector FieldOptions'EditionDefault)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' FieldOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' FieldOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.featureSupport' @:: Lens' FieldOptions FieldOptions'FeatureSupport@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'featureSupport' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'FeatureSupport)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' FieldOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' FieldOptions (Data.Vector.Vector UninterpretedOption)@ -}+data FieldOptions+  = FieldOptions'_constructor {_FieldOptions'ctype :: !(Prelude.Maybe FieldOptions'CType),+                               _FieldOptions'packed :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'jstype :: !(Prelude.Maybe FieldOptions'JSType),+                               _FieldOptions'lazy :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'unverifiedLazy :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'weak :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'debugRedact :: !(Prelude.Maybe Prelude.Bool),+                               _FieldOptions'retention :: !(Prelude.Maybe FieldOptions'OptionRetention),+                               _FieldOptions'targets :: !(Data.Vector.Vector FieldOptions'OptionTargetType),+                               _FieldOptions'editionDefaults :: !(Data.Vector.Vector FieldOptions'EditionDefault),+                               _FieldOptions'features :: !(Prelude.Maybe FeatureSet),+                               _FieldOptions'featureSupport :: !(Prelude.Maybe FieldOptions'FeatureSupport),+                               _FieldOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                               _FieldOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldOptions "ctype" FieldOptions'CType where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'ctype (\ x__ y__ -> x__ {_FieldOptions'ctype = y__}))+        (Data.ProtoLens.maybeLens FieldOptions'STRING)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'ctype" (Prelude.Maybe FieldOptions'CType) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'ctype (\ x__ y__ -> x__ {_FieldOptions'ctype = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "packed" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'packed+           (\ x__ y__ -> x__ {_FieldOptions'packed = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'packed" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'packed+           (\ x__ y__ -> x__ {_FieldOptions'packed = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "jstype" FieldOptions'JSType where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'jstype+           (\ x__ y__ -> x__ {_FieldOptions'jstype = y__}))+        (Data.ProtoLens.maybeLens FieldOptions'JS_NORMAL)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'jstype" (Prelude.Maybe FieldOptions'JSType) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'jstype+           (\ x__ y__ -> x__ {_FieldOptions'jstype = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "lazy" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'lazy (\ x__ y__ -> x__ {_FieldOptions'lazy = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'lazy" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'lazy (\ x__ y__ -> x__ {_FieldOptions'lazy = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "unverifiedLazy" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'unverifiedLazy+           (\ x__ y__ -> x__ {_FieldOptions'unverifiedLazy = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'unverifiedLazy" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'unverifiedLazy+           (\ x__ y__ -> x__ {_FieldOptions'unverifiedLazy = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'deprecated+           (\ x__ y__ -> x__ {_FieldOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'deprecated+           (\ x__ y__ -> x__ {_FieldOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "weak" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'weak (\ x__ y__ -> x__ {_FieldOptions'weak = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'weak" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'weak (\ x__ y__ -> x__ {_FieldOptions'weak = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "debugRedact" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'debugRedact+           (\ x__ y__ -> x__ {_FieldOptions'debugRedact = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'debugRedact" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'debugRedact+           (\ x__ y__ -> x__ {_FieldOptions'debugRedact = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "retention" FieldOptions'OptionRetention where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'retention+           (\ x__ y__ -> x__ {_FieldOptions'retention = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'retention" (Prelude.Maybe FieldOptions'OptionRetention) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'retention+           (\ x__ y__ -> x__ {_FieldOptions'retention = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "targets" [FieldOptions'OptionTargetType] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'targets+           (\ x__ y__ -> x__ {_FieldOptions'targets = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FieldOptions "vec'targets" (Data.Vector.Vector FieldOptions'OptionTargetType) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'targets+           (\ x__ y__ -> x__ {_FieldOptions'targets = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "editionDefaults" [FieldOptions'EditionDefault] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'editionDefaults+           (\ x__ y__ -> x__ {_FieldOptions'editionDefaults = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FieldOptions "vec'editionDefaults" (Data.Vector.Vector FieldOptions'EditionDefault) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'editionDefaults+           (\ x__ y__ -> x__ {_FieldOptions'editionDefaults = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'features+           (\ x__ y__ -> x__ {_FieldOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'features+           (\ x__ y__ -> x__ {_FieldOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "featureSupport" FieldOptions'FeatureSupport where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'featureSupport+           (\ x__ y__ -> x__ {_FieldOptions'featureSupport = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'featureSupport" (Prelude.Maybe FieldOptions'FeatureSupport) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'featureSupport+           (\ x__ y__ -> x__ {_FieldOptions'featureSupport = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_FieldOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FieldOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_FieldOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message FieldOptions where+  messageName _ = Data.Text.pack "google.protobuf.FieldOptions"+  packedMessageDescriptor _+    = "\n\+      \\fFieldOptions\DC2A\n\+      \\ENQctype\CAN\SOH \SOH(\SO2#.google.protobuf.FieldOptions.CType:\ACKSTRINGR\ENQctype\DC2\SYN\n\+      \\ACKpacked\CAN\STX \SOH(\bR\ACKpacked\DC2G\n\+      \\ACKjstype\CAN\ACK \SOH(\SO2$.google.protobuf.FieldOptions.JSType:\tJS_NORMALR\ACKjstype\DC2\EM\n\+      \\EOTlazy\CAN\ENQ \SOH(\b:\ENQfalseR\EOTlazy\DC2.\n\+      \\SIunverified_lazy\CAN\SI \SOH(\b:\ENQfalseR\SOunverifiedLazy\DC2%\n\+      \\n\+      \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2\EM\n\+      \\EOTweak\CAN\n\+      \ \SOH(\b:\ENQfalseR\EOTweak\DC2(\n\+      \\fdebug_redact\CAN\DLE \SOH(\b:\ENQfalseR\vdebugRedact\DC2K\n\+      \\tretention\CAN\DC1 \SOH(\SO2-.google.protobuf.FieldOptions.OptionRetentionR\tretention\DC2H\n\+      \\atargets\CAN\DC3 \ETX(\SO2..google.protobuf.FieldOptions.OptionTargetTypeR\atargets\DC2W\n\+      \\DLEedition_defaults\CAN\DC4 \ETX(\v2,.google.protobuf.FieldOptions.EditionDefaultR\SIeditionDefaults\DC27\n\+      \\bfeatures\CAN\NAK \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2U\n\+      \\SIfeature_support\CAN\SYN \SOH(\v2,.google.protobuf.FieldOptions.FeatureSupportR\SOfeatureSupport\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\SUBZ\n\+      \\SOEditionDefault\DC22\n\+      \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2\DC4\n\+      \\ENQvalue\CAN\STX \SOH(\tR\ENQvalue\SUB\150\STX\n\+      \\SOFeatureSupport\DC2G\n\+      \\DC2edition_introduced\CAN\SOH \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionIntroduced\DC2G\n\+      \\DC2edition_deprecated\CAN\STX \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionDeprecated\DC2/\n\+      \\DC3deprecation_warning\CAN\ETX \SOH(\tR\DC2deprecationWarning\DC2A\n\+      \\SIedition_removed\CAN\EOT \SOH(\SO2\CAN.google.protobuf.EditionR\SOeditionRemoved\"/\n\+      \\ENQCType\DC2\n\+      \\n\+      \\ACKSTRING\DLE\NUL\DC2\b\n\+      \\EOTCORD\DLE\SOH\DC2\DLE\n\+      \\fSTRING_PIECE\DLE\STX\"5\n\+      \\ACKJSType\DC2\r\n\+      \\tJS_NORMAL\DLE\NUL\DC2\r\n\+      \\tJS_STRING\DLE\SOH\DC2\r\n\+      \\tJS_NUMBER\DLE\STX\"U\n\+      \\SIOptionRetention\DC2\NAK\n\+      \\DC1RETENTION_UNKNOWN\DLE\NUL\DC2\NAK\n\+      \\DC1RETENTION_RUNTIME\DLE\SOH\DC2\DC4\n\+      \\DLERETENTION_SOURCE\DLE\STX\"\140\STX\n\+      \\DLEOptionTargetType\DC2\ETB\n\+      \\DC3TARGET_TYPE_UNKNOWN\DLE\NUL\DC2\DC4\n\+      \\DLETARGET_TYPE_FILE\DLE\SOH\DC2\US\n\+      \\ESCTARGET_TYPE_EXTENSION_RANGE\DLE\STX\DC2\ETB\n\+      \\DC3TARGET_TYPE_MESSAGE\DLE\ETX\DC2\NAK\n\+      \\DC1TARGET_TYPE_FIELD\DLE\EOT\DC2\NAK\n\+      \\DC1TARGET_TYPE_ONEOF\DLE\ENQ\DC2\DC4\n\+      \\DLETARGET_TYPE_ENUM\DLE\ACK\DC2\SUB\n\+      \\SYNTARGET_TYPE_ENUM_ENTRY\DLE\a\DC2\ETB\n\+      \\DC3TARGET_TYPE_SERVICE\DLE\b\DC2\SYN\n\+      \\DC2TARGET_TYPE_METHOD\DLE\t*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\EOT\DLE\ENQJ\EOT\b\DC2\DLE\DC3"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        ctype__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "ctype"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'CType)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'ctype")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        packed__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "packed"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'packed")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        jstype__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "jstype"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'JSType)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'jstype")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        lazy__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "lazy"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'lazy")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        unverifiedLazy__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "unverified_lazy"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'unverifiedLazy")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        weak__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "weak"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'weak")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        debugRedact__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "debug_redact"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'debugRedact")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        retention__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "retention"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'OptionRetention)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'retention")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        targets__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "targets"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'OptionTargetType)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"targets")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        editionDefaults__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition_defaults"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'EditionDefault)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"editionDefaults")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        featureSupport__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "feature_support"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldOptions'FeatureSupport)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'featureSupport")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, ctype__field_descriptor),+           (Data.ProtoLens.Tag 2, packed__field_descriptor),+           (Data.ProtoLens.Tag 6, jstype__field_descriptor),+           (Data.ProtoLens.Tag 5, lazy__field_descriptor),+           (Data.ProtoLens.Tag 15, unverifiedLazy__field_descriptor),+           (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 10, weak__field_descriptor),+           (Data.ProtoLens.Tag 16, debugRedact__field_descriptor),+           (Data.ProtoLens.Tag 17, retention__field_descriptor),+           (Data.ProtoLens.Tag 19, targets__field_descriptor),+           (Data.ProtoLens.Tag 20, editionDefaults__field_descriptor),+           (Data.ProtoLens.Tag 21, features__field_descriptor),+           (Data.ProtoLens.Tag 22, featureSupport__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FieldOptions'_unknownFields+        (\ x__ y__ -> x__ {_FieldOptions'_unknownFields = y__})+  defMessage+    = FieldOptions'_constructor+        {_FieldOptions'ctype = Prelude.Nothing,+         _FieldOptions'packed = Prelude.Nothing,+         _FieldOptions'jstype = Prelude.Nothing,+         _FieldOptions'lazy = Prelude.Nothing,+         _FieldOptions'unverifiedLazy = Prelude.Nothing,+         _FieldOptions'deprecated = Prelude.Nothing,+         _FieldOptions'weak = Prelude.Nothing,+         _FieldOptions'debugRedact = Prelude.Nothing,+         _FieldOptions'retention = Prelude.Nothing,+         _FieldOptions'targets = Data.Vector.Generic.empty,+         _FieldOptions'editionDefaults = Data.Vector.Generic.empty,+         _FieldOptions'features = Prelude.Nothing,+         _FieldOptions'featureSupport = Prelude.Nothing,+         _FieldOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _FieldOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FieldOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldOptions'EditionDefault+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldOptions'OptionTargetType+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+                   -> Data.ProtoLens.Encoding.Bytes.Parser FieldOptions+        loop+          x+          mutable'editionDefaults+          mutable'targets+          mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'editionDefaults <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                  (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                     mutable'editionDefaults)+                      frozen'targets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                             mutable'targets)+                      frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'editionDefaults")+                              frozen'editionDefaults+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'targets")+                                 frozen'targets+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                                    frozen'uninterpretedOption+                                    x))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "ctype"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"ctype") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "packed"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"packed") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "jstype"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"jstype") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "lazy"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"lazy") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        120+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "unverified_lazy"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"unverifiedLazy") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        80+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "weak"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"weak") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        128+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "debug_redact"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"debugRedact") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        136+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "retention"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"retention") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        152+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.toEnum+                                           (Prelude.fmap+                                              Prelude.fromIntegral+                                              Data.ProtoLens.Encoding.Bytes.getVarInt))+                                        "targets"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'targets y)+                                loop x mutable'editionDefaults v mutable'uninterpretedOption+                        154+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.toEnum+                                                                       (Prelude.fmap+                                                                          Prelude.fromIntegral+                                                                          Data.ProtoLens.Encoding.Bytes.getVarInt))+                                                                    "targets"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'targets)+                                loop x mutable'editionDefaults y mutable'uninterpretedOption+                        162+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "edition_defaults"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'editionDefaults y)+                                loop x v mutable'targets mutable'uninterpretedOption+                        170+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        178+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "feature_support"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"featureSupport") y x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x mutable'editionDefaults mutable'targets v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'editionDefaults+                                  mutable'targets+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'editionDefaults <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                           Data.ProtoLens.Encoding.Growing.new+              mutable'targets <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                   Data.ProtoLens.Encoding.Growing.new+              mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'editionDefaults+                mutable'targets+                mutable'uninterpretedOption)+          "FieldOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'ctype") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                          Prelude.fromEnum+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'packed") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt+                             (\ b -> if b then 1 else 0)+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'jstype") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+                             ((Prelude..)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                Prelude.fromEnum+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'lazy") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt+                                   (\ b -> if b then 1 else 0)+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'unverifiedLazy") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 120)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (\ b -> if b then 1 else 0)+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view+                                   (Data.ProtoLens.Field.field @"maybe'deprecated") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                                      ((Prelude..)+                                         Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (\ b -> if b then 1 else 0)+                                         _v))+                            ((Data.Monoid.<>)+                               (case+                                    Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'weak") _x+                                of+                                  Prelude.Nothing -> Data.Monoid.mempty+                                  (Prelude.Just _v)+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+                                         ((Prelude..)+                                            Data.ProtoLens.Encoding.Bytes.putVarInt+                                            (\ b -> if b then 1 else 0)+                                            _v))+                               ((Data.Monoid.<>)+                                  (case+                                       Lens.Family2.view+                                         (Data.ProtoLens.Field.field @"maybe'debugRedact") _x+                                   of+                                     Prelude.Nothing -> Data.Monoid.mempty+                                     (Prelude.Just _v)+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 128)+                                            ((Prelude..)+                                               Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (\ b -> if b then 1 else 0)+                                               _v))+                                  ((Data.Monoid.<>)+                                     (case+                                          Lens.Family2.view+                                            (Data.ProtoLens.Field.field @"maybe'retention") _x+                                      of+                                        Prelude.Nothing -> Data.Monoid.mempty+                                        (Prelude.Just _v)+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 136)+                                               ((Prelude..)+                                                  ((Prelude..)+                                                     Data.ProtoLens.Encoding.Bytes.putVarInt+                                                     Prelude.fromIntegral)+                                                  Prelude.fromEnum+                                                  _v))+                                     ((Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                           (\ _v+                                              -> (Data.Monoid.<>)+                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 152)+                                                   ((Prelude..)+                                                      ((Prelude..)+                                                         Data.ProtoLens.Encoding.Bytes.putVarInt+                                                         Prelude.fromIntegral)+                                                      Prelude.fromEnum+                                                      _v))+                                           (Lens.Family2.view+                                              (Data.ProtoLens.Field.field @"vec'targets") _x))+                                        ((Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                              (\ _v+                                                 -> (Data.Monoid.<>)+                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 162)+                                                      ((Prelude..)+                                                         (\ bs+                                                            -> (Data.Monoid.<>)+                                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                    (Prelude.fromIntegral+                                                                       (Data.ByteString.length bs)))+                                                                 (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                    bs))+                                                         Data.ProtoLens.encodeMessage+                                                         _v))+                                              (Lens.Family2.view+                                                 (Data.ProtoLens.Field.field @"vec'editionDefaults")+                                                 _x))+                                           ((Data.Monoid.<>)+                                              (case+                                                   Lens.Family2.view+                                                     (Data.ProtoLens.Field.field @"maybe'features")+                                                     _x+                                               of+                                                 Prelude.Nothing -> Data.Monoid.mempty+                                                 (Prelude.Just _v)+                                                   -> (Data.Monoid.<>)+                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                           170)+                                                        ((Prelude..)+                                                           (\ bs+                                                              -> (Data.Monoid.<>)+                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                      (Prelude.fromIntegral+                                                                         (Data.ByteString.length+                                                                            bs)))+                                                                   (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                      bs))+                                                           Data.ProtoLens.encodeMessage+                                                           _v))+                                              ((Data.Monoid.<>)+                                                 (case+                                                      Lens.Family2.view+                                                        (Data.ProtoLens.Field.field+                                                           @"maybe'featureSupport")+                                                        _x+                                                  of+                                                    Prelude.Nothing -> Data.Monoid.mempty+                                                    (Prelude.Just _v)+                                                      -> (Data.Monoid.<>)+                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                              178)+                                                           ((Prelude..)+                                                              (\ bs+                                                                 -> (Data.Monoid.<>)+                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                         (Prelude.fromIntegral+                                                                            (Data.ByteString.length+                                                                               bs)))+                                                                      (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                         bs))+                                                              Data.ProtoLens.encodeMessage+                                                              _v))+                                                 ((Data.Monoid.<>)+                                                    (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                                       (\ _v+                                                          -> (Data.Monoid.<>)+                                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                  7994)+                                                               ((Prelude..)+                                                                  (\ bs+                                                                     -> (Data.Monoid.<>)+                                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                             (Prelude.fromIntegral+                                                                                (Data.ByteString.length+                                                                                   bs)))+                                                                          (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                             bs))+                                                                  Data.ProtoLens.encodeMessage+                                                                  _v))+                                                       (Lens.Family2.view+                                                          (Data.ProtoLens.Field.field+                                                             @"vec'uninterpretedOption")+                                                          _x))+                                                    (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                                       (Lens.Family2.view+                                                          Data.ProtoLens.unknownFields+                                                          _x)))))))))))))))+instance Control.DeepSeq.NFData FieldOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FieldOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FieldOptions'ctype x__)+                (Control.DeepSeq.deepseq+                   (_FieldOptions'packed x__)+                   (Control.DeepSeq.deepseq+                      (_FieldOptions'jstype x__)+                      (Control.DeepSeq.deepseq+                         (_FieldOptions'lazy x__)+                         (Control.DeepSeq.deepseq+                            (_FieldOptions'unverifiedLazy x__)+                            (Control.DeepSeq.deepseq+                               (_FieldOptions'deprecated x__)+                               (Control.DeepSeq.deepseq+                                  (_FieldOptions'weak x__)+                                  (Control.DeepSeq.deepseq+                                     (_FieldOptions'debugRedact x__)+                                     (Control.DeepSeq.deepseq+                                        (_FieldOptions'retention x__)+                                        (Control.DeepSeq.deepseq+                                           (_FieldOptions'targets x__)+                                           (Control.DeepSeq.deepseq+                                              (_FieldOptions'editionDefaults x__)+                                              (Control.DeepSeq.deepseq+                                                 (_FieldOptions'features x__)+                                                 (Control.DeepSeq.deepseq+                                                    (_FieldOptions'featureSupport x__)+                                                    (Control.DeepSeq.deepseq+                                                       (_FieldOptions'uninterpretedOption x__)+                                                       ()))))))))))))))+data FieldOptions'CType+  = FieldOptions'STRING |+    FieldOptions'CORD |+    FieldOptions'STRING_PIECE+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'CType where+  maybeToEnum 0 = Prelude.Just FieldOptions'STRING+  maybeToEnum 1 = Prelude.Just FieldOptions'CORD+  maybeToEnum 2 = Prelude.Just FieldOptions'STRING_PIECE+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldOptions'STRING = "STRING"+  showEnum FieldOptions'CORD = "CORD"+  showEnum FieldOptions'STRING_PIECE = "STRING_PIECE"+  readEnum k+    | (Prelude.==) k "STRING" = Prelude.Just FieldOptions'STRING+    | (Prelude.==) k "CORD" = Prelude.Just FieldOptions'CORD+    | (Prelude.==) k "STRING_PIECE"+    = Prelude.Just FieldOptions'STRING_PIECE+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'CType where+  minBound = FieldOptions'STRING+  maxBound = FieldOptions'STRING_PIECE+instance Prelude.Enum FieldOptions'CType where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum CType: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldOptions'STRING = 0+  fromEnum FieldOptions'CORD = 1+  fromEnum FieldOptions'STRING_PIECE = 2+  succ FieldOptions'STRING_PIECE+    = Prelude.error+        "FieldOptions'CType.succ: bad argument FieldOptions'STRING_PIECE. This value would be out of bounds."+  succ FieldOptions'STRING = FieldOptions'CORD+  succ FieldOptions'CORD = FieldOptions'STRING_PIECE+  pred FieldOptions'STRING+    = Prelude.error+        "FieldOptions'CType.pred: bad argument FieldOptions'STRING. This value would be out of bounds."+  pred FieldOptions'CORD = FieldOptions'STRING+  pred FieldOptions'STRING_PIECE = FieldOptions'CORD+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'CType where+  fieldDefault = FieldOptions'STRING+instance Control.DeepSeq.NFData FieldOptions'CType where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.edition' @:: Lens' FieldOptions'EditionDefault Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'edition' @:: Lens' FieldOptions'EditionDefault (Prelude.Maybe Edition)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.value' @:: Lens' FieldOptions'EditionDefault Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'value' @:: Lens' FieldOptions'EditionDefault (Prelude.Maybe Data.Text.Text)@ -}+data FieldOptions'EditionDefault+  = FieldOptions'EditionDefault'_constructor {_FieldOptions'EditionDefault'edition :: !(Prelude.Maybe Edition),+                                              _FieldOptions'EditionDefault'value :: !(Prelude.Maybe Data.Text.Text),+                                              _FieldOptions'EditionDefault'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldOptions'EditionDefault where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldOptions'EditionDefault "edition" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'EditionDefault'edition+           (\ x__ y__ -> x__ {_FieldOptions'EditionDefault'edition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'EditionDefault "maybe'edition" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'EditionDefault'edition+           (\ x__ y__ -> x__ {_FieldOptions'EditionDefault'edition = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions'EditionDefault "value" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'EditionDefault'value+           (\ x__ y__ -> x__ {_FieldOptions'EditionDefault'value = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'EditionDefault "maybe'value" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'EditionDefault'value+           (\ x__ y__ -> x__ {_FieldOptions'EditionDefault'value = y__}))+        Prelude.id+instance Data.ProtoLens.Message FieldOptions'EditionDefault where+  messageName _+    = Data.Text.pack "google.protobuf.FieldOptions.EditionDefault"+  packedMessageDescriptor _+    = "\n\+      \\SOEditionDefault\DC22\n\+      \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2\DC4\n\+      \\ENQvalue\CAN\STX \SOH(\tR\ENQvalue"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        edition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'edition")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'EditionDefault+        value__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'value")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'EditionDefault+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 3, edition__field_descriptor),+           (Data.ProtoLens.Tag 2, value__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FieldOptions'EditionDefault'_unknownFields+        (\ x__ y__+           -> x__ {_FieldOptions'EditionDefault'_unknownFields = y__})+  defMessage+    = FieldOptions'EditionDefault'_constructor+        {_FieldOptions'EditionDefault'edition = Prelude.Nothing,+         _FieldOptions'EditionDefault'value = Prelude.Nothing,+         _FieldOptions'EditionDefault'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FieldOptions'EditionDefault+          -> Data.ProtoLens.Encoding.Bytes.Parser FieldOptions'EditionDefault+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"edition") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "value"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"value") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "EditionDefault"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'edition") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                       ((Prelude..)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                          Prelude.fromEnum+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'value") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData FieldOptions'EditionDefault where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FieldOptions'EditionDefault'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FieldOptions'EditionDefault'edition x__)+                (Control.DeepSeq.deepseq+                   (_FieldOptions'EditionDefault'value x__) ()))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.editionIntroduced' @:: Lens' FieldOptions'FeatureSupport Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'editionIntroduced' @:: Lens' FieldOptions'FeatureSupport (Prelude.Maybe Edition)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.editionDeprecated' @:: Lens' FieldOptions'FeatureSupport Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'editionDeprecated' @:: Lens' FieldOptions'FeatureSupport (Prelude.Maybe Edition)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecationWarning' @:: Lens' FieldOptions'FeatureSupport Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecationWarning' @:: Lens' FieldOptions'FeatureSupport (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.editionRemoved' @:: Lens' FieldOptions'FeatureSupport Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'editionRemoved' @:: Lens' FieldOptions'FeatureSupport (Prelude.Maybe Edition)@ -}+data FieldOptions'FeatureSupport+  = FieldOptions'FeatureSupport'_constructor {_FieldOptions'FeatureSupport'editionIntroduced :: !(Prelude.Maybe Edition),+                                              _FieldOptions'FeatureSupport'editionDeprecated :: !(Prelude.Maybe Edition),+                                              _FieldOptions'FeatureSupport'deprecationWarning :: !(Prelude.Maybe Data.Text.Text),+                                              _FieldOptions'FeatureSupport'editionRemoved :: !(Prelude.Maybe Edition),+                                              _FieldOptions'FeatureSupport'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldOptions'FeatureSupport where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "editionIntroduced" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionIntroduced+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionIntroduced = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "maybe'editionIntroduced" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionIntroduced+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionIntroduced = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "editionDeprecated" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionDeprecated+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionDeprecated = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "maybe'editionDeprecated" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionDeprecated+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionDeprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "deprecationWarning" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'deprecationWarning+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'deprecationWarning = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "maybe'deprecationWarning" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'deprecationWarning+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'deprecationWarning = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "editionRemoved" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionRemoved+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionRemoved = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions'FeatureSupport "maybe'editionRemoved" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FieldOptions'FeatureSupport'editionRemoved+           (\ x__ y__+              -> x__ {_FieldOptions'FeatureSupport'editionRemoved = y__}))+        Prelude.id+instance Data.ProtoLens.Message FieldOptions'FeatureSupport where+  messageName _+    = Data.Text.pack "google.protobuf.FieldOptions.FeatureSupport"+  packedMessageDescriptor _+    = "\n\+      \\SOFeatureSupport\DC2G\n\+      \\DC2edition_introduced\CAN\SOH \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionIntroduced\DC2G\n\+      \\DC2edition_deprecated\CAN\STX \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionDeprecated\DC2/\n\+      \\DC3deprecation_warning\CAN\ETX \SOH(\tR\DC2deprecationWarning\DC2A\n\+      \\SIedition_removed\CAN\EOT \SOH(\SO2\CAN.google.protobuf.EditionR\SOeditionRemoved"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        editionIntroduced__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition_introduced"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'editionIntroduced")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'FeatureSupport+        editionDeprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition_deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'editionDeprecated")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'FeatureSupport+        deprecationWarning__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecation_warning"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecationWarning")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'FeatureSupport+        editionRemoved__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition_removed"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'editionRemoved")) ::+              Data.ProtoLens.FieldDescriptor FieldOptions'FeatureSupport+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, editionIntroduced__field_descriptor),+           (Data.ProtoLens.Tag 2, editionDeprecated__field_descriptor),+           (Data.ProtoLens.Tag 3, deprecationWarning__field_descriptor),+           (Data.ProtoLens.Tag 4, editionRemoved__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FieldOptions'FeatureSupport'_unknownFields+        (\ x__ y__+           -> x__ {_FieldOptions'FeatureSupport'_unknownFields = y__})+  defMessage+    = FieldOptions'FeatureSupport'_constructor+        {_FieldOptions'FeatureSupport'editionIntroduced = Prelude.Nothing,+         _FieldOptions'FeatureSupport'editionDeprecated = Prelude.Nothing,+         _FieldOptions'FeatureSupport'deprecationWarning = Prelude.Nothing,+         _FieldOptions'FeatureSupport'editionRemoved = Prelude.Nothing,+         _FieldOptions'FeatureSupport'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FieldOptions'FeatureSupport+          -> Data.ProtoLens.Encoding.Bytes.Parser FieldOptions'FeatureSupport+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition_introduced"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"editionIntroduced") y x)+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition_deprecated"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"editionDeprecated") y x)+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "deprecation_warning"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"deprecationWarning") y x)+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition_removed"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"editionRemoved") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "FeatureSupport"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'editionIntroduced") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                          Prelude.fromEnum+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'editionDeprecated") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                             Prelude.fromEnum+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'deprecationWarning") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.Text.Encoding.encodeUtf8+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'editionRemoved") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                                ((Prelude..)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                   Prelude.fromEnum+                                   _v))+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData FieldOptions'FeatureSupport where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FieldOptions'FeatureSupport'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FieldOptions'FeatureSupport'editionIntroduced x__)+                (Control.DeepSeq.deepseq+                   (_FieldOptions'FeatureSupport'editionDeprecated x__)+                   (Control.DeepSeq.deepseq+                      (_FieldOptions'FeatureSupport'deprecationWarning x__)+                      (Control.DeepSeq.deepseq+                         (_FieldOptions'FeatureSupport'editionRemoved x__) ()))))+data FieldOptions'JSType+  = FieldOptions'JS_NORMAL |+    FieldOptions'JS_STRING |+    FieldOptions'JS_NUMBER+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'JSType where+  maybeToEnum 0 = Prelude.Just FieldOptions'JS_NORMAL+  maybeToEnum 1 = Prelude.Just FieldOptions'JS_STRING+  maybeToEnum 2 = Prelude.Just FieldOptions'JS_NUMBER+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldOptions'JS_NORMAL = "JS_NORMAL"+  showEnum FieldOptions'JS_STRING = "JS_STRING"+  showEnum FieldOptions'JS_NUMBER = "JS_NUMBER"+  readEnum k+    | (Prelude.==) k "JS_NORMAL" = Prelude.Just FieldOptions'JS_NORMAL+    | (Prelude.==) k "JS_STRING" = Prelude.Just FieldOptions'JS_STRING+    | (Prelude.==) k "JS_NUMBER" = Prelude.Just FieldOptions'JS_NUMBER+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'JSType where+  minBound = FieldOptions'JS_NORMAL+  maxBound = FieldOptions'JS_NUMBER+instance Prelude.Enum FieldOptions'JSType where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum JSType: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldOptions'JS_NORMAL = 0+  fromEnum FieldOptions'JS_STRING = 1+  fromEnum FieldOptions'JS_NUMBER = 2+  succ FieldOptions'JS_NUMBER+    = Prelude.error+        "FieldOptions'JSType.succ: bad argument FieldOptions'JS_NUMBER. This value would be out of bounds."+  succ FieldOptions'JS_NORMAL = FieldOptions'JS_STRING+  succ FieldOptions'JS_STRING = FieldOptions'JS_NUMBER+  pred FieldOptions'JS_NORMAL+    = Prelude.error+        "FieldOptions'JSType.pred: bad argument FieldOptions'JS_NORMAL. This value would be out of bounds."+  pred FieldOptions'JS_STRING = FieldOptions'JS_NORMAL+  pred FieldOptions'JS_NUMBER = FieldOptions'JS_STRING+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'JSType where+  fieldDefault = FieldOptions'JS_NORMAL+instance Control.DeepSeq.NFData FieldOptions'JSType where+  rnf x__ = Prelude.seq x__ ()+data FieldOptions'OptionRetention+  = FieldOptions'RETENTION_UNKNOWN |+    FieldOptions'RETENTION_RUNTIME |+    FieldOptions'RETENTION_SOURCE+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'OptionRetention where+  maybeToEnum 0 = Prelude.Just FieldOptions'RETENTION_UNKNOWN+  maybeToEnum 1 = Prelude.Just FieldOptions'RETENTION_RUNTIME+  maybeToEnum 2 = Prelude.Just FieldOptions'RETENTION_SOURCE+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldOptions'RETENTION_UNKNOWN = "RETENTION_UNKNOWN"+  showEnum FieldOptions'RETENTION_RUNTIME = "RETENTION_RUNTIME"+  showEnum FieldOptions'RETENTION_SOURCE = "RETENTION_SOURCE"+  readEnum k+    | (Prelude.==) k "RETENTION_UNKNOWN"+    = Prelude.Just FieldOptions'RETENTION_UNKNOWN+    | (Prelude.==) k "RETENTION_RUNTIME"+    = Prelude.Just FieldOptions'RETENTION_RUNTIME+    | (Prelude.==) k "RETENTION_SOURCE"+    = Prelude.Just FieldOptions'RETENTION_SOURCE+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'OptionRetention where+  minBound = FieldOptions'RETENTION_UNKNOWN+  maxBound = FieldOptions'RETENTION_SOURCE+instance Prelude.Enum FieldOptions'OptionRetention where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum OptionRetention: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldOptions'RETENTION_UNKNOWN = 0+  fromEnum FieldOptions'RETENTION_RUNTIME = 1+  fromEnum FieldOptions'RETENTION_SOURCE = 2+  succ FieldOptions'RETENTION_SOURCE+    = Prelude.error+        "FieldOptions'OptionRetention.succ: bad argument FieldOptions'RETENTION_SOURCE. This value would be out of bounds."+  succ FieldOptions'RETENTION_UNKNOWN+    = FieldOptions'RETENTION_RUNTIME+  succ FieldOptions'RETENTION_RUNTIME = FieldOptions'RETENTION_SOURCE+  pred FieldOptions'RETENTION_UNKNOWN+    = Prelude.error+        "FieldOptions'OptionRetention.pred: bad argument FieldOptions'RETENTION_UNKNOWN. This value would be out of bounds."+  pred FieldOptions'RETENTION_RUNTIME+    = FieldOptions'RETENTION_UNKNOWN+  pred FieldOptions'RETENTION_SOURCE = FieldOptions'RETENTION_RUNTIME+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'OptionRetention where+  fieldDefault = FieldOptions'RETENTION_UNKNOWN+instance Control.DeepSeq.NFData FieldOptions'OptionRetention where+  rnf x__ = Prelude.seq x__ ()+data FieldOptions'OptionTargetType+  = FieldOptions'TARGET_TYPE_UNKNOWN |+    FieldOptions'TARGET_TYPE_FILE |+    FieldOptions'TARGET_TYPE_EXTENSION_RANGE |+    FieldOptions'TARGET_TYPE_MESSAGE |+    FieldOptions'TARGET_TYPE_FIELD |+    FieldOptions'TARGET_TYPE_ONEOF |+    FieldOptions'TARGET_TYPE_ENUM |+    FieldOptions'TARGET_TYPE_ENUM_ENTRY |+    FieldOptions'TARGET_TYPE_SERVICE |+    FieldOptions'TARGET_TYPE_METHOD+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'OptionTargetType where+  maybeToEnum 0 = Prelude.Just FieldOptions'TARGET_TYPE_UNKNOWN+  maybeToEnum 1 = Prelude.Just FieldOptions'TARGET_TYPE_FILE+  maybeToEnum 2+    = Prelude.Just FieldOptions'TARGET_TYPE_EXTENSION_RANGE+  maybeToEnum 3 = Prelude.Just FieldOptions'TARGET_TYPE_MESSAGE+  maybeToEnum 4 = Prelude.Just FieldOptions'TARGET_TYPE_FIELD+  maybeToEnum 5 = Prelude.Just FieldOptions'TARGET_TYPE_ONEOF+  maybeToEnum 6 = Prelude.Just FieldOptions'TARGET_TYPE_ENUM+  maybeToEnum 7 = Prelude.Just FieldOptions'TARGET_TYPE_ENUM_ENTRY+  maybeToEnum 8 = Prelude.Just FieldOptions'TARGET_TYPE_SERVICE+  maybeToEnum 9 = Prelude.Just FieldOptions'TARGET_TYPE_METHOD+  maybeToEnum _ = Prelude.Nothing+  showEnum FieldOptions'TARGET_TYPE_UNKNOWN = "TARGET_TYPE_UNKNOWN"+  showEnum FieldOptions'TARGET_TYPE_FILE = "TARGET_TYPE_FILE"+  showEnum FieldOptions'TARGET_TYPE_EXTENSION_RANGE+    = "TARGET_TYPE_EXTENSION_RANGE"+  showEnum FieldOptions'TARGET_TYPE_MESSAGE = "TARGET_TYPE_MESSAGE"+  showEnum FieldOptions'TARGET_TYPE_FIELD = "TARGET_TYPE_FIELD"+  showEnum FieldOptions'TARGET_TYPE_ONEOF = "TARGET_TYPE_ONEOF"+  showEnum FieldOptions'TARGET_TYPE_ENUM = "TARGET_TYPE_ENUM"+  showEnum FieldOptions'TARGET_TYPE_ENUM_ENTRY+    = "TARGET_TYPE_ENUM_ENTRY"+  showEnum FieldOptions'TARGET_TYPE_SERVICE = "TARGET_TYPE_SERVICE"+  showEnum FieldOptions'TARGET_TYPE_METHOD = "TARGET_TYPE_METHOD"+  readEnum k+    | (Prelude.==) k "TARGET_TYPE_UNKNOWN"+    = Prelude.Just FieldOptions'TARGET_TYPE_UNKNOWN+    | (Prelude.==) k "TARGET_TYPE_FILE"+    = Prelude.Just FieldOptions'TARGET_TYPE_FILE+    | (Prelude.==) k "TARGET_TYPE_EXTENSION_RANGE"+    = Prelude.Just FieldOptions'TARGET_TYPE_EXTENSION_RANGE+    | (Prelude.==) k "TARGET_TYPE_MESSAGE"+    = Prelude.Just FieldOptions'TARGET_TYPE_MESSAGE+    | (Prelude.==) k "TARGET_TYPE_FIELD"+    = Prelude.Just FieldOptions'TARGET_TYPE_FIELD+    | (Prelude.==) k "TARGET_TYPE_ONEOF"+    = Prelude.Just FieldOptions'TARGET_TYPE_ONEOF+    | (Prelude.==) k "TARGET_TYPE_ENUM"+    = Prelude.Just FieldOptions'TARGET_TYPE_ENUM+    | (Prelude.==) k "TARGET_TYPE_ENUM_ENTRY"+    = Prelude.Just FieldOptions'TARGET_TYPE_ENUM_ENTRY+    | (Prelude.==) k "TARGET_TYPE_SERVICE"+    = Prelude.Just FieldOptions'TARGET_TYPE_SERVICE+    | (Prelude.==) k "TARGET_TYPE_METHOD"+    = Prelude.Just FieldOptions'TARGET_TYPE_METHOD+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'OptionTargetType where+  minBound = FieldOptions'TARGET_TYPE_UNKNOWN+  maxBound = FieldOptions'TARGET_TYPE_METHOD+instance Prelude.Enum FieldOptions'OptionTargetType where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum OptionTargetType: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FieldOptions'TARGET_TYPE_UNKNOWN = 0+  fromEnum FieldOptions'TARGET_TYPE_FILE = 1+  fromEnum FieldOptions'TARGET_TYPE_EXTENSION_RANGE = 2+  fromEnum FieldOptions'TARGET_TYPE_MESSAGE = 3+  fromEnum FieldOptions'TARGET_TYPE_FIELD = 4+  fromEnum FieldOptions'TARGET_TYPE_ONEOF = 5+  fromEnum FieldOptions'TARGET_TYPE_ENUM = 6+  fromEnum FieldOptions'TARGET_TYPE_ENUM_ENTRY = 7+  fromEnum FieldOptions'TARGET_TYPE_SERVICE = 8+  fromEnum FieldOptions'TARGET_TYPE_METHOD = 9+  succ FieldOptions'TARGET_TYPE_METHOD+    = Prelude.error+        "FieldOptions'OptionTargetType.succ: bad argument FieldOptions'TARGET_TYPE_METHOD. This value would be out of bounds."+  succ FieldOptions'TARGET_TYPE_UNKNOWN+    = FieldOptions'TARGET_TYPE_FILE+  succ FieldOptions'TARGET_TYPE_FILE+    = FieldOptions'TARGET_TYPE_EXTENSION_RANGE+  succ FieldOptions'TARGET_TYPE_EXTENSION_RANGE+    = FieldOptions'TARGET_TYPE_MESSAGE+  succ FieldOptions'TARGET_TYPE_MESSAGE+    = FieldOptions'TARGET_TYPE_FIELD+  succ FieldOptions'TARGET_TYPE_FIELD+    = FieldOptions'TARGET_TYPE_ONEOF+  succ FieldOptions'TARGET_TYPE_ONEOF = FieldOptions'TARGET_TYPE_ENUM+  succ FieldOptions'TARGET_TYPE_ENUM+    = FieldOptions'TARGET_TYPE_ENUM_ENTRY+  succ FieldOptions'TARGET_TYPE_ENUM_ENTRY+    = FieldOptions'TARGET_TYPE_SERVICE+  succ FieldOptions'TARGET_TYPE_SERVICE+    = FieldOptions'TARGET_TYPE_METHOD+  pred FieldOptions'TARGET_TYPE_UNKNOWN+    = Prelude.error+        "FieldOptions'OptionTargetType.pred: bad argument FieldOptions'TARGET_TYPE_UNKNOWN. This value would be out of bounds."+  pred FieldOptions'TARGET_TYPE_FILE+    = FieldOptions'TARGET_TYPE_UNKNOWN+  pred FieldOptions'TARGET_TYPE_EXTENSION_RANGE+    = FieldOptions'TARGET_TYPE_FILE+  pred FieldOptions'TARGET_TYPE_MESSAGE+    = FieldOptions'TARGET_TYPE_EXTENSION_RANGE+  pred FieldOptions'TARGET_TYPE_FIELD+    = FieldOptions'TARGET_TYPE_MESSAGE+  pred FieldOptions'TARGET_TYPE_ONEOF+    = FieldOptions'TARGET_TYPE_FIELD+  pred FieldOptions'TARGET_TYPE_ENUM = FieldOptions'TARGET_TYPE_ONEOF+  pred FieldOptions'TARGET_TYPE_ENUM_ENTRY+    = FieldOptions'TARGET_TYPE_ENUM+  pred FieldOptions'TARGET_TYPE_SERVICE+    = FieldOptions'TARGET_TYPE_ENUM_ENTRY+  pred FieldOptions'TARGET_TYPE_METHOD+    = FieldOptions'TARGET_TYPE_SERVICE+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'OptionTargetType where+  fieldDefault = FieldOptions'TARGET_TYPE_UNKNOWN+instance Control.DeepSeq.NFData FieldOptions'OptionTargetType where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' FileDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.package' @:: Lens' FileDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'package' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.dependency' @:: Lens' FileDescriptorProto [Data.Text.Text]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'dependency' @:: Lens' FileDescriptorProto (Data.Vector.Vector Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.publicDependency' @:: Lens' FileDescriptorProto [Data.Int.Int32]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'publicDependency' @:: Lens' FileDescriptorProto (Data.Vector.Unboxed.Vector Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.weakDependency' @:: Lens' FileDescriptorProto [Data.Int.Int32]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'weakDependency' @:: Lens' FileDescriptorProto (Data.Vector.Unboxed.Vector Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.messageType' @:: Lens' FileDescriptorProto [DescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'messageType' @:: Lens' FileDescriptorProto (Data.Vector.Vector DescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.enumType' @:: Lens' FileDescriptorProto [EnumDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'enumType' @:: Lens' FileDescriptorProto (Data.Vector.Vector EnumDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.service' @:: Lens' FileDescriptorProto [ServiceDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'service' @:: Lens' FileDescriptorProto (Data.Vector.Vector ServiceDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.extension' @:: Lens' FileDescriptorProto [FieldDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extension' @:: Lens' FileDescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' FileDescriptorProto FileOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' FileDescriptorProto (Prelude.Maybe FileOptions)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.sourceCodeInfo' @:: Lens' FileDescriptorProto SourceCodeInfo@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'sourceCodeInfo' @:: Lens' FileDescriptorProto (Prelude.Maybe SourceCodeInfo)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.syntax' @:: Lens' FileDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'syntax' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.edition' @:: Lens' FileDescriptorProto Edition@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'edition' @:: Lens' FileDescriptorProto (Prelude.Maybe Edition)@ -}+data FileDescriptorProto+  = FileDescriptorProto'_constructor {_FileDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                      _FileDescriptorProto'package :: !(Prelude.Maybe Data.Text.Text),+                                      _FileDescriptorProto'dependency :: !(Data.Vector.Vector Data.Text.Text),+                                      _FileDescriptorProto'publicDependency :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+                                      _FileDescriptorProto'weakDependency :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+                                      _FileDescriptorProto'messageType :: !(Data.Vector.Vector DescriptorProto),+                                      _FileDescriptorProto'enumType :: !(Data.Vector.Vector EnumDescriptorProto),+                                      _FileDescriptorProto'service :: !(Data.Vector.Vector ServiceDescriptorProto),+                                      _FileDescriptorProto'extension :: !(Data.Vector.Vector FieldDescriptorProto),+                                      _FileDescriptorProto'options :: !(Prelude.Maybe FileOptions),+                                      _FileDescriptorProto'sourceCodeInfo :: !(Prelude.Maybe SourceCodeInfo),+                                      _FileDescriptorProto'syntax :: !(Prelude.Maybe Data.Text.Text),+                                      _FileDescriptorProto'edition :: !(Prelude.Maybe Edition),+                                      _FileDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'name+           (\ x__ y__ -> x__ {_FileDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'name+           (\ x__ y__ -> x__ {_FileDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "package" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'package+           (\ x__ y__ -> x__ {_FileDescriptorProto'package = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'package" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'package+           (\ x__ y__ -> x__ {_FileDescriptorProto'package = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "dependency" [Data.Text.Text] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'dependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'dependency = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'dependency" (Data.Vector.Vector Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'dependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'dependency = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "publicDependency" [Data.Int.Int32] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'publicDependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'publicDependency = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'publicDependency" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'publicDependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'publicDependency = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "weakDependency" [Data.Int.Int32] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'weakDependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'weakDependency = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'weakDependency" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'weakDependency+           (\ x__ y__ -> x__ {_FileDescriptorProto'weakDependency = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "messageType" [DescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'messageType+           (\ x__ y__ -> x__ {_FileDescriptorProto'messageType = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'messageType" (Data.Vector.Vector DescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'messageType+           (\ x__ y__ -> x__ {_FileDescriptorProto'messageType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "enumType" [EnumDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'enumType+           (\ x__ y__ -> x__ {_FileDescriptorProto'enumType = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'enumType" (Data.Vector.Vector EnumDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'enumType+           (\ x__ y__ -> x__ {_FileDescriptorProto'enumType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "service" [ServiceDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'service+           (\ x__ y__ -> x__ {_FileDescriptorProto'service = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'service" (Data.Vector.Vector ServiceDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'service+           (\ x__ y__ -> x__ {_FileDescriptorProto'service = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "extension" [FieldDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'extension+           (\ x__ y__ -> x__ {_FileDescriptorProto'extension = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'extension" (Data.Vector.Vector FieldDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'extension+           (\ x__ y__ -> x__ {_FileDescriptorProto'extension = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "options" FileOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'options+           (\ x__ y__ -> x__ {_FileDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'options" (Prelude.Maybe FileOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'options+           (\ x__ y__ -> x__ {_FileDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "sourceCodeInfo" SourceCodeInfo where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'sourceCodeInfo+           (\ x__ y__ -> x__ {_FileDescriptorProto'sourceCodeInfo = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'sourceCodeInfo" (Prelude.Maybe SourceCodeInfo) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'sourceCodeInfo+           (\ x__ y__ -> x__ {_FileDescriptorProto'sourceCodeInfo = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "syntax" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'syntax+           (\ x__ y__ -> x__ {_FileDescriptorProto'syntax = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'syntax" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'syntax+           (\ x__ y__ -> x__ {_FileDescriptorProto'syntax = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "edition" Edition where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'edition+           (\ x__ y__ -> x__ {_FileDescriptorProto'edition = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'edition" (Prelude.Maybe Edition) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorProto'edition+           (\ x__ y__ -> x__ {_FileDescriptorProto'edition = y__}))+        Prelude.id+instance Data.ProtoLens.Message FileDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.FileDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\DC3FileDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\+      \\apackage\CAN\STX \SOH(\tR\apackage\DC2\RS\n\+      \\n\+      \dependency\CAN\ETX \ETX(\tR\n\+      \dependency\DC2+\n\+      \\DC1public_dependency\CAN\n\+      \ \ETX(\ENQR\DLEpublicDependency\DC2'\n\+      \\SIweak_dependency\CAN\v \ETX(\ENQR\SOweakDependency\DC2C\n\+      \\fmessage_type\CAN\EOT \ETX(\v2 .google.protobuf.DescriptorProtoR\vmessageType\DC2A\n\+      \\tenum_type\CAN\ENQ \ETX(\v2$.google.protobuf.EnumDescriptorProtoR\benumType\DC2A\n\+      \\aservice\CAN\ACK \ETX(\v2'.google.protobuf.ServiceDescriptorProtoR\aservice\DC2C\n\+      \\textension\CAN\a \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\textension\DC26\n\+      \\aoptions\CAN\b \SOH(\v2\FS.google.protobuf.FileOptionsR\aoptions\DC2I\n\+      \\DLEsource_code_info\CAN\t \SOH(\v2\US.google.protobuf.SourceCodeInfoR\SOsourceCodeInfo\DC2\SYN\n\+      \\ACKsyntax\CAN\f \SOH(\tR\ACKsyntax\DC22\n\+      \\aedition\CAN\SO \SOH(\SO2\CAN.google.protobuf.EditionR\aedition"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        package__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "package"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'package")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        dependency__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "dependency"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"dependency")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        publicDependency__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "public_dependency"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"publicDependency")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        weakDependency__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "weak_dependency"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"weakDependency")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        messageType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "message_type"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"messageType")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        enumType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "enum_type"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"enumType")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        service__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "service"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor ServiceDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"service")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        extension__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "extension"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"extension")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FileOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        sourceCodeInfo__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "source_code_info"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'sourceCodeInfo")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        syntax__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "syntax"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'syntax")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+        edition__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "edition"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor Edition)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'edition")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, package__field_descriptor),+           (Data.ProtoLens.Tag 3, dependency__field_descriptor),+           (Data.ProtoLens.Tag 10, publicDependency__field_descriptor),+           (Data.ProtoLens.Tag 11, weakDependency__field_descriptor),+           (Data.ProtoLens.Tag 4, messageType__field_descriptor),+           (Data.ProtoLens.Tag 5, enumType__field_descriptor),+           (Data.ProtoLens.Tag 6, service__field_descriptor),+           (Data.ProtoLens.Tag 7, extension__field_descriptor),+           (Data.ProtoLens.Tag 8, options__field_descriptor),+           (Data.ProtoLens.Tag 9, sourceCodeInfo__field_descriptor),+           (Data.ProtoLens.Tag 12, syntax__field_descriptor),+           (Data.ProtoLens.Tag 14, edition__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FileDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_FileDescriptorProto'_unknownFields = y__})+  defMessage+    = FileDescriptorProto'_constructor+        {_FileDescriptorProto'name = Prelude.Nothing,+         _FileDescriptorProto'package = Prelude.Nothing,+         _FileDescriptorProto'dependency = Data.Vector.Generic.empty,+         _FileDescriptorProto'publicDependency = Data.Vector.Generic.empty,+         _FileDescriptorProto'weakDependency = Data.Vector.Generic.empty,+         _FileDescriptorProto'messageType = Data.Vector.Generic.empty,+         _FileDescriptorProto'enumType = Data.Vector.Generic.empty,+         _FileDescriptorProto'service = Data.Vector.Generic.empty,+         _FileDescriptorProto'extension = Data.Vector.Generic.empty,+         _FileDescriptorProto'options = Prelude.Nothing,+         _FileDescriptorProto'sourceCodeInfo = Prelude.Nothing,+         _FileDescriptorProto'syntax = Prelude.Nothing,+         _FileDescriptorProto'edition = Prelude.Nothing,+         _FileDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FileDescriptorProto+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto+                      -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+                         -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ServiceDescriptorProto+                            -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+                               -> Data.ProtoLens.Encoding.Bytes.Parser FileDescriptorProto+        loop+          x+          mutable'dependency+          mutable'enumType+          mutable'extension+          mutable'messageType+          mutable'publicDependency+          mutable'service+          mutable'weakDependency+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'dependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                mutable'dependency)+                      frozen'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                              mutable'enumType)+                      frozen'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                               mutable'extension)+                      frozen'messageType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                 mutable'messageType)+                      frozen'publicDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                   (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                      mutable'publicDependency)+                      frozen'service <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                             mutable'service)+                      frozen'weakDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                    mutable'weakDependency)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'dependency")+                              frozen'dependency+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'enumType")+                                 frozen'enumType+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'extension")+                                    frozen'extension+                                    (Lens.Family2.set+                                       (Data.ProtoLens.Field.field @"vec'messageType")+                                       frozen'messageType+                                       (Lens.Family2.set+                                          (Data.ProtoLens.Field.field @"vec'publicDependency")+                                          frozen'publicDependency+                                          (Lens.Family2.set+                                             (Data.ProtoLens.Field.field @"vec'service")+                                             frozen'service+                                             (Lens.Family2.set+                                                (Data.ProtoLens.Field.field @"vec'weakDependency")+                                                frozen'weakDependency+                                                x))))))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "package"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"package") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        26+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getText+                                              (Prelude.fromIntegral len))+                                        "dependency"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'dependency y)+                                loop+                                  x+                                  v+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        80+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.fromIntegral+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)+                                        "public_dependency"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'publicDependency y)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  v+                                  mutable'service+                                  mutable'weakDependency+                        82+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.fromIntegral+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)+                                                                    "public_dependency"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'publicDependency)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  y+                                  mutable'service+                                  mutable'weakDependency+                        88+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.fromIntegral+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)+                                        "weak_dependency"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'weakDependency y)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  v+                        90+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.fromIntegral+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)+                                                                    "weak_dependency"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'weakDependency)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  y+                        34+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "message_type"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'messageType y)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  v+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        42+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "enum_type"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'enumType y)+                                loop+                                  x+                                  mutable'dependency+                                  v+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        50+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "service"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'service y)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  v+                                  mutable'weakDependency+                        58+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "extension"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'extension y)+                                loop+                                  x+                                  mutable'dependency+                                  mutable'enumType+                                  v+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        66+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        74+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "source_code_info"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"sourceCodeInfo") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        98+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "syntax"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"syntax") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        112+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "edition"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"edition") y x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'dependency+                                  mutable'enumType+                                  mutable'extension+                                  mutable'messageType+                                  mutable'publicDependency+                                  mutable'service+                                  mutable'weakDependency+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'dependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                      Data.ProtoLens.Encoding.Growing.new+              mutable'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                    Data.ProtoLens.Encoding.Growing.new+              mutable'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                     Data.ProtoLens.Encoding.Growing.new+              mutable'messageType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       Data.ProtoLens.Encoding.Growing.new+              mutable'publicDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                            Data.ProtoLens.Encoding.Growing.new+              mutable'service <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                   Data.ProtoLens.Encoding.Growing.new+              mutable'weakDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                          Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'dependency+                mutable'enumType+                mutable'extension+                mutable'messageType+                mutable'publicDependency+                mutable'service+                mutable'weakDependency)+          "FileDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'package") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                      (\ _v+                         -> (Data.Monoid.<>)+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                              ((Prelude..)+                                 (\ bs+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                 Data.Text.Encoding.encodeUtf8+                                 _v))+                      (Lens.Family2.view+                         (Data.ProtoLens.Field.field @"vec'dependency") _x))+                   ((Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                         (\ _v+                            -> (Data.Monoid.<>)+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+                                 ((Prelude..)+                                    Data.ProtoLens.Encoding.Bytes.putVarInt+                                    Prelude.fromIntegral+                                    _v))+                         (Lens.Family2.view+                            (Data.ProtoLens.Field.field @"vec'publicDependency") _x))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 88)+                                    ((Prelude..)+                                       Data.ProtoLens.Encoding.Bytes.putVarInt+                                       Prelude.fromIntegral+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'weakDependency") _x))+                         ((Data.Monoid.<>)+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                               (\ _v+                                  -> (Data.Monoid.<>)+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                       ((Prelude..)+                                          (\ bs+                                             -> (Data.Monoid.<>)+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                     (Prelude.fromIntegral+                                                        (Data.ByteString.length bs)))+                                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                          Data.ProtoLens.encodeMessage+                                          _v))+                               (Lens.Family2.view+                                  (Data.ProtoLens.Field.field @"vec'messageType") _x))+                            ((Data.Monoid.<>)+                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                  (\ _v+                                     -> (Data.Monoid.<>)+                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+                                          ((Prelude..)+                                             (\ bs+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                        (Prelude.fromIntegral+                                                           (Data.ByteString.length bs)))+                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                             Data.ProtoLens.encodeMessage+                                             _v))+                                  (Lens.Family2.view+                                     (Data.ProtoLens.Field.field @"vec'enumType") _x))+                               ((Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                     (\ _v+                                        -> (Data.Monoid.<>)+                                             (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+                                             ((Prelude..)+                                                (\ bs+                                                   -> (Data.Monoid.<>)+                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                           (Prelude.fromIntegral+                                                              (Data.ByteString.length bs)))+                                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                                Data.ProtoLens.encodeMessage+                                                _v))+                                     (Lens.Family2.view+                                        (Data.ProtoLens.Field.field @"vec'service") _x))+                                  ((Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                        (\ _v+                                           -> (Data.Monoid.<>)+                                                (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+                                                ((Prelude..)+                                                   (\ bs+                                                      -> (Data.Monoid.<>)+                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                              (Prelude.fromIntegral+                                                                 (Data.ByteString.length bs)))+                                                           (Data.ProtoLens.Encoding.Bytes.putBytes+                                                              bs))+                                                   Data.ProtoLens.encodeMessage+                                                   _v))+                                        (Lens.Family2.view+                                           (Data.ProtoLens.Field.field @"vec'extension") _x))+                                     ((Data.Monoid.<>)+                                        (case+                                             Lens.Family2.view+                                               (Data.ProtoLens.Field.field @"maybe'options") _x+                                         of+                                           Prelude.Nothing -> Data.Monoid.mempty+                                           (Prelude.Just _v)+                                             -> (Data.Monoid.<>)+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+                                                  ((Prelude..)+                                                     (\ bs+                                                        -> (Data.Monoid.<>)+                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                (Prelude.fromIntegral+                                                                   (Data.ByteString.length bs)))+                                                             (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                bs))+                                                     Data.ProtoLens.encodeMessage+                                                     _v))+                                        ((Data.Monoid.<>)+                                           (case+                                                Lens.Family2.view+                                                  (Data.ProtoLens.Field.field+                                                     @"maybe'sourceCodeInfo")+                                                  _x+                                            of+                                              Prelude.Nothing -> Data.Monoid.mempty+                                              (Prelude.Just _v)+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 74)+                                                     ((Prelude..)+                                                        (\ bs+                                                           -> (Data.Monoid.<>)+                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                   (Prelude.fromIntegral+                                                                      (Data.ByteString.length bs)))+                                                                (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                   bs))+                                                        Data.ProtoLens.encodeMessage+                                                        _v))+                                           ((Data.Monoid.<>)+                                              (case+                                                   Lens.Family2.view+                                                     (Data.ProtoLens.Field.field @"maybe'syntax") _x+                                               of+                                                 Prelude.Nothing -> Data.Monoid.mempty+                                                 (Prelude.Just _v)+                                                   -> (Data.Monoid.<>)+                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 98)+                                                        ((Prelude..)+                                                           (\ bs+                                                              -> (Data.Monoid.<>)+                                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                      (Prelude.fromIntegral+                                                                         (Data.ByteString.length+                                                                            bs)))+                                                                   (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                      bs))+                                                           Data.Text.Encoding.encodeUtf8+                                                           _v))+                                              ((Data.Monoid.<>)+                                                 (case+                                                      Lens.Family2.view+                                                        (Data.ProtoLens.Field.field+                                                           @"maybe'edition")+                                                        _x+                                                  of+                                                    Prelude.Nothing -> Data.Monoid.mempty+                                                    (Prelude.Just _v)+                                                      -> (Data.Monoid.<>)+                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                              112)+                                                           ((Prelude..)+                                                              ((Prelude..)+                                                                 Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                 Prelude.fromIntegral)+                                                              Prelude.fromEnum+                                                              _v))+                                                 (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                                    (Lens.Family2.view+                                                       Data.ProtoLens.unknownFields _x))))))))))))))+instance Control.DeepSeq.NFData FileDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FileDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FileDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_FileDescriptorProto'package x__)+                   (Control.DeepSeq.deepseq+                      (_FileDescriptorProto'dependency x__)+                      (Control.DeepSeq.deepseq+                         (_FileDescriptorProto'publicDependency x__)+                         (Control.DeepSeq.deepseq+                            (_FileDescriptorProto'weakDependency x__)+                            (Control.DeepSeq.deepseq+                               (_FileDescriptorProto'messageType x__)+                               (Control.DeepSeq.deepseq+                                  (_FileDescriptorProto'enumType x__)+                                  (Control.DeepSeq.deepseq+                                     (_FileDescriptorProto'service x__)+                                     (Control.DeepSeq.deepseq+                                        (_FileDescriptorProto'extension x__)+                                        (Control.DeepSeq.deepseq+                                           (_FileDescriptorProto'options x__)+                                           (Control.DeepSeq.deepseq+                                              (_FileDescriptorProto'sourceCodeInfo x__)+                                              (Control.DeepSeq.deepseq+                                                 (_FileDescriptorProto'syntax x__)+                                                 (Control.DeepSeq.deepseq+                                                    (_FileDescriptorProto'edition x__)+                                                    ())))))))))))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.file' @:: Lens' FileDescriptorSet [FileDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'file' @:: Lens' FileDescriptorSet (Data.Vector.Vector FileDescriptorProto)@ -}+data FileDescriptorSet+  = FileDescriptorSet'_constructor {_FileDescriptorSet'file :: !(Data.Vector.Vector FileDescriptorProto),+                                    _FileDescriptorSet'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileDescriptorSet where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileDescriptorSet "file" [FileDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorSet'file+           (\ x__ y__ -> x__ {_FileDescriptorSet'file = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorSet "vec'file" (Data.Vector.Vector FileDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileDescriptorSet'file+           (\ x__ y__ -> x__ {_FileDescriptorSet'file = y__}))+        Prelude.id+instance Data.ProtoLens.Message FileDescriptorSet where+  messageName _ = Data.Text.pack "google.protobuf.FileDescriptorSet"+  packedMessageDescriptor _+    = "\n\+      \\DC1FileDescriptorSet\DC28\n\+      \\EOTfile\CAN\SOH \ETX(\v2$.google.protobuf.FileDescriptorProtoR\EOTfile"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        file__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "file"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FileDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"file")) ::+              Data.ProtoLens.FieldDescriptor FileDescriptorSet+      in+        Data.Map.fromList [(Data.ProtoLens.Tag 1, file__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FileDescriptorSet'_unknownFields+        (\ x__ y__ -> x__ {_FileDescriptorSet'_unknownFields = y__})+  defMessage+    = FileDescriptorSet'_constructor+        {_FileDescriptorSet'file = Data.Vector.Generic.empty,+         _FileDescriptorSet'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FileDescriptorSet+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FileDescriptorProto+             -> Data.ProtoLens.Encoding.Bytes.Parser FileDescriptorSet+        loop x mutable'file+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'file)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'file") frozen'file x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "file"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'file y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'file+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'file)+          "FileDescriptorSet"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'file") _x))+             (Data.ProtoLens.Encoding.Wire.buildFieldSet+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData FileDescriptorSet where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FileDescriptorSet'_unknownFields x__)+             (Control.DeepSeq.deepseq (_FileDescriptorSet'file x__) ())+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.javaPackage' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.javaOuterClassname' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaOuterClassname' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.javaMultipleFiles' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaMultipleFiles' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.javaGenerateEqualsAndHash' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaGenerateEqualsAndHash' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.javaStringCheckUtf8' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaStringCheckUtf8' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.optimizeFor' @:: Lens' FileOptions FileOptions'OptimizeMode@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'optimizeFor' @:: Lens' FileOptions (Prelude.Maybe FileOptions'OptimizeMode)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.goPackage' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'goPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.ccGenericServices' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ccGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.javaGenericServices' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.pyGenericServices' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'pyGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.ccEnableArenas' @:: Lens' FileOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ccEnableArenas' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.objcClassPrefix' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'objcClassPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.csharpNamespace' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'csharpNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.swiftPrefix' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'swiftPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.phpClassPrefix' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpClassPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.phpNamespace' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.phpMetadataNamespace' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpMetadataNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.rubyPackage' @:: Lens' FileOptions Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'rubyPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' FileOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' FileOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' FileOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' FileOptions (Data.Vector.Vector UninterpretedOption)@ -}+data FileOptions+  = FileOptions'_constructor {_FileOptions'javaPackage :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'javaOuterClassname :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'javaMultipleFiles :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'javaGenerateEqualsAndHash :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'javaStringCheckUtf8 :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'optimizeFor :: !(Prelude.Maybe FileOptions'OptimizeMode),+                              _FileOptions'goPackage :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'ccGenericServices :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'javaGenericServices :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'pyGenericServices :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'ccEnableArenas :: !(Prelude.Maybe Prelude.Bool),+                              _FileOptions'objcClassPrefix :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'csharpNamespace :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'swiftPrefix :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'phpClassPrefix :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'phpNamespace :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'phpMetadataNamespace :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'rubyPackage :: !(Prelude.Maybe Data.Text.Text),+                              _FileOptions'features :: !(Prelude.Maybe FeatureSet),+                              _FileOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                              _FileOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileOptions "javaPackage" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaPackage+           (\ x__ y__ -> x__ {_FileOptions'javaPackage = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaPackage" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaPackage+           (\ x__ y__ -> x__ {_FileOptions'javaPackage = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaOuterClassname" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaOuterClassname+           (\ x__ y__ -> x__ {_FileOptions'javaOuterClassname = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaOuterClassname" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaOuterClassname+           (\ x__ y__ -> x__ {_FileOptions'javaOuterClassname = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaMultipleFiles" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaMultipleFiles+           (\ x__ y__ -> x__ {_FileOptions'javaMultipleFiles = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaMultipleFiles" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaMultipleFiles+           (\ x__ y__ -> x__ {_FileOptions'javaMultipleFiles = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaGenerateEqualsAndHash" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaGenerateEqualsAndHash+           (\ x__ y__ -> x__ {_FileOptions'javaGenerateEqualsAndHash = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaGenerateEqualsAndHash" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaGenerateEqualsAndHash+           (\ x__ y__ -> x__ {_FileOptions'javaGenerateEqualsAndHash = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaStringCheckUtf8" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaStringCheckUtf8+           (\ x__ y__ -> x__ {_FileOptions'javaStringCheckUtf8 = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaStringCheckUtf8" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaStringCheckUtf8+           (\ x__ y__ -> x__ {_FileOptions'javaStringCheckUtf8 = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "optimizeFor" FileOptions'OptimizeMode where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'optimizeFor+           (\ x__ y__ -> x__ {_FileOptions'optimizeFor = y__}))+        (Data.ProtoLens.maybeLens FileOptions'SPEED)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'optimizeFor" (Prelude.Maybe FileOptions'OptimizeMode) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'optimizeFor+           (\ x__ y__ -> x__ {_FileOptions'optimizeFor = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "goPackage" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'goPackage+           (\ x__ y__ -> x__ {_FileOptions'goPackage = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'goPackage" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'goPackage+           (\ x__ y__ -> x__ {_FileOptions'goPackage = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "ccGenericServices" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'ccGenericServices+           (\ x__ y__ -> x__ {_FileOptions'ccGenericServices = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'ccGenericServices" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'ccGenericServices+           (\ x__ y__ -> x__ {_FileOptions'ccGenericServices = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaGenericServices" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaGenericServices+           (\ x__ y__ -> x__ {_FileOptions'javaGenericServices = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaGenericServices" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'javaGenericServices+           (\ x__ y__ -> x__ {_FileOptions'javaGenericServices = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "pyGenericServices" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'pyGenericServices+           (\ x__ y__ -> x__ {_FileOptions'pyGenericServices = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'pyGenericServices" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'pyGenericServices+           (\ x__ y__ -> x__ {_FileOptions'pyGenericServices = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'deprecated+           (\ x__ y__ -> x__ {_FileOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'deprecated+           (\ x__ y__ -> x__ {_FileOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "ccEnableArenas" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'ccEnableArenas+           (\ x__ y__ -> x__ {_FileOptions'ccEnableArenas = y__}))+        (Data.ProtoLens.maybeLens Prelude.True)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'ccEnableArenas" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'ccEnableArenas+           (\ x__ y__ -> x__ {_FileOptions'ccEnableArenas = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "objcClassPrefix" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'objcClassPrefix+           (\ x__ y__ -> x__ {_FileOptions'objcClassPrefix = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'objcClassPrefix" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'objcClassPrefix+           (\ x__ y__ -> x__ {_FileOptions'objcClassPrefix = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "csharpNamespace" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'csharpNamespace+           (\ x__ y__ -> x__ {_FileOptions'csharpNamespace = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'csharpNamespace" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'csharpNamespace+           (\ x__ y__ -> x__ {_FileOptions'csharpNamespace = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "swiftPrefix" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'swiftPrefix+           (\ x__ y__ -> x__ {_FileOptions'swiftPrefix = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'swiftPrefix" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'swiftPrefix+           (\ x__ y__ -> x__ {_FileOptions'swiftPrefix = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpClassPrefix" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpClassPrefix+           (\ x__ y__ -> x__ {_FileOptions'phpClassPrefix = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpClassPrefix" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpClassPrefix+           (\ x__ y__ -> x__ {_FileOptions'phpClassPrefix = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpNamespace" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpNamespace+           (\ x__ y__ -> x__ {_FileOptions'phpNamespace = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpNamespace" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpNamespace+           (\ x__ y__ -> x__ {_FileOptions'phpNamespace = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpMetadataNamespace" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpMetadataNamespace+           (\ x__ y__ -> x__ {_FileOptions'phpMetadataNamespace = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpMetadataNamespace" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'phpMetadataNamespace+           (\ x__ y__ -> x__ {_FileOptions'phpMetadataNamespace = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "rubyPackage" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'rubyPackage+           (\ x__ y__ -> x__ {_FileOptions'rubyPackage = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'rubyPackage" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'rubyPackage+           (\ x__ y__ -> x__ {_FileOptions'rubyPackage = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'features+           (\ x__ y__ -> x__ {_FileOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'features+           (\ x__ y__ -> x__ {_FileOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_FileOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _FileOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_FileOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message FileOptions where+  messageName _ = Data.Text.pack "google.protobuf.FileOptions"+  packedMessageDescriptor _+    = "\n\+      \\vFileOptions\DC2!\n\+      \\fjava_package\CAN\SOH \SOH(\tR\vjavaPackage\DC20\n\+      \\DC4java_outer_classname\CAN\b \SOH(\tR\DC2javaOuterClassname\DC25\n\+      \\DC3java_multiple_files\CAN\n\+      \ \SOH(\b:\ENQfalseR\DC1javaMultipleFiles\DC2D\n\+      \\GSjava_generate_equals_and_hash\CAN\DC4 \SOH(\bR\EMjavaGenerateEqualsAndHashB\STX\CAN\SOH\DC2:\n\+      \\SYNjava_string_check_utf8\CAN\ESC \SOH(\b:\ENQfalseR\DC3javaStringCheckUtf8\DC2S\n\+      \\foptimize_for\CAN\t \SOH(\SO2).google.protobuf.FileOptions.OptimizeMode:\ENQSPEEDR\voptimizeFor\DC2\GS\n\+      \\n\+      \go_package\CAN\v \SOH(\tR\tgoPackage\DC25\n\+      \\DC3cc_generic_services\CAN\DLE \SOH(\b:\ENQfalseR\DC1ccGenericServices\DC29\n\+      \\NAKjava_generic_services\CAN\DC1 \SOH(\b:\ENQfalseR\DC3javaGenericServices\DC25\n\+      \\DC3py_generic_services\CAN\DC2 \SOH(\b:\ENQfalseR\DC1pyGenericServices\DC2%\n\+      \\n\+      \deprecated\CAN\ETB \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2.\n\+      \\DLEcc_enable_arenas\CAN\US \SOH(\b:\EOTtrueR\SOccEnableArenas\DC2*\n\+      \\DC1objc_class_prefix\CAN$ \SOH(\tR\SIobjcClassPrefix\DC2)\n\+      \\DLEcsharp_namespace\CAN% \SOH(\tR\SIcsharpNamespace\DC2!\n\+      \\fswift_prefix\CAN' \SOH(\tR\vswiftPrefix\DC2(\n\+      \\DLEphp_class_prefix\CAN( \SOH(\tR\SOphpClassPrefix\DC2#\n\+      \\rphp_namespace\CAN) \SOH(\tR\fphpNamespace\DC24\n\+      \\SYNphp_metadata_namespace\CAN, \SOH(\tR\DC4phpMetadataNamespace\DC2!\n\+      \\fruby_package\CAN- \SOH(\tR\vrubyPackage\DC27\n\+      \\bfeatures\CAN2 \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\":\n\+      \\fOptimizeMode\DC2\t\n\+      \\ENQSPEED\DLE\SOH\DC2\r\n\+      \\tCODE_SIZE\DLE\STX\DC2\DLE\n\+      \\fLITE_RUNTIME\DLE\ETX*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b*\DLE+J\EOT\b&\DLE'R\DC4php_generic_services"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        javaPackage__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_package"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaPackage")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        javaOuterClassname__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_outer_classname"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaOuterClassname")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        javaMultipleFiles__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_multiple_files"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaMultipleFiles")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        javaGenerateEqualsAndHash__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_generate_equals_and_hash"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        javaStringCheckUtf8__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_string_check_utf8"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        optimizeFor__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "optimize_for"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor FileOptions'OptimizeMode)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'optimizeFor")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        goPackage__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "go_package"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'goPackage")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        ccGenericServices__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "cc_generic_services"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'ccGenericServices")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        javaGenericServices__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "java_generic_services"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'javaGenericServices")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        pyGenericServices__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "py_generic_services"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'pyGenericServices")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        ccEnableArenas__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "cc_enable_arenas"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'ccEnableArenas")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        objcClassPrefix__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "objc_class_prefix"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'objcClassPrefix")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        csharpNamespace__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "csharp_namespace"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'csharpNamespace")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        swiftPrefix__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "swift_prefix"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'swiftPrefix")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        phpClassPrefix__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "php_class_prefix"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'phpClassPrefix")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        phpNamespace__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "php_namespace"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'phpNamespace")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        phpMetadataNamespace__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "php_metadata_namespace"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'phpMetadataNamespace")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        rubyPackage__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "ruby_package"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'rubyPackage")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor FileOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, javaPackage__field_descriptor),+           (Data.ProtoLens.Tag 8, javaOuterClassname__field_descriptor),+           (Data.ProtoLens.Tag 10, javaMultipleFiles__field_descriptor),+           (Data.ProtoLens.Tag 20, +            javaGenerateEqualsAndHash__field_descriptor),+           (Data.ProtoLens.Tag 27, javaStringCheckUtf8__field_descriptor),+           (Data.ProtoLens.Tag 9, optimizeFor__field_descriptor),+           (Data.ProtoLens.Tag 11, goPackage__field_descriptor),+           (Data.ProtoLens.Tag 16, ccGenericServices__field_descriptor),+           (Data.ProtoLens.Tag 17, javaGenericServices__field_descriptor),+           (Data.ProtoLens.Tag 18, pyGenericServices__field_descriptor),+           (Data.ProtoLens.Tag 23, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 31, ccEnableArenas__field_descriptor),+           (Data.ProtoLens.Tag 36, objcClassPrefix__field_descriptor),+           (Data.ProtoLens.Tag 37, csharpNamespace__field_descriptor),+           (Data.ProtoLens.Tag 39, swiftPrefix__field_descriptor),+           (Data.ProtoLens.Tag 40, phpClassPrefix__field_descriptor),+           (Data.ProtoLens.Tag 41, phpNamespace__field_descriptor),+           (Data.ProtoLens.Tag 44, phpMetadataNamespace__field_descriptor),+           (Data.ProtoLens.Tag 45, rubyPackage__field_descriptor),+           (Data.ProtoLens.Tag 50, features__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _FileOptions'_unknownFields+        (\ x__ y__ -> x__ {_FileOptions'_unknownFields = y__})+  defMessage+    = FileOptions'_constructor+        {_FileOptions'javaPackage = Prelude.Nothing,+         _FileOptions'javaOuterClassname = Prelude.Nothing,+         _FileOptions'javaMultipleFiles = Prelude.Nothing,+         _FileOptions'javaGenerateEqualsAndHash = Prelude.Nothing,+         _FileOptions'javaStringCheckUtf8 = Prelude.Nothing,+         _FileOptions'optimizeFor = Prelude.Nothing,+         _FileOptions'goPackage = Prelude.Nothing,+         _FileOptions'ccGenericServices = Prelude.Nothing,+         _FileOptions'javaGenericServices = Prelude.Nothing,+         _FileOptions'pyGenericServices = Prelude.Nothing,+         _FileOptions'deprecated = Prelude.Nothing,+         _FileOptions'ccEnableArenas = Prelude.Nothing,+         _FileOptions'objcClassPrefix = Prelude.Nothing,+         _FileOptions'csharpNamespace = Prelude.Nothing,+         _FileOptions'swiftPrefix = Prelude.Nothing,+         _FileOptions'phpClassPrefix = Prelude.Nothing,+         _FileOptions'phpNamespace = Prelude.Nothing,+         _FileOptions'phpMetadataNamespace = Prelude.Nothing,+         _FileOptions'rubyPackage = Prelude.Nothing,+         _FileOptions'features = Prelude.Nothing,+         _FileOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _FileOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          FileOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser FileOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "java_package"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"javaPackage") y x)+                                  mutable'uninterpretedOption+                        66+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "java_outer_classname"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"javaOuterClassname") y x)+                                  mutable'uninterpretedOption+                        80+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "java_multiple_files"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"javaMultipleFiles") y x)+                                  mutable'uninterpretedOption+                        160+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "java_generate_equals_and_hash"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"javaGenerateEqualsAndHash") y x)+                                  mutable'uninterpretedOption+                        216+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "java_string_check_utf8"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"javaStringCheckUtf8") y x)+                                  mutable'uninterpretedOption+                        72+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "optimize_for"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"optimizeFor") y x)+                                  mutable'uninterpretedOption+                        90+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "go_package"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"goPackage") y x)+                                  mutable'uninterpretedOption+                        128+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "cc_generic_services"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"ccGenericServices") y x)+                                  mutable'uninterpretedOption+                        136+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "java_generic_services"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"javaGenericServices") y x)+                                  mutable'uninterpretedOption+                        144+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "py_generic_services"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"pyGenericServices") y x)+                                  mutable'uninterpretedOption+                        184+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        248+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "cc_enable_arenas"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"ccEnableArenas") y x)+                                  mutable'uninterpretedOption+                        290+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "objc_class_prefix"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"objcClassPrefix") y x)+                                  mutable'uninterpretedOption+                        298+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "csharp_namespace"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"csharpNamespace") y x)+                                  mutable'uninterpretedOption+                        314+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "swift_prefix"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"swiftPrefix") y x)+                                  mutable'uninterpretedOption+                        322+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "php_class_prefix"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"phpClassPrefix") y x)+                                  mutable'uninterpretedOption+                        330+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "php_namespace"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"phpNamespace") y x)+                                  mutable'uninterpretedOption+                        354+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "php_metadata_namespace"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"phpMetadataNamespace") y x)+                                  mutable'uninterpretedOption+                        362+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "ruby_package"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"rubyPackage") y x)+                                  mutable'uninterpretedOption+                        402+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "FileOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'javaPackage") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'javaOuterClassname") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'javaMultipleFiles") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt+                                (\ b -> if b then 1 else 0)+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 160)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt+                                   (\ b -> if b then 1 else 0)+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 216)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (\ b -> if b then 1 else 0)+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view+                                   (Data.ProtoLens.Field.field @"maybe'optimizeFor") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 72)+                                      ((Prelude..)+                                         ((Prelude..)+                                            Data.ProtoLens.Encoding.Bytes.putVarInt+                                            Prelude.fromIntegral)+                                         Prelude.fromEnum+                                         _v))+                            ((Data.Monoid.<>)+                               (case+                                    Lens.Family2.view+                                      (Data.ProtoLens.Field.field @"maybe'goPackage") _x+                                of+                                  Prelude.Nothing -> Data.Monoid.mempty+                                  (Prelude.Just _v)+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 90)+                                         ((Prelude..)+                                            (\ bs+                                               -> (Data.Monoid.<>)+                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                       (Prelude.fromIntegral+                                                          (Data.ByteString.length bs)))+                                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                            Data.Text.Encoding.encodeUtf8+                                            _v))+                               ((Data.Monoid.<>)+                                  (case+                                       Lens.Family2.view+                                         (Data.ProtoLens.Field.field @"maybe'ccGenericServices") _x+                                   of+                                     Prelude.Nothing -> Data.Monoid.mempty+                                     (Prelude.Just _v)+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 128)+                                            ((Prelude..)+                                               Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (\ b -> if b then 1 else 0)+                                               _v))+                                  ((Data.Monoid.<>)+                                     (case+                                          Lens.Family2.view+                                            (Data.ProtoLens.Field.field+                                               @"maybe'javaGenericServices")+                                            _x+                                      of+                                        Prelude.Nothing -> Data.Monoid.mempty+                                        (Prelude.Just _v)+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 136)+                                               ((Prelude..)+                                                  Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (\ b -> if b then 1 else 0)+                                                  _v))+                                     ((Data.Monoid.<>)+                                        (case+                                             Lens.Family2.view+                                               (Data.ProtoLens.Field.field+                                                  @"maybe'pyGenericServices")+                                               _x+                                         of+                                           Prelude.Nothing -> Data.Monoid.mempty+                                           (Prelude.Just _v)+                                             -> (Data.Monoid.<>)+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 144)+                                                  ((Prelude..)+                                                     Data.ProtoLens.Encoding.Bytes.putVarInt+                                                     (\ b -> if b then 1 else 0)+                                                     _v))+                                        ((Data.Monoid.<>)+                                           (case+                                                Lens.Family2.view+                                                  (Data.ProtoLens.Field.field @"maybe'deprecated")+                                                  _x+                                            of+                                              Prelude.Nothing -> Data.Monoid.mempty+                                              (Prelude.Just _v)+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 184)+                                                     ((Prelude..)+                                                        Data.ProtoLens.Encoding.Bytes.putVarInt+                                                        (\ b -> if b then 1 else 0)+                                                        _v))+                                           ((Data.Monoid.<>)+                                              (case+                                                   Lens.Family2.view+                                                     (Data.ProtoLens.Field.field+                                                        @"maybe'ccEnableArenas")+                                                     _x+                                               of+                                                 Prelude.Nothing -> Data.Monoid.mempty+                                                 (Prelude.Just _v)+                                                   -> (Data.Monoid.<>)+                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                           248)+                                                        ((Prelude..)+                                                           Data.ProtoLens.Encoding.Bytes.putVarInt+                                                           (\ b -> if b then 1 else 0)+                                                           _v))+                                              ((Data.Monoid.<>)+                                                 (case+                                                      Lens.Family2.view+                                                        (Data.ProtoLens.Field.field+                                                           @"maybe'objcClassPrefix")+                                                        _x+                                                  of+                                                    Prelude.Nothing -> Data.Monoid.mempty+                                                    (Prelude.Just _v)+                                                      -> (Data.Monoid.<>)+                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                              290)+                                                           ((Prelude..)+                                                              (\ bs+                                                                 -> (Data.Monoid.<>)+                                                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                         (Prelude.fromIntegral+                                                                            (Data.ByteString.length+                                                                               bs)))+                                                                      (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                         bs))+                                                              Data.Text.Encoding.encodeUtf8+                                                              _v))+                                                 ((Data.Monoid.<>)+                                                    (case+                                                         Lens.Family2.view+                                                           (Data.ProtoLens.Field.field+                                                              @"maybe'csharpNamespace")+                                                           _x+                                                     of+                                                       Prelude.Nothing -> Data.Monoid.mempty+                                                       (Prelude.Just _v)+                                                         -> (Data.Monoid.<>)+                                                              (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                 298)+                                                              ((Prelude..)+                                                                 (\ bs+                                                                    -> (Data.Monoid.<>)+                                                                         (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                            (Prelude.fromIntegral+                                                                               (Data.ByteString.length+                                                                                  bs)))+                                                                         (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                            bs))+                                                                 Data.Text.Encoding.encodeUtf8+                                                                 _v))+                                                    ((Data.Monoid.<>)+                                                       (case+                                                            Lens.Family2.view+                                                              (Data.ProtoLens.Field.field+                                                                 @"maybe'swiftPrefix")+                                                              _x+                                                        of+                                                          Prelude.Nothing -> Data.Monoid.mempty+                                                          (Prelude.Just _v)+                                                            -> (Data.Monoid.<>)+                                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                    314)+                                                                 ((Prelude..)+                                                                    (\ bs+                                                                       -> (Data.Monoid.<>)+                                                                            (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                               (Prelude.fromIntegral+                                                                                  (Data.ByteString.length+                                                                                     bs)))+                                                                            (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                               bs))+                                                                    Data.Text.Encoding.encodeUtf8+                                                                    _v))+                                                       ((Data.Monoid.<>)+                                                          (case+                                                               Lens.Family2.view+                                                                 (Data.ProtoLens.Field.field+                                                                    @"maybe'phpClassPrefix")+                                                                 _x+                                                           of+                                                             Prelude.Nothing -> Data.Monoid.mempty+                                                             (Prelude.Just _v)+                                                               -> (Data.Monoid.<>)+                                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                       322)+                                                                    ((Prelude..)+                                                                       (\ bs+                                                                          -> (Data.Monoid.<>)+                                                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                  (Prelude.fromIntegral+                                                                                     (Data.ByteString.length+                                                                                        bs)))+                                                                               (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                  bs))+                                                                       Data.Text.Encoding.encodeUtf8+                                                                       _v))+                                                          ((Data.Monoid.<>)+                                                             (case+                                                                  Lens.Family2.view+                                                                    (Data.ProtoLens.Field.field+                                                                       @"maybe'phpNamespace")+                                                                    _x+                                                              of+                                                                Prelude.Nothing+                                                                  -> Data.Monoid.mempty+                                                                (Prelude.Just _v)+                                                                  -> (Data.Monoid.<>)+                                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                          330)+                                                                       ((Prelude..)+                                                                          (\ bs+                                                                             -> (Data.Monoid.<>)+                                                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                     (Prelude.fromIntegral+                                                                                        (Data.ByteString.length+                                                                                           bs)))+                                                                                  (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                     bs))+                                                                          Data.Text.Encoding.encodeUtf8+                                                                          _v))+                                                             ((Data.Monoid.<>)+                                                                (case+                                                                     Lens.Family2.view+                                                                       (Data.ProtoLens.Field.field+                                                                          @"maybe'phpMetadataNamespace")+                                                                       _x+                                                                 of+                                                                   Prelude.Nothing+                                                                     -> Data.Monoid.mempty+                                                                   (Prelude.Just _v)+                                                                     -> (Data.Monoid.<>)+                                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                             354)+                                                                          ((Prelude..)+                                                                             (\ bs+                                                                                -> (Data.Monoid.<>)+                                                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                        (Prelude.fromIntegral+                                                                                           (Data.ByteString.length+                                                                                              bs)))+                                                                                     (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                        bs))+                                                                             Data.Text.Encoding.encodeUtf8+                                                                             _v))+                                                                ((Data.Monoid.<>)+                                                                   (case+                                                                        Lens.Family2.view+                                                                          (Data.ProtoLens.Field.field+                                                                             @"maybe'rubyPackage")+                                                                          _x+                                                                    of+                                                                      Prelude.Nothing+                                                                        -> Data.Monoid.mempty+                                                                      (Prelude.Just _v)+                                                                        -> (Data.Monoid.<>)+                                                                             (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                362)+                                                                             ((Prelude..)+                                                                                (\ bs+                                                                                   -> (Data.Monoid.<>)+                                                                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                           (Prelude.fromIntegral+                                                                                              (Data.ByteString.length+                                                                                                 bs)))+                                                                                        (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                           bs))+                                                                                Data.Text.Encoding.encodeUtf8+                                                                                _v))+                                                                   ((Data.Monoid.<>)+                                                                      (case+                                                                           Lens.Family2.view+                                                                             (Data.ProtoLens.Field.field+                                                                                @"maybe'features")+                                                                             _x+                                                                       of+                                                                         Prelude.Nothing+                                                                           -> Data.Monoid.mempty+                                                                         (Prelude.Just _v)+                                                                           -> (Data.Monoid.<>)+                                                                                (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                   402)+                                                                                ((Prelude..)+                                                                                   (\ bs+                                                                                      -> (Data.Monoid.<>)+                                                                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                              (Prelude.fromIntegral+                                                                                                 (Data.ByteString.length+                                                                                                    bs)))+                                                                                           (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                              bs))+                                                                                   Data.ProtoLens.encodeMessage+                                                                                   _v))+                                                                      ((Data.Monoid.<>)+                                                                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                                                            (\ _v+                                                                               -> (Data.Monoid.<>)+                                                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                       7994)+                                                                                    ((Prelude..)+                                                                                       (\ bs+                                                                                          -> (Data.Monoid.<>)+                                                                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                                                                  (Prelude.fromIntegral+                                                                                                     (Data.ByteString.length+                                                                                                        bs)))+                                                                                               (Data.ProtoLens.Encoding.Bytes.putBytes+                                                                                                  bs))+                                                                                       Data.ProtoLens.encodeMessage+                                                                                       _v))+                                                                            (Lens.Family2.view+                                                                               (Data.ProtoLens.Field.field+                                                                                  @"vec'uninterpretedOption")+                                                                               _x))+                                                                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                                                            (Lens.Family2.view+                                                                               Data.ProtoLens.unknownFields+                                                                               _x))))))))))))))))))))))+instance Control.DeepSeq.NFData FileOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_FileOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_FileOptions'javaPackage x__)+                (Control.DeepSeq.deepseq+                   (_FileOptions'javaOuterClassname x__)+                   (Control.DeepSeq.deepseq+                      (_FileOptions'javaMultipleFiles x__)+                      (Control.DeepSeq.deepseq+                         (_FileOptions'javaGenerateEqualsAndHash x__)+                         (Control.DeepSeq.deepseq+                            (_FileOptions'javaStringCheckUtf8 x__)+                            (Control.DeepSeq.deepseq+                               (_FileOptions'optimizeFor x__)+                               (Control.DeepSeq.deepseq+                                  (_FileOptions'goPackage x__)+                                  (Control.DeepSeq.deepseq+                                     (_FileOptions'ccGenericServices x__)+                                     (Control.DeepSeq.deepseq+                                        (_FileOptions'javaGenericServices x__)+                                        (Control.DeepSeq.deepseq+                                           (_FileOptions'pyGenericServices x__)+                                           (Control.DeepSeq.deepseq+                                              (_FileOptions'deprecated x__)+                                              (Control.DeepSeq.deepseq+                                                 (_FileOptions'ccEnableArenas x__)+                                                 (Control.DeepSeq.deepseq+                                                    (_FileOptions'objcClassPrefix x__)+                                                    (Control.DeepSeq.deepseq+                                                       (_FileOptions'csharpNamespace x__)+                                                       (Control.DeepSeq.deepseq+                                                          (_FileOptions'swiftPrefix x__)+                                                          (Control.DeepSeq.deepseq+                                                             (_FileOptions'phpClassPrefix x__)+                                                             (Control.DeepSeq.deepseq+                                                                (_FileOptions'phpNamespace x__)+                                                                (Control.DeepSeq.deepseq+                                                                   (_FileOptions'phpMetadataNamespace+                                                                      x__)+                                                                   (Control.DeepSeq.deepseq+                                                                      (_FileOptions'rubyPackage x__)+                                                                      (Control.DeepSeq.deepseq+                                                                         (_FileOptions'features x__)+                                                                         (Control.DeepSeq.deepseq+                                                                            (_FileOptions'uninterpretedOption+                                                                               x__)+                                                                            ())))))))))))))))))))))+data FileOptions'OptimizeMode+  = FileOptions'SPEED |+    FileOptions'CODE_SIZE |+    FileOptions'LITE_RUNTIME+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FileOptions'OptimizeMode where+  maybeToEnum 1 = Prelude.Just FileOptions'SPEED+  maybeToEnum 2 = Prelude.Just FileOptions'CODE_SIZE+  maybeToEnum 3 = Prelude.Just FileOptions'LITE_RUNTIME+  maybeToEnum _ = Prelude.Nothing+  showEnum FileOptions'SPEED = "SPEED"+  showEnum FileOptions'CODE_SIZE = "CODE_SIZE"+  showEnum FileOptions'LITE_RUNTIME = "LITE_RUNTIME"+  readEnum k+    | (Prelude.==) k "SPEED" = Prelude.Just FileOptions'SPEED+    | (Prelude.==) k "CODE_SIZE" = Prelude.Just FileOptions'CODE_SIZE+    | (Prelude.==) k "LITE_RUNTIME"+    = Prelude.Just FileOptions'LITE_RUNTIME+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FileOptions'OptimizeMode where+  minBound = FileOptions'SPEED+  maxBound = FileOptions'LITE_RUNTIME+instance Prelude.Enum FileOptions'OptimizeMode where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum OptimizeMode: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum FileOptions'SPEED = 1+  fromEnum FileOptions'CODE_SIZE = 2+  fromEnum FileOptions'LITE_RUNTIME = 3+  succ FileOptions'LITE_RUNTIME+    = Prelude.error+        "FileOptions'OptimizeMode.succ: bad argument FileOptions'LITE_RUNTIME. This value would be out of bounds."+  succ FileOptions'SPEED = FileOptions'CODE_SIZE+  succ FileOptions'CODE_SIZE = FileOptions'LITE_RUNTIME+  pred FileOptions'SPEED+    = Prelude.error+        "FileOptions'OptimizeMode.pred: bad argument FileOptions'SPEED. This value would be out of bounds."+  pred FileOptions'CODE_SIZE = FileOptions'SPEED+  pred FileOptions'LITE_RUNTIME = FileOptions'CODE_SIZE+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FileOptions'OptimizeMode where+  fieldDefault = FileOptions'SPEED+instance Control.DeepSeq.NFData FileOptions'OptimizeMode where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.annotation' @:: Lens' GeneratedCodeInfo [GeneratedCodeInfo'Annotation]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'annotation' @:: Lens' GeneratedCodeInfo (Data.Vector.Vector GeneratedCodeInfo'Annotation)@ -}+data GeneratedCodeInfo+  = GeneratedCodeInfo'_constructor {_GeneratedCodeInfo'annotation :: !(Data.Vector.Vector GeneratedCodeInfo'Annotation),+                                    _GeneratedCodeInfo'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show GeneratedCodeInfo where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo "annotation" [GeneratedCodeInfo'Annotation] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'annotation+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'annotation = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo "vec'annotation" (Data.Vector.Vector GeneratedCodeInfo'Annotation) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'annotation+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'annotation = y__}))+        Prelude.id+instance Data.ProtoLens.Message GeneratedCodeInfo where+  messageName _ = Data.Text.pack "google.protobuf.GeneratedCodeInfo"+  packedMessageDescriptor _+    = "\n\+      \\DC1GeneratedCodeInfo\DC2M\n\+      \\n\+      \annotation\CAN\SOH \ETX(\v2-.google.protobuf.GeneratedCodeInfo.AnnotationR\n\+      \annotation\SUB\235\SOH\n\+      \\n\+      \Annotation\DC2\SYN\n\+      \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\US\n\+      \\vsource_file\CAN\STX \SOH(\tR\n\+      \sourceFile\DC2\DC4\n\+      \\ENQbegin\CAN\ETX \SOH(\ENQR\ENQbegin\DC2\DLE\n\+      \\ETXend\CAN\EOT \SOH(\ENQR\ETXend\DC2R\n\+      \\bsemantic\CAN\ENQ \SOH(\SO26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\bsemantic\"(\n\+      \\bSemantic\DC2\b\n\+      \\EOTNONE\DLE\NUL\DC2\a\n\+      \\ETXSET\DLE\SOH\DC2\t\n\+      \\ENQALIAS\DLE\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        annotation__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "annotation"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor GeneratedCodeInfo'Annotation)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"annotation")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, annotation__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _GeneratedCodeInfo'_unknownFields+        (\ x__ y__ -> x__ {_GeneratedCodeInfo'_unknownFields = y__})+  defMessage+    = GeneratedCodeInfo'_constructor+        {_GeneratedCodeInfo'annotation = Data.Vector.Generic.empty,+         _GeneratedCodeInfo'_unknownFields = []}+  parseMessage+    = let+        loop ::+          GeneratedCodeInfo+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld GeneratedCodeInfo'Annotation+             -> Data.ProtoLens.Encoding.Bytes.Parser GeneratedCodeInfo+        loop x mutable'annotation+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'annotation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                             (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                mutable'annotation)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'annotation")+                              frozen'annotation+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "annotation"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'annotation y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'annotation+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'annotation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                      Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'annotation)+          "GeneratedCodeInfo"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view+                   (Data.ProtoLens.Field.field @"vec'annotation") _x))+             (Data.ProtoLens.Encoding.Wire.buildFieldSet+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData GeneratedCodeInfo where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_GeneratedCodeInfo'_unknownFields x__)+             (Control.DeepSeq.deepseq (_GeneratedCodeInfo'annotation x__) ())+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.path' @:: Lens' GeneratedCodeInfo'Annotation [Data.Int.Int32]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'path' @:: Lens' GeneratedCodeInfo'Annotation (Data.Vector.Unboxed.Vector Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.sourceFile' @:: Lens' GeneratedCodeInfo'Annotation Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'sourceFile' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.begin' @:: Lens' GeneratedCodeInfo'Annotation Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'begin' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' GeneratedCodeInfo'Annotation Data.Int.Int32@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.semantic' @:: Lens' GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation'Semantic@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'semantic' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe GeneratedCodeInfo'Annotation'Semantic)@ -}+data GeneratedCodeInfo'Annotation+  = GeneratedCodeInfo'Annotation'_constructor {_GeneratedCodeInfo'Annotation'path :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+                                               _GeneratedCodeInfo'Annotation'sourceFile :: !(Prelude.Maybe Data.Text.Text),+                                               _GeneratedCodeInfo'Annotation'begin :: !(Prelude.Maybe Data.Int.Int32),+                                               _GeneratedCodeInfo'Annotation'end :: !(Prelude.Maybe Data.Int.Int32),+                                               _GeneratedCodeInfo'Annotation'semantic :: !(Prelude.Maybe GeneratedCodeInfo'Annotation'Semantic),+                                               _GeneratedCodeInfo'Annotation'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show GeneratedCodeInfo'Annotation where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "path" [Data.Int.Int32] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'path+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'path = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "vec'path" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'path+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'path = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "sourceFile" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'sourceFile+           (\ x__ y__+              -> x__ {_GeneratedCodeInfo'Annotation'sourceFile = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'sourceFile" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'sourceFile+           (\ x__ y__+              -> x__ {_GeneratedCodeInfo'Annotation'sourceFile = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "begin" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'begin+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'begin = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'begin" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'begin+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'begin = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "end" Data.Int.Int32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'end+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'end = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'end" (Prelude.Maybe Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'end+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'end = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "semantic" GeneratedCodeInfo'Annotation'Semantic where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'semantic+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'semantic = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'semantic" (Prelude.Maybe GeneratedCodeInfo'Annotation'Semantic) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _GeneratedCodeInfo'Annotation'semantic+           (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'semantic = y__}))+        Prelude.id+instance Data.ProtoLens.Message GeneratedCodeInfo'Annotation where+  messageName _+    = Data.Text.pack "google.protobuf.GeneratedCodeInfo.Annotation"+  packedMessageDescriptor _+    = "\n\+      \\n\+      \Annotation\DC2\SYN\n\+      \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\US\n\+      \\vsource_file\CAN\STX \SOH(\tR\n\+      \sourceFile\DC2\DC4\n\+      \\ENQbegin\CAN\ETX \SOH(\ENQR\ENQbegin\DC2\DLE\n\+      \\ETXend\CAN\EOT \SOH(\ENQR\ETXend\DC2R\n\+      \\bsemantic\CAN\ENQ \SOH(\SO26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\bsemantic\"(\n\+      \\bSemantic\DC2\b\n\+      \\EOTNONE\DLE\NUL\DC2\a\n\+      \\ETXSET\DLE\SOH\DC2\t\n\+      \\ENQALIAS\DLE\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        path__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "path"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"path")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+        sourceFile__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "source_file"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'sourceFile")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+        begin__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "begin"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'begin")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+        end__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "end"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'end")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+        semantic__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "semantic"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor GeneratedCodeInfo'Annotation'Semantic)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'semantic")) ::+              Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, path__field_descriptor),+           (Data.ProtoLens.Tag 2, sourceFile__field_descriptor),+           (Data.ProtoLens.Tag 3, begin__field_descriptor),+           (Data.ProtoLens.Tag 4, end__field_descriptor),+           (Data.ProtoLens.Tag 5, semantic__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _GeneratedCodeInfo'Annotation'_unknownFields+        (\ x__ y__+           -> x__ {_GeneratedCodeInfo'Annotation'_unknownFields = y__})+  defMessage+    = GeneratedCodeInfo'Annotation'_constructor+        {_GeneratedCodeInfo'Annotation'path = Data.Vector.Generic.empty,+         _GeneratedCodeInfo'Annotation'sourceFile = Prelude.Nothing,+         _GeneratedCodeInfo'Annotation'begin = Prelude.Nothing,+         _GeneratedCodeInfo'Annotation'end = Prelude.Nothing,+         _GeneratedCodeInfo'Annotation'semantic = Prelude.Nothing,+         _GeneratedCodeInfo'Annotation'_unknownFields = []}+  parseMessage+    = let+        loop ::+          GeneratedCodeInfo'Annotation+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+             -> Data.ProtoLens.Encoding.Bytes.Parser GeneratedCodeInfo'Annotation+        loop x mutable'path+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'path)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'path") frozen'path x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.fromIntegral+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)+                                        "path"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'path y)+                                loop x v+                        10+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.fromIntegral+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)+                                                                    "path"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'path)+                                loop x y+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "source_file"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"sourceFile") y x)+                                  mutable'path+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "begin"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"begin") y x)+                                  mutable'path+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "end"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+                                  mutable'path+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "semantic"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"semantic") y x)+                                  mutable'path+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'path+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'path)+          "Annotation"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (let+                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'path") _x+              in+                if Data.Vector.Generic.null p then+                    Data.Monoid.mempty+                else+                    (Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                      ((\ bs+                          -> (Data.Monoid.<>)+                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                  (Prelude.fromIntegral (Data.ByteString.length bs)))+                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                         (Data.ProtoLens.Encoding.Bytes.runBuilder+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                               ((Prelude..)+                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                               p))))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'sourceFile") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'begin") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'semantic") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                   ((Prelude..)+                                      ((Prelude..)+                                         Data.ProtoLens.Encoding.Bytes.putVarInt+                                         Prelude.fromIntegral)+                                      Prelude.fromEnum+                                      _v))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData GeneratedCodeInfo'Annotation where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_GeneratedCodeInfo'Annotation'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_GeneratedCodeInfo'Annotation'path x__)+                (Control.DeepSeq.deepseq+                   (_GeneratedCodeInfo'Annotation'sourceFile x__)+                   (Control.DeepSeq.deepseq+                      (_GeneratedCodeInfo'Annotation'begin x__)+                      (Control.DeepSeq.deepseq+                         (_GeneratedCodeInfo'Annotation'end x__)+                         (Control.DeepSeq.deepseq+                            (_GeneratedCodeInfo'Annotation'semantic x__) ())))))+data GeneratedCodeInfo'Annotation'Semantic+  = GeneratedCodeInfo'Annotation'NONE |+    GeneratedCodeInfo'Annotation'SET |+    GeneratedCodeInfo'Annotation'ALIAS+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum GeneratedCodeInfo'Annotation'Semantic where+  maybeToEnum 0 = Prelude.Just GeneratedCodeInfo'Annotation'NONE+  maybeToEnum 1 = Prelude.Just GeneratedCodeInfo'Annotation'SET+  maybeToEnum 2 = Prelude.Just GeneratedCodeInfo'Annotation'ALIAS+  maybeToEnum _ = Prelude.Nothing+  showEnum GeneratedCodeInfo'Annotation'NONE = "NONE"+  showEnum GeneratedCodeInfo'Annotation'SET = "SET"+  showEnum GeneratedCodeInfo'Annotation'ALIAS = "ALIAS"+  readEnum k+    | (Prelude.==) k "NONE"+    = Prelude.Just GeneratedCodeInfo'Annotation'NONE+    | (Prelude.==) k "SET"+    = Prelude.Just GeneratedCodeInfo'Annotation'SET+    | (Prelude.==) k "ALIAS"+    = Prelude.Just GeneratedCodeInfo'Annotation'ALIAS+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded GeneratedCodeInfo'Annotation'Semantic where+  minBound = GeneratedCodeInfo'Annotation'NONE+  maxBound = GeneratedCodeInfo'Annotation'ALIAS+instance Prelude.Enum GeneratedCodeInfo'Annotation'Semantic where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum Semantic: " (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum GeneratedCodeInfo'Annotation'NONE = 0+  fromEnum GeneratedCodeInfo'Annotation'SET = 1+  fromEnum GeneratedCodeInfo'Annotation'ALIAS = 2+  succ GeneratedCodeInfo'Annotation'ALIAS+    = Prelude.error+        "GeneratedCodeInfo'Annotation'Semantic.succ: bad argument GeneratedCodeInfo'Annotation'ALIAS. This value would be out of bounds."+  succ GeneratedCodeInfo'Annotation'NONE+    = GeneratedCodeInfo'Annotation'SET+  succ GeneratedCodeInfo'Annotation'SET+    = GeneratedCodeInfo'Annotation'ALIAS+  pred GeneratedCodeInfo'Annotation'NONE+    = Prelude.error+        "GeneratedCodeInfo'Annotation'Semantic.pred: bad argument GeneratedCodeInfo'Annotation'NONE. This value would be out of bounds."+  pred GeneratedCodeInfo'Annotation'SET+    = GeneratedCodeInfo'Annotation'NONE+  pred GeneratedCodeInfo'Annotation'ALIAS+    = GeneratedCodeInfo'Annotation'SET+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault GeneratedCodeInfo'Annotation'Semantic where+  fieldDefault = GeneratedCodeInfo'Annotation'NONE+instance Control.DeepSeq.NFData GeneratedCodeInfo'Annotation'Semantic where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.messageSetWireFormat' @:: Lens' MessageOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'messageSetWireFormat' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.noStandardDescriptorAccessor' @:: Lens' MessageOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'noStandardDescriptorAccessor' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' MessageOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.mapEntry' @:: Lens' MessageOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'mapEntry' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecatedLegacyJsonFieldConflicts' @:: Lens' MessageOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecatedLegacyJsonFieldConflicts' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' MessageOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' MessageOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' MessageOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' MessageOptions (Data.Vector.Vector UninterpretedOption)@ -}+data MessageOptions+  = MessageOptions'_constructor {_MessageOptions'messageSetWireFormat :: !(Prelude.Maybe Prelude.Bool),+                                 _MessageOptions'noStandardDescriptorAccessor :: !(Prelude.Maybe Prelude.Bool),+                                 _MessageOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                                 _MessageOptions'mapEntry :: !(Prelude.Maybe Prelude.Bool),+                                 _MessageOptions'deprecatedLegacyJsonFieldConflicts :: !(Prelude.Maybe Prelude.Bool),+                                 _MessageOptions'features :: !(Prelude.Maybe FeatureSet),+                                 _MessageOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                                 _MessageOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MessageOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MessageOptions "messageSetWireFormat" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'messageSetWireFormat+           (\ x__ y__ -> x__ {_MessageOptions'messageSetWireFormat = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'messageSetWireFormat" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'messageSetWireFormat+           (\ x__ y__ -> x__ {_MessageOptions'messageSetWireFormat = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "noStandardDescriptorAccessor" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'noStandardDescriptorAccessor+           (\ x__ y__+              -> x__ {_MessageOptions'noStandardDescriptorAccessor = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'noStandardDescriptorAccessor" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'noStandardDescriptorAccessor+           (\ x__ y__+              -> x__ {_MessageOptions'noStandardDescriptorAccessor = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'deprecated+           (\ x__ y__ -> x__ {_MessageOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'deprecated+           (\ x__ y__ -> x__ {_MessageOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "mapEntry" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'mapEntry+           (\ x__ y__ -> x__ {_MessageOptions'mapEntry = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'mapEntry" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'mapEntry+           (\ x__ y__ -> x__ {_MessageOptions'mapEntry = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "deprecatedLegacyJsonFieldConflicts" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'deprecatedLegacyJsonFieldConflicts+           (\ x__ y__+              -> x__ {_MessageOptions'deprecatedLegacyJsonFieldConflicts = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'deprecatedLegacyJsonFieldConflicts" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'deprecatedLegacyJsonFieldConflicts+           (\ x__ y__+              -> x__ {_MessageOptions'deprecatedLegacyJsonFieldConflicts = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'features+           (\ x__ y__ -> x__ {_MessageOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'features+           (\ x__ y__ -> x__ {_MessageOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_MessageOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField MessageOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MessageOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_MessageOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message MessageOptions where+  messageName _ = Data.Text.pack "google.protobuf.MessageOptions"+  packedMessageDescriptor _+    = "\n\+      \\SOMessageOptions\DC2<\n\+      \\ETBmessage_set_wire_format\CAN\SOH \SOH(\b:\ENQfalseR\DC4messageSetWireFormat\DC2L\n\+      \\USno_standard_descriptor_accessor\CAN\STX \SOH(\b:\ENQfalseR\FSnoStandardDescriptorAccessor\DC2%\n\+      \\n\+      \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2\ESC\n\+      \\tmap_entry\CAN\a \SOH(\bR\bmapEntry\DC2V\n\+      \&deprecated_legacy_json_field_conflicts\CAN\v \SOH(\bR\"deprecatedLegacyJsonFieldConflictsB\STX\CAN\SOH\DC27\n\+      \\bfeatures\CAN\f \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\EOT\DLE\ENQJ\EOT\b\ENQ\DLE\ACKJ\EOT\b\ACK\DLE\aJ\EOT\b\b\DLE\tJ\EOT\b\t\DLE\n"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        messageSetWireFormat__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "message_set_wire_format"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'messageSetWireFormat")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        noStandardDescriptorAccessor__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "no_standard_descriptor_accessor"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field+                    @"maybe'noStandardDescriptorAccessor")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        mapEntry__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "map_entry"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'mapEntry")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        deprecatedLegacyJsonFieldConflicts__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated_legacy_json_field_conflicts"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field+                    @"maybe'deprecatedLegacyJsonFieldConflicts")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor MessageOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, messageSetWireFormat__field_descriptor),+           (Data.ProtoLens.Tag 2, +            noStandardDescriptorAccessor__field_descriptor),+           (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 7, mapEntry__field_descriptor),+           (Data.ProtoLens.Tag 11, +            deprecatedLegacyJsonFieldConflicts__field_descriptor),+           (Data.ProtoLens.Tag 12, features__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _MessageOptions'_unknownFields+        (\ x__ y__ -> x__ {_MessageOptions'_unknownFields = y__})+  defMessage+    = MessageOptions'_constructor+        {_MessageOptions'messageSetWireFormat = Prelude.Nothing,+         _MessageOptions'noStandardDescriptorAccessor = Prelude.Nothing,+         _MessageOptions'deprecated = Prelude.Nothing,+         _MessageOptions'mapEntry = Prelude.Nothing,+         _MessageOptions'deprecatedLegacyJsonFieldConflicts = Prelude.Nothing,+         _MessageOptions'features = Prelude.Nothing,+         _MessageOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _MessageOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          MessageOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser MessageOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "message_set_wire_format"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"messageSetWireFormat") y x)+                                  mutable'uninterpretedOption+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "no_standard_descriptor_accessor"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"noStandardDescriptorAccessor")+                                     y+                                     x)+                                  mutable'uninterpretedOption+                        24+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        56+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "map_entry"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"mapEntry") y x)+                                  mutable'uninterpretedOption+                        88+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated_legacy_json_field_conflicts"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field+                                        @"deprecatedLegacyJsonFieldConflicts")+                                     y+                                     x)+                                  mutable'uninterpretedOption+                        98+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "MessageOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'messageSetWireFormat") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt+                          (\ b -> if b then 1 else 0)+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'noStandardDescriptorAccessor")+                       _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt+                             (\ b -> if b then 1 else 0)+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'deprecated") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt+                                (\ b -> if b then 1 else 0)+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'mapEntry") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 56)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt+                                   (\ b -> if b then 1 else 0)+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field+                                   @"maybe'deprecatedLegacyJsonFieldConflicts")+                                _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 88)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (\ b -> if b then 1 else 0)+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 98)+                                      ((Prelude..)+                                         (\ bs+                                            -> (Data.Monoid.<>)+                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                    (Prelude.fromIntegral+                                                       (Data.ByteString.length bs)))+                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                         Data.ProtoLens.encodeMessage+                                         _v))+                            ((Data.Monoid.<>)+                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                  (\ _v+                                     -> (Data.Monoid.<>)+                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                                          ((Prelude..)+                                             (\ bs+                                                -> (Data.Monoid.<>)+                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                        (Prelude.fromIntegral+                                                           (Data.ByteString.length bs)))+                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                             Data.ProtoLens.encodeMessage+                                             _v))+                                  (Lens.Family2.view+                                     (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                               (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))+instance Control.DeepSeq.NFData MessageOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_MessageOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_MessageOptions'messageSetWireFormat x__)+                (Control.DeepSeq.deepseq+                   (_MessageOptions'noStandardDescriptorAccessor x__)+                   (Control.DeepSeq.deepseq+                      (_MessageOptions'deprecated x__)+                      (Control.DeepSeq.deepseq+                         (_MessageOptions'mapEntry x__)+                         (Control.DeepSeq.deepseq+                            (_MessageOptions'deprecatedLegacyJsonFieldConflicts x__)+                            (Control.DeepSeq.deepseq+                               (_MessageOptions'features x__)+                               (Control.DeepSeq.deepseq+                                  (_MessageOptions'uninterpretedOption x__) ())))))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' MethodDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.inputType' @:: Lens' MethodDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'inputType' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.outputType' @:: Lens' MethodDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'outputType' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' MethodDescriptorProto MethodOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' MethodDescriptorProto (Prelude.Maybe MethodOptions)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.clientStreaming' @:: Lens' MethodDescriptorProto Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'clientStreaming' @:: Lens' MethodDescriptorProto (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.serverStreaming' @:: Lens' MethodDescriptorProto Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'serverStreaming' @:: Lens' MethodDescriptorProto (Prelude.Maybe Prelude.Bool)@ -}+data MethodDescriptorProto+  = MethodDescriptorProto'_constructor {_MethodDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                        _MethodDescriptorProto'inputType :: !(Prelude.Maybe Data.Text.Text),+                                        _MethodDescriptorProto'outputType :: !(Prelude.Maybe Data.Text.Text),+                                        _MethodDescriptorProto'options :: !(Prelude.Maybe MethodOptions),+                                        _MethodDescriptorProto'clientStreaming :: !(Prelude.Maybe Prelude.Bool),+                                        _MethodDescriptorProto'serverStreaming :: !(Prelude.Maybe Prelude.Bool),+                                        _MethodDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MethodDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'name+           (\ x__ y__ -> x__ {_MethodDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'name+           (\ x__ y__ -> x__ {_MethodDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "inputType" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'inputType+           (\ x__ y__ -> x__ {_MethodDescriptorProto'inputType = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'inputType" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'inputType+           (\ x__ y__ -> x__ {_MethodDescriptorProto'inputType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "outputType" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'outputType+           (\ x__ y__ -> x__ {_MethodDescriptorProto'outputType = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'outputType" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'outputType+           (\ x__ y__ -> x__ {_MethodDescriptorProto'outputType = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "options" MethodOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'options+           (\ x__ y__ -> x__ {_MethodDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'options" (Prelude.Maybe MethodOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'options+           (\ x__ y__ -> x__ {_MethodDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "clientStreaming" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'clientStreaming+           (\ x__ y__ -> x__ {_MethodDescriptorProto'clientStreaming = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'clientStreaming" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'clientStreaming+           (\ x__ y__ -> x__ {_MethodDescriptorProto'clientStreaming = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "serverStreaming" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'serverStreaming+           (\ x__ y__ -> x__ {_MethodDescriptorProto'serverStreaming = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'serverStreaming" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodDescriptorProto'serverStreaming+           (\ x__ y__ -> x__ {_MethodDescriptorProto'serverStreaming = y__}))+        Prelude.id+instance Data.ProtoLens.Message MethodDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.MethodDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\NAKMethodDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\GS\n\+      \\n\+      \input_type\CAN\STX \SOH(\tR\tinputType\DC2\US\n\+      \\voutput_type\CAN\ETX \SOH(\tR\n\+      \outputType\DC28\n\+      \\aoptions\CAN\EOT \SOH(\v2\RS.google.protobuf.MethodOptionsR\aoptions\DC20\n\+      \\DLEclient_streaming\CAN\ENQ \SOH(\b:\ENQfalseR\SIclientStreaming\DC20\n\+      \\DLEserver_streaming\CAN\ACK \SOH(\b:\ENQfalseR\SIserverStreaming"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+        inputType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "input_type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'inputType")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+        outputType__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "output_type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'outputType")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor MethodOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+        clientStreaming__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "client_streaming"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'clientStreaming")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+        serverStreaming__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "server_streaming"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'serverStreaming")) ::+              Data.ProtoLens.FieldDescriptor MethodDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, inputType__field_descriptor),+           (Data.ProtoLens.Tag 3, outputType__field_descriptor),+           (Data.ProtoLens.Tag 4, options__field_descriptor),+           (Data.ProtoLens.Tag 5, clientStreaming__field_descriptor),+           (Data.ProtoLens.Tag 6, serverStreaming__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _MethodDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_MethodDescriptorProto'_unknownFields = y__})+  defMessage+    = MethodDescriptorProto'_constructor+        {_MethodDescriptorProto'name = Prelude.Nothing,+         _MethodDescriptorProto'inputType = Prelude.Nothing,+         _MethodDescriptorProto'outputType = Prelude.Nothing,+         _MethodDescriptorProto'options = Prelude.Nothing,+         _MethodDescriptorProto'clientStreaming = Prelude.Nothing,+         _MethodDescriptorProto'serverStreaming = Prelude.Nothing,+         _MethodDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          MethodDescriptorProto+          -> Data.ProtoLens.Encoding.Bytes.Parser MethodDescriptorProto+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "input_type"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"inputType") y x)+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "output_type"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"outputType") y x)+                        34+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "client_streaming"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"clientStreaming") y x)+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "server_streaming"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"serverStreaming") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "MethodDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'inputType") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'outputType") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.Text.Encoding.encodeUtf8+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.ProtoLens.encodeMessage+                                   _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'clientStreaming") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (\ b -> if b then 1 else 0)+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view+                                   (Data.ProtoLens.Field.field @"maybe'serverStreaming") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+                                      ((Prelude..)+                                         Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (\ b -> if b then 1 else 0)+                                         _v))+                            (Data.ProtoLens.Encoding.Wire.buildFieldSet+                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))+instance Control.DeepSeq.NFData MethodDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_MethodDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_MethodDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_MethodDescriptorProto'inputType x__)+                   (Control.DeepSeq.deepseq+                      (_MethodDescriptorProto'outputType x__)+                      (Control.DeepSeq.deepseq+                         (_MethodDescriptorProto'options x__)+                         (Control.DeepSeq.deepseq+                            (_MethodDescriptorProto'clientStreaming x__)+                            (Control.DeepSeq.deepseq+                               (_MethodDescriptorProto'serverStreaming x__) ()))))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' MethodOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' MethodOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.idempotencyLevel' @:: Lens' MethodOptions MethodOptions'IdempotencyLevel@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'idempotencyLevel' @:: Lens' MethodOptions (Prelude.Maybe MethodOptions'IdempotencyLevel)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' MethodOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' MethodOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' MethodOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' MethodOptions (Data.Vector.Vector UninterpretedOption)@ -}+data MethodOptions+  = MethodOptions'_constructor {_MethodOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                                _MethodOptions'idempotencyLevel :: !(Prelude.Maybe MethodOptions'IdempotencyLevel),+                                _MethodOptions'features :: !(Prelude.Maybe FeatureSet),+                                _MethodOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                                _MethodOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MethodOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MethodOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'deprecated+           (\ x__ y__ -> x__ {_MethodOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'deprecated+           (\ x__ y__ -> x__ {_MethodOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodOptions "idempotencyLevel" MethodOptions'IdempotencyLevel where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'idempotencyLevel+           (\ x__ y__ -> x__ {_MethodOptions'idempotencyLevel = y__}))+        (Data.ProtoLens.maybeLens MethodOptions'IDEMPOTENCY_UNKNOWN)+instance Data.ProtoLens.Field.HasField MethodOptions "maybe'idempotencyLevel" (Prelude.Maybe MethodOptions'IdempotencyLevel) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'idempotencyLevel+           (\ x__ y__ -> x__ {_MethodOptions'idempotencyLevel = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'features+           (\ x__ y__ -> x__ {_MethodOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField MethodOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'features+           (\ x__ y__ -> x__ {_MethodOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField MethodOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_MethodOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField MethodOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _MethodOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_MethodOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message MethodOptions where+  messageName _ = Data.Text.pack "google.protobuf.MethodOptions"+  packedMessageDescriptor _+    = "\n\+      \\rMethodOptions\DC2%\n\+      \\n\+      \deprecated\CAN! \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2q\n\+      \\DC1idempotency_level\CAN\" \SOH(\SO2/.google.protobuf.MethodOptions.IdempotencyLevel:\DC3IDEMPOTENCY_UNKNOWNR\DLEidempotencyLevel\DC27\n\+      \\bfeatures\CAN# \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\"P\n\+      \\DLEIdempotencyLevel\DC2\ETB\n\+      \\DC3IDEMPOTENCY_UNKNOWN\DLE\NUL\DC2\DC3\n\+      \\SINO_SIDE_EFFECTS\DLE\SOH\DC2\SO\n\+      \\n\+      \IDEMPOTENT\DLE\STX*\t\b\232\a\DLE\128\128\128\128\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor MethodOptions+        idempotencyLevel__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "idempotency_level"+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+                 Data.ProtoLens.FieldTypeDescriptor MethodOptions'IdempotencyLevel)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'idempotencyLevel")) ::+              Data.ProtoLens.FieldDescriptor MethodOptions+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor MethodOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor MethodOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 33, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 34, idempotencyLevel__field_descriptor),+           (Data.ProtoLens.Tag 35, features__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _MethodOptions'_unknownFields+        (\ x__ y__ -> x__ {_MethodOptions'_unknownFields = y__})+  defMessage+    = MethodOptions'_constructor+        {_MethodOptions'deprecated = Prelude.Nothing,+         _MethodOptions'idempotencyLevel = Prelude.Nothing,+         _MethodOptions'features = Prelude.Nothing,+         _MethodOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _MethodOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          MethodOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser MethodOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        264+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        272+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.toEnum+                                          (Prelude.fmap+                                             Prelude.fromIntegral+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))+                                       "idempotency_level"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"idempotencyLevel") y x)+                                  mutable'uninterpretedOption+                        282+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "MethodOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view+                    (Data.ProtoLens.Field.field @"maybe'deprecated") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 264)+                       ((Prelude..)+                          Data.ProtoLens.Encoding.Bytes.putVarInt+                          (\ b -> if b then 1 else 0)+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'idempotencyLevel") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 272)+                          ((Prelude..)+                             ((Prelude..)+                                Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                             Prelude.fromEnum+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 282)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   ((Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                         (\ _v+                            -> (Data.Monoid.<>)+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                                 ((Prelude..)+                                    (\ bs+                                       -> (Data.Monoid.<>)+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                    Data.ProtoLens.encodeMessage+                                    _v))+                         (Lens.Family2.view+                            (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData MethodOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_MethodOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_MethodOptions'deprecated x__)+                (Control.DeepSeq.deepseq+                   (_MethodOptions'idempotencyLevel x__)+                   (Control.DeepSeq.deepseq+                      (_MethodOptions'features x__)+                      (Control.DeepSeq.deepseq+                         (_MethodOptions'uninterpretedOption x__) ()))))+data MethodOptions'IdempotencyLevel+  = MethodOptions'IDEMPOTENCY_UNKNOWN |+    MethodOptions'NO_SIDE_EFFECTS |+    MethodOptions'IDEMPOTENT+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum MethodOptions'IdempotencyLevel where+  maybeToEnum 0 = Prelude.Just MethodOptions'IDEMPOTENCY_UNKNOWN+  maybeToEnum 1 = Prelude.Just MethodOptions'NO_SIDE_EFFECTS+  maybeToEnum 2 = Prelude.Just MethodOptions'IDEMPOTENT+  maybeToEnum _ = Prelude.Nothing+  showEnum MethodOptions'IDEMPOTENCY_UNKNOWN = "IDEMPOTENCY_UNKNOWN"+  showEnum MethodOptions'NO_SIDE_EFFECTS = "NO_SIDE_EFFECTS"+  showEnum MethodOptions'IDEMPOTENT = "IDEMPOTENT"+  readEnum k+    | (Prelude.==) k "IDEMPOTENCY_UNKNOWN"+    = Prelude.Just MethodOptions'IDEMPOTENCY_UNKNOWN+    | (Prelude.==) k "NO_SIDE_EFFECTS"+    = Prelude.Just MethodOptions'NO_SIDE_EFFECTS+    | (Prelude.==) k "IDEMPOTENT"+    = Prelude.Just MethodOptions'IDEMPOTENT+    | Prelude.otherwise+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded MethodOptions'IdempotencyLevel where+  minBound = MethodOptions'IDEMPOTENCY_UNKNOWN+  maxBound = MethodOptions'IDEMPOTENT+instance Prelude.Enum MethodOptions'IdempotencyLevel where+  toEnum k__+    = Prelude.maybe+        (Prelude.error+           ((Prelude.++)+              "toEnum: unknown value for enum IdempotencyLevel: "+              (Prelude.show k__)))+        Prelude.id+        (Data.ProtoLens.maybeToEnum k__)+  fromEnum MethodOptions'IDEMPOTENCY_UNKNOWN = 0+  fromEnum MethodOptions'NO_SIDE_EFFECTS = 1+  fromEnum MethodOptions'IDEMPOTENT = 2+  succ MethodOptions'IDEMPOTENT+    = Prelude.error+        "MethodOptions'IdempotencyLevel.succ: bad argument MethodOptions'IDEMPOTENT. This value would be out of bounds."+  succ MethodOptions'IDEMPOTENCY_UNKNOWN+    = MethodOptions'NO_SIDE_EFFECTS+  succ MethodOptions'NO_SIDE_EFFECTS = MethodOptions'IDEMPOTENT+  pred MethodOptions'IDEMPOTENCY_UNKNOWN+    = Prelude.error+        "MethodOptions'IdempotencyLevel.pred: bad argument MethodOptions'IDEMPOTENCY_UNKNOWN. This value would be out of bounds."+  pred MethodOptions'NO_SIDE_EFFECTS+    = MethodOptions'IDEMPOTENCY_UNKNOWN+  pred MethodOptions'IDEMPOTENT = MethodOptions'NO_SIDE_EFFECTS+  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault MethodOptions'IdempotencyLevel where+  fieldDefault = MethodOptions'IDEMPOTENCY_UNKNOWN+instance Control.DeepSeq.NFData MethodOptions'IdempotencyLevel where+  rnf x__ = Prelude.seq x__ ()+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' OneofDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' OneofDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' OneofDescriptorProto OneofOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' OneofDescriptorProto (Prelude.Maybe OneofOptions)@ -}+data OneofDescriptorProto+  = OneofDescriptorProto'_constructor {_OneofDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                       _OneofDescriptorProto'options :: !(Prelude.Maybe OneofOptions),+                                       _OneofDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show OneofDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofDescriptorProto'name+           (\ x__ y__ -> x__ {_OneofDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofDescriptorProto'name+           (\ x__ y__ -> x__ {_OneofDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "options" OneofOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofDescriptorProto'options+           (\ x__ y__ -> x__ {_OneofDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "maybe'options" (Prelude.Maybe OneofOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofDescriptorProto'options+           (\ x__ y__ -> x__ {_OneofDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Message OneofDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.OneofDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\DC4OneofDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC27\n\+      \\aoptions\CAN\STX \SOH(\v2\GS.google.protobuf.OneofOptionsR\aoptions"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor OneofDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor OneofOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor OneofDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, options__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _OneofDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_OneofDescriptorProto'_unknownFields = y__})+  defMessage+    = OneofDescriptorProto'_constructor+        {_OneofDescriptorProto'name = Prelude.Nothing,+         _OneofDescriptorProto'options = Prelude.Nothing,+         _OneofDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          OneofDescriptorProto+          -> Data.ProtoLens.Encoding.Bytes.Parser OneofDescriptorProto+        loop x+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                        18+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage) "OneofDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.ProtoLens.encodeMessage+                             _v))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData OneofDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_OneofDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_OneofDescriptorProto'name x__)+                (Control.DeepSeq.deepseq (_OneofDescriptorProto'options x__) ()))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' OneofOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' OneofOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' OneofOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' OneofOptions (Data.Vector.Vector UninterpretedOption)@ -}+data OneofOptions+  = OneofOptions'_constructor {_OneofOptions'features :: !(Prelude.Maybe FeatureSet),+                               _OneofOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                               _OneofOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show OneofOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField OneofOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofOptions'features+           (\ x__ y__ -> x__ {_OneofOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField OneofOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofOptions'features+           (\ x__ y__ -> x__ {_OneofOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField OneofOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_OneofOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField OneofOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _OneofOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_OneofOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message OneofOptions where+  messageName _ = Data.Text.pack "google.protobuf.OneofOptions"+  packedMessageDescriptor _+    = "\n\+      \\fOneofOptions\DC27\n\+      \\bfeatures\CAN\SOH \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor OneofOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor OneofOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, features__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _OneofOptions'_unknownFields+        (\ x__ y__ -> x__ {_OneofOptions'_unknownFields = y__})+  defMessage+    = OneofOptions'_constructor+        {_OneofOptions'features = Prelude.Nothing,+         _OneofOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _OneofOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          OneofOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser OneofOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "OneofOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.ProtoLens.encodeMessage+                          _v))+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                   (\ _v+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                           ((Prelude..)+                              (\ bs+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                              Data.ProtoLens.encodeMessage+                              _v))+                   (Lens.Family2.view+                      (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData OneofOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_OneofOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_OneofOptions'features x__)+                (Control.DeepSeq.deepseq+                   (_OneofOptions'uninterpretedOption x__) ()))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' ServiceDescriptorProto Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' ServiceDescriptorProto (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.method' @:: Lens' ServiceDescriptorProto [MethodDescriptorProto]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'method' @:: Lens' ServiceDescriptorProto (Data.Vector.Vector MethodDescriptorProto)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' ServiceDescriptorProto ServiceOptions@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' ServiceDescriptorProto (Prelude.Maybe ServiceOptions)@ -}+data ServiceDescriptorProto+  = ServiceDescriptorProto'_constructor {_ServiceDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+                                         _ServiceDescriptorProto'method :: !(Data.Vector.Vector MethodDescriptorProto),+                                         _ServiceDescriptorProto'options :: !(Prelude.Maybe ServiceOptions),+                                         _ServiceDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ServiceDescriptorProto where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "name" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'name+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'name = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'name+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "method" [MethodDescriptorProto] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'method+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'method = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "vec'method" (Data.Vector.Vector MethodDescriptorProto) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'method+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'method = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "options" ServiceOptions where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'options+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'options = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "maybe'options" (Prelude.Maybe ServiceOptions) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceDescriptorProto'options+           (\ x__ y__ -> x__ {_ServiceDescriptorProto'options = y__}))+        Prelude.id+instance Data.ProtoLens.Message ServiceDescriptorProto where+  messageName _+    = Data.Text.pack "google.protobuf.ServiceDescriptorProto"+  packedMessageDescriptor _+    = "\n\+      \\SYNServiceDescriptorProto\DC2\DC2\n\+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2>\n\+      \\ACKmethod\CAN\STX \ETX(\v2&.google.protobuf.MethodDescriptorProtoR\ACKmethod\DC29\n\+      \\aoptions\CAN\ETX \SOH(\v2\US.google.protobuf.ServiceOptionsR\aoptions"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'name")) ::+              Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+        method__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "method"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor MethodDescriptorProto)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"method")) ::+              Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+        options__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "options"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor ServiceOptions)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'options")) ::+              Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, name__field_descriptor),+           (Data.ProtoLens.Tag 2, method__field_descriptor),+           (Data.ProtoLens.Tag 3, options__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _ServiceDescriptorProto'_unknownFields+        (\ x__ y__ -> x__ {_ServiceDescriptorProto'_unknownFields = y__})+  defMessage+    = ServiceDescriptorProto'_constructor+        {_ServiceDescriptorProto'name = Prelude.Nothing,+         _ServiceDescriptorProto'method = Data.Vector.Generic.empty,+         _ServiceDescriptorProto'options = Prelude.Nothing,+         _ServiceDescriptorProto'_unknownFields = []}+  parseMessage+    = let+        loop ::+          ServiceDescriptorProto+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MethodDescriptorProto+             -> Data.ProtoLens.Encoding.Bytes.Parser ServiceDescriptorProto+        loop x mutable'method+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'method <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                            mutable'method)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'method") frozen'method x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+                                  mutable'method+                        18+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "method"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'method y)+                                loop x v+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "options"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+                                  mutable'method+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'method+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'method <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                  Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'method)+          "ServiceDescriptorProto"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.Text.Encoding.encodeUtf8+                          _v))+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                   (\ _v+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                           ((Prelude..)+                              (\ bs+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                              Data.ProtoLens.encodeMessage+                              _v))+                   (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'method") _x))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.ProtoLens.encodeMessage+                                _v))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData ServiceDescriptorProto where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_ServiceDescriptorProto'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_ServiceDescriptorProto'name x__)+                (Control.DeepSeq.deepseq+                   (_ServiceDescriptorProto'method x__)+                   (Control.DeepSeq.deepseq+                      (_ServiceDescriptorProto'options x__) ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.features' @:: Lens' ServiceOptions FeatureSet@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'features' @:: Lens' ServiceOptions (Prelude.Maybe FeatureSet)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' ServiceOptions Prelude.Bool@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' ServiceOptions (Prelude.Maybe Prelude.Bool)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' ServiceOptions [UninterpretedOption]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' ServiceOptions (Data.Vector.Vector UninterpretedOption)@ -}+data ServiceOptions+  = ServiceOptions'_constructor {_ServiceOptions'features :: !(Prelude.Maybe FeatureSet),+                                 _ServiceOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+                                 _ServiceOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+                                 _ServiceOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ServiceOptions where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ServiceOptions "features" FeatureSet where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'features+           (\ x__ y__ -> x__ {_ServiceOptions'features = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField ServiceOptions "maybe'features" (Prelude.Maybe FeatureSet) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'features+           (\ x__ y__ -> x__ {_ServiceOptions'features = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ServiceOptions "deprecated" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'deprecated+           (\ x__ y__ -> x__ {_ServiceOptions'deprecated = y__}))+        (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField ServiceOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'deprecated+           (\ x__ y__ -> x__ {_ServiceOptions'deprecated = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField ServiceOptions "uninterpretedOption" [UninterpretedOption] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_ServiceOptions'uninterpretedOption = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ServiceOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _ServiceOptions'uninterpretedOption+           (\ x__ y__ -> x__ {_ServiceOptions'uninterpretedOption = y__}))+        Prelude.id+instance Data.ProtoLens.Message ServiceOptions where+  messageName _ = Data.Text.pack "google.protobuf.ServiceOptions"+  packedMessageDescriptor _+    = "\n\+      \\SOServiceOptions\DC27\n\+      \\bfeatures\CAN\" \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2%\n\+      \\n\+      \deprecated\CAN! \SOH(\b:\ENQfalseR\n\+      \deprecated\DC2X\n\+      \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        features__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "features"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor FeatureSet)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'features")) ::+              Data.ProtoLens.FieldDescriptor ServiceOptions+        deprecated__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "deprecated"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+              Data.ProtoLens.FieldDescriptor ServiceOptions+        uninterpretedOption__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "uninterpreted_option"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+              Data.ProtoLens.FieldDescriptor ServiceOptions+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 34, features__field_descriptor),+           (Data.ProtoLens.Tag 33, deprecated__field_descriptor),+           (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _ServiceOptions'_unknownFields+        (\ x__ y__ -> x__ {_ServiceOptions'_unknownFields = y__})+  defMessage+    = ServiceOptions'_constructor+        {_ServiceOptions'features = Prelude.Nothing,+         _ServiceOptions'deprecated = Prelude.Nothing,+         _ServiceOptions'uninterpretedOption = Data.Vector.Generic.empty,+         _ServiceOptions'_unknownFields = []}+  parseMessage+    = let+        loop ::+          ServiceOptions+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+             -> Data.ProtoLens.Encoding.Bytes.Parser ServiceOptions+        loop x mutable'uninterpretedOption+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                         mutable'uninterpretedOption)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+                              frozen'uninterpretedOption+                              x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        274+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.isolate+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+                                       "features"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"features") y x)+                                  mutable'uninterpretedOption+                        264+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "deprecated"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+                                  mutable'uninterpretedOption+                        7994+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "uninterpreted_option"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'uninterpretedOption y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'uninterpretedOption+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+          "ServiceOptions"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'features") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just _v)+                  -> (Data.Monoid.<>)+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 274)+                       ((Prelude..)+                          (\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                          Data.ProtoLens.encodeMessage+                          _v))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'deprecated") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 264)+                          ((Prelude..)+                             Data.ProtoLens.Encoding.Bytes.putVarInt+                             (\ b -> if b then 1 else 0)+                             _v))+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                      (\ _v+                         -> (Data.Monoid.<>)+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+                              ((Prelude..)+                                 (\ bs+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                 Data.ProtoLens.encodeMessage+                                 _v))+                      (Lens.Family2.view+                         (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData ServiceOptions where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_ServiceOptions'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_ServiceOptions'features x__)+                (Control.DeepSeq.deepseq+                   (_ServiceOptions'deprecated x__)+                   (Control.DeepSeq.deepseq+                      (_ServiceOptions'uninterpretedOption x__) ())))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.location' @:: Lens' SourceCodeInfo [SourceCodeInfo'Location]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'location' @:: Lens' SourceCodeInfo (Data.Vector.Vector SourceCodeInfo'Location)@ -}+data SourceCodeInfo+  = SourceCodeInfo'_constructor {_SourceCodeInfo'location :: !(Data.Vector.Vector SourceCodeInfo'Location),+                                 _SourceCodeInfo'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show SourceCodeInfo where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField SourceCodeInfo "location" [SourceCodeInfo'Location] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'location+           (\ x__ y__ -> x__ {_SourceCodeInfo'location = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo "vec'location" (Data.Vector.Vector SourceCodeInfo'Location) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'location+           (\ x__ y__ -> x__ {_SourceCodeInfo'location = y__}))+        Prelude.id+instance Data.ProtoLens.Message SourceCodeInfo where+  messageName _ = Data.Text.pack "google.protobuf.SourceCodeInfo"+  packedMessageDescriptor _+    = "\n\+      \\SOSourceCodeInfo\DC2D\n\+      \\blocation\CAN\SOH \ETX(\v2(.google.protobuf.SourceCodeInfo.LocationR\blocation\SUB\206\SOH\n\+      \\bLocation\DC2\SYN\n\+      \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\SYN\n\+      \\EOTspan\CAN\STX \ETX(\ENQR\EOTspanB\STX\DLE\SOH\DC2)\n\+      \\DLEleading_comments\CAN\ETX \SOH(\tR\SIleadingComments\DC2+\n\+      \\DC1trailing_comments\CAN\EOT \SOH(\tR\DLEtrailingComments\DC2:\n\+      \\EMleading_detached_comments\CAN\ACK \ETX(\tR\ETBleadingDetachedComments"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        location__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "location"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo'Location)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"location")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, location__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _SourceCodeInfo'_unknownFields+        (\ x__ y__ -> x__ {_SourceCodeInfo'_unknownFields = y__})+  defMessage+    = SourceCodeInfo'_constructor+        {_SourceCodeInfo'location = Data.Vector.Generic.empty,+         _SourceCodeInfo'_unknownFields = []}+  parseMessage+    = let+        loop ::+          SourceCodeInfo+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SourceCodeInfo'Location+             -> Data.ProtoLens.Encoding.Bytes.Parser SourceCodeInfo+        loop x mutable'location+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'location <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                           (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                              mutable'location)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'location") frozen'location x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "location"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'location y)+                                loop x v+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'location+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'location <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                    Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'location)+          "SourceCodeInfo"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view+                   (Data.ProtoLens.Field.field @"vec'location") _x))+             (Data.ProtoLens.Encoding.Wire.buildFieldSet+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData SourceCodeInfo where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_SourceCodeInfo'_unknownFields x__)+             (Control.DeepSeq.deepseq (_SourceCodeInfo'location x__) ())+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.path' @:: Lens' SourceCodeInfo'Location [Data.Int.Int32]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'path' @:: Lens' SourceCodeInfo'Location (Data.Vector.Unboxed.Vector Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.span' @:: Lens' SourceCodeInfo'Location [Data.Int.Int32]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'span' @:: Lens' SourceCodeInfo'Location (Data.Vector.Unboxed.Vector Data.Int.Int32)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.leadingComments' @:: Lens' SourceCodeInfo'Location Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'leadingComments' @:: Lens' SourceCodeInfo'Location (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.trailingComments' @:: Lens' SourceCodeInfo'Location Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'trailingComments' @:: Lens' SourceCodeInfo'Location (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.leadingDetachedComments' @:: Lens' SourceCodeInfo'Location [Data.Text.Text]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'leadingDetachedComments' @:: Lens' SourceCodeInfo'Location (Data.Vector.Vector Data.Text.Text)@ -}+data SourceCodeInfo'Location+  = SourceCodeInfo'Location'_constructor {_SourceCodeInfo'Location'path :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+                                          _SourceCodeInfo'Location'span :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+                                          _SourceCodeInfo'Location'leadingComments :: !(Prelude.Maybe Data.Text.Text),+                                          _SourceCodeInfo'Location'trailingComments :: !(Prelude.Maybe Data.Text.Text),+                                          _SourceCodeInfo'Location'leadingDetachedComments :: !(Data.Vector.Vector Data.Text.Text),+                                          _SourceCodeInfo'Location'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show SourceCodeInfo'Location where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "path" [Data.Int.Int32] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'path+           (\ x__ y__ -> x__ {_SourceCodeInfo'Location'path = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'path" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'path+           (\ x__ y__ -> x__ {_SourceCodeInfo'Location'path = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "span" [Data.Int.Int32] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'span+           (\ x__ y__ -> x__ {_SourceCodeInfo'Location'span = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'span" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'span+           (\ x__ y__ -> x__ {_SourceCodeInfo'Location'span = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "leadingComments" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'leadingComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'leadingComments = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "maybe'leadingComments" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'leadingComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'leadingComments = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "trailingComments" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'trailingComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'trailingComments = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "maybe'trailingComments" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'trailingComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'trailingComments = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "leadingDetachedComments" [Data.Text.Text] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'leadingDetachedComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'leadingDetachedComments = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'leadingDetachedComments" (Data.Vector.Vector Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _SourceCodeInfo'Location'leadingDetachedComments+           (\ x__ y__+              -> x__ {_SourceCodeInfo'Location'leadingDetachedComments = y__}))+        Prelude.id+instance Data.ProtoLens.Message SourceCodeInfo'Location where+  messageName _+    = Data.Text.pack "google.protobuf.SourceCodeInfo.Location"+  packedMessageDescriptor _+    = "\n\+      \\bLocation\DC2\SYN\n\+      \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\SYN\n\+      \\EOTspan\CAN\STX \ETX(\ENQR\EOTspanB\STX\DLE\SOH\DC2)\n\+      \\DLEleading_comments\CAN\ETX \SOH(\tR\SIleadingComments\DC2+\n\+      \\DC1trailing_comments\CAN\EOT \SOH(\tR\DLEtrailingComments\DC2:\n\+      \\EMleading_detached_comments\CAN\ACK \ETX(\tR\ETBleadingDetachedComments"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        path__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "path"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"path")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+        span__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "span"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"span")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+        leadingComments__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "leading_comments"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'leadingComments")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+        trailingComments__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "trailing_comments"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'trailingComments")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+        leadingDetachedComments__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "leading_detached_comments"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked+                 (Data.ProtoLens.Field.field @"leadingDetachedComments")) ::+              Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, path__field_descriptor),+           (Data.ProtoLens.Tag 2, span__field_descriptor),+           (Data.ProtoLens.Tag 3, leadingComments__field_descriptor),+           (Data.ProtoLens.Tag 4, trailingComments__field_descriptor),+           (Data.ProtoLens.Tag 6, leadingDetachedComments__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _SourceCodeInfo'Location'_unknownFields+        (\ x__ y__ -> x__ {_SourceCodeInfo'Location'_unknownFields = y__})+  defMessage+    = SourceCodeInfo'Location'_constructor+        {_SourceCodeInfo'Location'path = Data.Vector.Generic.empty,+         _SourceCodeInfo'Location'span = Data.Vector.Generic.empty,+         _SourceCodeInfo'Location'leadingComments = Prelude.Nothing,+         _SourceCodeInfo'Location'trailingComments = Prelude.Nothing,+         _SourceCodeInfo'Location'leadingDetachedComments = Data.Vector.Generic.empty,+         _SourceCodeInfo'Location'_unknownFields = []}+  parseMessage+    = let+        loop ::+          SourceCodeInfo'Location+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+                   -> Data.ProtoLens.Encoding.Bytes.Parser SourceCodeInfo'Location+        loop x mutable'leadingDetachedComments mutable'path mutable'span+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'leadingDetachedComments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze+                                                             mutable'leadingDetachedComments)+                      frozen'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'path)+                      frozen'span <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'span)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'leadingDetachedComments")+                              frozen'leadingDetachedComments+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'path")+                                 frozen'path+                                 (Lens.Family2.set+                                    (Data.ProtoLens.Field.field @"vec'span") frozen'span x))))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.fromIntegral+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)+                                        "path"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'path y)+                                loop x mutable'leadingDetachedComments v mutable'span+                        10+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.fromIntegral+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)+                                                                    "path"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'path)+                                loop x mutable'leadingDetachedComments y mutable'span+                        16+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (Prelude.fmap+                                           Prelude.fromIntegral+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)+                                        "span"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'span y)+                                loop x mutable'leadingDetachedComments mutable'path v+                        18+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                        Data.ProtoLens.Encoding.Bytes.isolate+                                          (Prelude.fromIntegral len)+                                          ((let+                                              ploop qs+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+                                                     if packedEnd then+                                                         Prelude.return qs+                                                     else+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                                                    (Prelude.fmap+                                                                       Prelude.fromIntegral+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)+                                                                    "span"+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                                     (Data.ProtoLens.Encoding.Growing.append+                                                                        qs q)+                                                            ploop qs'+                                            in ploop)+                                             mutable'span)+                                loop x mutable'leadingDetachedComments mutable'path y+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "leading_comments"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"leadingComments") y x)+                                  mutable'leadingDetachedComments+                                  mutable'path+                                  mutable'span+                        34+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "trailing_comments"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"trailingComments") y x)+                                  mutable'leadingDetachedComments+                                  mutable'path+                                  mutable'span+                        50+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getText+                                              (Prelude.fromIntegral len))+                                        "leading_detached_comments"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append+                                          mutable'leadingDetachedComments y)+                                loop x v mutable'path mutable'span+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'leadingDetachedComments+                                  mutable'path+                                  mutable'span+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'leadingDetachedComments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                                   Data.ProtoLens.Encoding.Growing.new+              mutable'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              mutable'span <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              loop+                Data.ProtoLens.defMessage+                mutable'leadingDetachedComments+                mutable'path+                mutable'span)+          "Location"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (let+                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'path") _x+              in+                if Data.Vector.Generic.null p then+                    Data.Monoid.mempty+                else+                    (Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                      ((\ bs+                          -> (Data.Monoid.<>)+                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                  (Prelude.fromIntegral (Data.ByteString.length bs)))+                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                         (Data.ProtoLens.Encoding.Bytes.runBuilder+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                               ((Prelude..)+                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                               p))))+             ((Data.Monoid.<>)+                (let+                   p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'span") _x+                 in+                   if Data.Vector.Generic.null p then+                       Data.Monoid.mempty+                   else+                       (Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                         ((\ bs+                             -> (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                            (Data.ProtoLens.Encoding.Bytes.runBuilder+                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                                  ((Prelude..)+                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+                                  p))))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'leadingComments") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                             ((Prelude..)+                                (\ bs+                                   -> (Data.Monoid.<>)+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt+                                           (Prelude.fromIntegral (Data.ByteString.length bs)))+                                        (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                Data.Text.Encoding.encodeUtf8+                                _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'trailingComments") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+                                ((Prelude..)+                                   (\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                   Data.Text.Encoding.encodeUtf8+                                   _v))+                      ((Data.Monoid.<>)+                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                            (\ _v+                               -> (Data.Monoid.<>)+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+                                    ((Prelude..)+                                       (\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                       Data.Text.Encoding.encodeUtf8+                                       _v))+                            (Lens.Family2.view+                               (Data.ProtoLens.Field.field @"vec'leadingDetachedComments") _x))+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData SourceCodeInfo'Location where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_SourceCodeInfo'Location'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_SourceCodeInfo'Location'path x__)+                (Control.DeepSeq.deepseq+                   (_SourceCodeInfo'Location'span x__)+                   (Control.DeepSeq.deepseq+                      (_SourceCodeInfo'Location'leadingComments x__)+                      (Control.DeepSeq.deepseq+                         (_SourceCodeInfo'Location'trailingComments x__)+                         (Control.DeepSeq.deepseq+                            (_SourceCodeInfo'Location'leadingDetachedComments x__) ())))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' UninterpretedOption [UninterpretedOption'NamePart]@+         * 'Proto.Google.Protobuf.Descriptor_Fields.vec'name' @:: Lens' UninterpretedOption (Data.Vector.Vector UninterpretedOption'NamePart)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.identifierValue' @:: Lens' UninterpretedOption Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'identifierValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Text.Text)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.positiveIntValue' @:: Lens' UninterpretedOption Data.Word.Word64@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'positiveIntValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Word.Word64)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.negativeIntValue' @:: Lens' UninterpretedOption Data.Int.Int64@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'negativeIntValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Int.Int64)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.doubleValue' @:: Lens' UninterpretedOption Prelude.Double@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'doubleValue' @:: Lens' UninterpretedOption (Prelude.Maybe Prelude.Double)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.stringValue' @:: Lens' UninterpretedOption Data.ByteString.ByteString@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'stringValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.ByteString.ByteString)@+         * 'Proto.Google.Protobuf.Descriptor_Fields.aggregateValue' @:: Lens' UninterpretedOption Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'aggregateValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Text.Text)@ -}+data UninterpretedOption+  = UninterpretedOption'_constructor {_UninterpretedOption'name :: !(Data.Vector.Vector UninterpretedOption'NamePart),+                                      _UninterpretedOption'identifierValue :: !(Prelude.Maybe Data.Text.Text),+                                      _UninterpretedOption'positiveIntValue :: !(Prelude.Maybe Data.Word.Word64),+                                      _UninterpretedOption'negativeIntValue :: !(Prelude.Maybe Data.Int.Int64),+                                      _UninterpretedOption'doubleValue :: !(Prelude.Maybe Prelude.Double),+                                      _UninterpretedOption'stringValue :: !(Prelude.Maybe Data.ByteString.ByteString),+                                      _UninterpretedOption'aggregateValue :: !(Prelude.Maybe Data.Text.Text),+                                      _UninterpretedOption'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show UninterpretedOption where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField UninterpretedOption "name" [UninterpretedOption'NamePart] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'name+           (\ x__ y__ -> x__ {_UninterpretedOption'name = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField UninterpretedOption "vec'name" (Data.Vector.Vector UninterpretedOption'NamePart) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'name+           (\ x__ y__ -> x__ {_UninterpretedOption'name = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "identifierValue" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'identifierValue+           (\ x__ y__ -> x__ {_UninterpretedOption'identifierValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'identifierValue" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'identifierValue+           (\ x__ y__ -> x__ {_UninterpretedOption'identifierValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "positiveIntValue" Data.Word.Word64 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'positiveIntValue+           (\ x__ y__ -> x__ {_UninterpretedOption'positiveIntValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'positiveIntValue" (Prelude.Maybe Data.Word.Word64) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'positiveIntValue+           (\ x__ y__ -> x__ {_UninterpretedOption'positiveIntValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "negativeIntValue" Data.Int.Int64 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'negativeIntValue+           (\ x__ y__ -> x__ {_UninterpretedOption'negativeIntValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'negativeIntValue" (Prelude.Maybe Data.Int.Int64) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'negativeIntValue+           (\ x__ y__ -> x__ {_UninterpretedOption'negativeIntValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "doubleValue" Prelude.Double where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'doubleValue+           (\ x__ y__ -> x__ {_UninterpretedOption'doubleValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'doubleValue" (Prelude.Maybe Prelude.Double) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'doubleValue+           (\ x__ y__ -> x__ {_UninterpretedOption'doubleValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "stringValue" Data.ByteString.ByteString where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'stringValue+           (\ x__ y__ -> x__ {_UninterpretedOption'stringValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'stringValue" (Prelude.Maybe Data.ByteString.ByteString) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'stringValue+           (\ x__ y__ -> x__ {_UninterpretedOption'stringValue = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "aggregateValue" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'aggregateValue+           (\ x__ y__ -> x__ {_UninterpretedOption'aggregateValue = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'aggregateValue" (Prelude.Maybe Data.Text.Text) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'aggregateValue+           (\ x__ y__ -> x__ {_UninterpretedOption'aggregateValue = y__}))+        Prelude.id+instance Data.ProtoLens.Message UninterpretedOption where+  messageName _+    = Data.Text.pack "google.protobuf.UninterpretedOption"+  packedMessageDescriptor _+    = "\n\+      \\DC3UninterpretedOption\DC2A\n\+      \\EOTname\CAN\STX \ETX(\v2-.google.protobuf.UninterpretedOption.NamePartR\EOTname\DC2)\n\+      \\DLEidentifier_value\CAN\ETX \SOH(\tR\SIidentifierValue\DC2,\n\+      \\DC2positive_int_value\CAN\EOT \SOH(\EOTR\DLEpositiveIntValue\DC2,\n\+      \\DC2negative_int_value\CAN\ENQ \SOH(\ETXR\DLEnegativeIntValue\DC2!\n\+      \\fdouble_value\CAN\ACK \SOH(\SOHR\vdoubleValue\DC2!\n\+      \\fstring_value\CAN\a \SOH(\fR\vstringValue\DC2'\n\+      \\SIaggregate_value\CAN\b \SOH(\tR\SOaggregateValue\SUBJ\n\+      \\bNamePart\DC2\ESC\n\+      \\tname_part\CAN\SOH \STX(\tR\bnamePart\DC2!\n\+      \\fis_extension\CAN\STX \STX(\bR\visExtension"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        name__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor UninterpretedOption'NamePart)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"name")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        identifierValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "identifier_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'identifierValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        positiveIntValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "positive_int_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'positiveIntValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        negativeIntValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "negative_int_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'negativeIntValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        doubleValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "double_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Double)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'doubleValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        stringValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "string_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'stringValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+        aggregateValue__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "aggregate_value"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'aggregateValue")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 2, name__field_descriptor),+           (Data.ProtoLens.Tag 3, identifierValue__field_descriptor),+           (Data.ProtoLens.Tag 4, positiveIntValue__field_descriptor),+           (Data.ProtoLens.Tag 5, negativeIntValue__field_descriptor),+           (Data.ProtoLens.Tag 6, doubleValue__field_descriptor),+           (Data.ProtoLens.Tag 7, stringValue__field_descriptor),+           (Data.ProtoLens.Tag 8, aggregateValue__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _UninterpretedOption'_unknownFields+        (\ x__ y__ -> x__ {_UninterpretedOption'_unknownFields = y__})+  defMessage+    = UninterpretedOption'_constructor+        {_UninterpretedOption'name = Data.Vector.Generic.empty,+         _UninterpretedOption'identifierValue = Prelude.Nothing,+         _UninterpretedOption'positiveIntValue = Prelude.Nothing,+         _UninterpretedOption'negativeIntValue = Prelude.Nothing,+         _UninterpretedOption'doubleValue = Prelude.Nothing,+         _UninterpretedOption'stringValue = Prelude.Nothing,+         _UninterpretedOption'aggregateValue = Prelude.Nothing,+         _UninterpretedOption'_unknownFields = []}+  parseMessage+    = let+        loop ::+          UninterpretedOption+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption'NamePart+             -> Data.ProtoLens.Encoding.Bytes.Parser UninterpretedOption+        loop x mutable'name+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'name <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'name)+                      (let missing = []+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields+                           (\ !t -> Prelude.reverse t)+                           (Lens.Family2.set+                              (Data.ProtoLens.Field.field @"vec'name") frozen'name x))+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        18+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.isolate+                                              (Prelude.fromIntegral len)+                                              Data.ProtoLens.parseMessage)+                                        "name"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'name y)+                                loop x v+                        26+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "identifier_value"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"identifierValue") y x)+                                  mutable'name+                        32+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       Data.ProtoLens.Encoding.Bytes.getVarInt "positive_int_value"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"positiveIntValue") y x)+                                  mutable'name+                        40+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Prelude.fromIntegral+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "negative_int_value"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"negativeIntValue") y x)+                                  mutable'name+                        49+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          Data.ProtoLens.Encoding.Bytes.wordToDouble+                                          Data.ProtoLens.Encoding.Bytes.getFixed64)+                                       "double_value"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"doubleValue") y x)+                                  mutable'name+                        58+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getBytes+                                             (Prelude.fromIntegral len))+                                       "string_value"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"stringValue") y x)+                                  mutable'name+                        66+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "aggregate_value"+                                loop+                                  (Lens.Family2.set+                                     (Data.ProtoLens.Field.field @"aggregateValue") y x)+                                  mutable'name+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'name+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'name <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'name)+          "UninterpretedOption"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                (\ _v+                   -> (Data.Monoid.<>)+                        (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+                        ((Prelude..)+                           (\ bs+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt+                                      (Prelude.fromIntegral (Data.ByteString.length bs)))+                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                           Data.ProtoLens.encodeMessage+                           _v))+                (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'name") _x))+             ((Data.Monoid.<>)+                (case+                     Lens.Family2.view+                       (Data.ProtoLens.Field.field @"maybe'identifierValue") _x+                 of+                   Prelude.Nothing -> Data.Monoid.mempty+                   (Prelude.Just _v)+                     -> (Data.Monoid.<>)+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                          ((Prelude..)+                             (\ bs+                                -> (Data.Monoid.<>)+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                             Data.Text.Encoding.encodeUtf8+                             _v))+                ((Data.Monoid.<>)+                   (case+                        Lens.Family2.view+                          (Data.ProtoLens.Field.field @"maybe'positiveIntValue") _x+                    of+                      Prelude.Nothing -> Data.Monoid.mempty+                      (Prelude.Just _v)+                        -> (Data.Monoid.<>)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+                             (Data.ProtoLens.Encoding.Bytes.putVarInt _v))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view+                             (Data.ProtoLens.Field.field @"maybe'negativeIntValue") _x+                       of+                         Prelude.Nothing -> Data.Monoid.mempty+                         (Prelude.Just _v)+                           -> (Data.Monoid.<>)+                                (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+                                ((Prelude..)+                                   Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+                      ((Data.Monoid.<>)+                         (case+                              Lens.Family2.view+                                (Data.ProtoLens.Field.field @"maybe'doubleValue") _x+                          of+                            Prelude.Nothing -> Data.Monoid.mempty+                            (Prelude.Just _v)+                              -> (Data.Monoid.<>)+                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 49)+                                   ((Prelude..)+                                      Data.ProtoLens.Encoding.Bytes.putFixed64+                                      Data.ProtoLens.Encoding.Bytes.doubleToWord+                                      _v))+                         ((Data.Monoid.<>)+                            (case+                                 Lens.Family2.view+                                   (Data.ProtoLens.Field.field @"maybe'stringValue") _x+                             of+                               Prelude.Nothing -> Data.Monoid.mempty+                               (Prelude.Just _v)+                                 -> (Data.Monoid.<>)+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+                                      ((\ bs+                                          -> (Data.Monoid.<>)+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                  (Prelude.fromIntegral+                                                     (Data.ByteString.length bs)))+                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                         _v))+                            ((Data.Monoid.<>)+                               (case+                                    Lens.Family2.view+                                      (Data.ProtoLens.Field.field @"maybe'aggregateValue") _x+                                of+                                  Prelude.Nothing -> Data.Monoid.mempty+                                  (Prelude.Just _v)+                                    -> (Data.Monoid.<>)+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+                                         ((Prelude..)+                                            (\ bs+                                               -> (Data.Monoid.<>)+                                                    (Data.ProtoLens.Encoding.Bytes.putVarInt+                                                       (Prelude.fromIntegral+                                                          (Data.ByteString.length bs)))+                                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                            Data.Text.Encoding.encodeUtf8+                                            _v))+                               (Data.ProtoLens.Encoding.Wire.buildFieldSet+                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))+instance Control.DeepSeq.NFData UninterpretedOption where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_UninterpretedOption'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_UninterpretedOption'name x__)+                (Control.DeepSeq.deepseq+                   (_UninterpretedOption'identifierValue x__)+                   (Control.DeepSeq.deepseq+                      (_UninterpretedOption'positiveIntValue x__)+                      (Control.DeepSeq.deepseq+                         (_UninterpretedOption'negativeIntValue x__)+                         (Control.DeepSeq.deepseq+                            (_UninterpretedOption'doubleValue x__)+                            (Control.DeepSeq.deepseq+                               (_UninterpretedOption'stringValue x__)+                               (Control.DeepSeq.deepseq+                                  (_UninterpretedOption'aggregateValue x__) ())))))))+{- | Fields :+     +         * 'Proto.Google.Protobuf.Descriptor_Fields.namePart' @:: Lens' UninterpretedOption'NamePart Data.Text.Text@+         * 'Proto.Google.Protobuf.Descriptor_Fields.isExtension' @:: Lens' UninterpretedOption'NamePart Prelude.Bool@ -}+data UninterpretedOption'NamePart+  = UninterpretedOption'NamePart'_constructor {_UninterpretedOption'NamePart'namePart :: !Data.Text.Text,+                                               _UninterpretedOption'NamePart'isExtension :: !Prelude.Bool,+                                               _UninterpretedOption'NamePart'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show UninterpretedOption'NamePart where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField UninterpretedOption'NamePart "namePart" Data.Text.Text where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'NamePart'namePart+           (\ x__ y__ -> x__ {_UninterpretedOption'NamePart'namePart = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption'NamePart "isExtension" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _UninterpretedOption'NamePart'isExtension+           (\ x__ y__+              -> x__ {_UninterpretedOption'NamePart'isExtension = y__}))+        Prelude.id+instance Data.ProtoLens.Message UninterpretedOption'NamePart where+  messageName _+    = Data.Text.pack "google.protobuf.UninterpretedOption.NamePart"+  packedMessageDescriptor _+    = "\n\+      \\bNamePart\DC2\ESC\n\+      \\tname_part\CAN\SOH \STX(\tR\bnamePart\DC2!\n\+      \\fis_extension\CAN\STX \STX(\bR\visExtension"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        namePart__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "name_part"+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Required+                 (Data.ProtoLens.Field.field @"namePart")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption'NamePart+        isExtension__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "is_extension"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Required+                 (Data.ProtoLens.Field.field @"isExtension")) ::+              Data.ProtoLens.FieldDescriptor UninterpretedOption'NamePart+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, namePart__field_descriptor),+           (Data.ProtoLens.Tag 2, isExtension__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _UninterpretedOption'NamePart'_unknownFields+        (\ x__ y__+           -> x__ {_UninterpretedOption'NamePart'_unknownFields = y__})+  defMessage+    = UninterpretedOption'NamePart'_constructor+        {_UninterpretedOption'NamePart'namePart = Data.ProtoLens.fieldDefault,+         _UninterpretedOption'NamePart'isExtension = Data.ProtoLens.fieldDefault,+         _UninterpretedOption'NamePart'_unknownFields = []}+  parseMessage+    = let+        loop ::+          UninterpretedOption'NamePart+          -> Prelude.Bool+             -> Prelude.Bool+                -> Data.ProtoLens.Encoding.Bytes.Parser UninterpretedOption'NamePart+        loop x required'isExtension required'namePart+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do (let+                         missing+                           = (if required'isExtension then (:) "is_extension" else Prelude.id)+                               ((if required'namePart then (:) "name_part" else Prelude.id) [])+                       in+                         if Prelude.null missing then+                             Prelude.return ()+                         else+                             Prelude.fail+                               ((Prelude.++)+                                  "Missing required fields: "+                                  (Prelude.show (missing :: [Prelude.String]))))+                      Prelude.return+                        (Lens.Family2.over+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+               else+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+                      case tag of+                        10+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getText+                                             (Prelude.fromIntegral len))+                                       "name_part"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"namePart") y x)+                                  required'isExtension+                                  Prelude.False+                        16+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "is_extension"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isExtension") y x)+                                  Prelude.False+                                  required'namePart+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  required'isExtension+                                  required'namePart+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do loop Data.ProtoLens.defMessage Prelude.True Prelude.True)+          "NamePart"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             ((Data.Monoid.<>)+                (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+                ((Prelude..)+                   (\ bs+                      -> (Data.Monoid.<>)+                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                   Data.Text.Encoding.encodeUtf8+                   (Lens.Family2.view (Data.ProtoLens.Field.field @"namePart") _x)))+             ((Data.Monoid.<>)+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+                   ((Prelude..)+                      Data.ProtoLens.Encoding.Bytes.putVarInt+                      (\ b -> if b then 1 else 0)+                      (Lens.Family2.view+                         (Data.ProtoLens.Field.field @"isExtension") _x)))+                (Data.ProtoLens.Encoding.Wire.buildFieldSet+                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData UninterpretedOption'NamePart where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_UninterpretedOption'NamePart'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_UninterpretedOption'NamePart'namePart x__)+                (Control.DeepSeq.deepseq+                   (_UninterpretedOption'NamePart'isExtension x__) ()))+packedFileDescriptor :: Data.ByteString.ByteString+packedFileDescriptor+  = "\n\+    \ google/protobuf/descriptor.proto\DC2\SIgoogle.protobuf\"M\n\+    \\DC1FileDescriptorSet\DC28\n\+    \\EOTfile\CAN\SOH \ETX(\v2$.google.protobuf.FileDescriptorProtoR\EOTfile\"\152\ENQ\n\+    \\DC3FileDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\+    \\apackage\CAN\STX \SOH(\tR\apackage\DC2\RS\n\+    \\n\+    \dependency\CAN\ETX \ETX(\tR\n\+    \dependency\DC2+\n\+    \\DC1public_dependency\CAN\n\+    \ \ETX(\ENQR\DLEpublicDependency\DC2'\n\+    \\SIweak_dependency\CAN\v \ETX(\ENQR\SOweakDependency\DC2C\n\+    \\fmessage_type\CAN\EOT \ETX(\v2 .google.protobuf.DescriptorProtoR\vmessageType\DC2A\n\+    \\tenum_type\CAN\ENQ \ETX(\v2$.google.protobuf.EnumDescriptorProtoR\benumType\DC2A\n\+    \\aservice\CAN\ACK \ETX(\v2'.google.protobuf.ServiceDescriptorProtoR\aservice\DC2C\n\+    \\textension\CAN\a \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\textension\DC26\n\+    \\aoptions\CAN\b \SOH(\v2\FS.google.protobuf.FileOptionsR\aoptions\DC2I\n\+    \\DLEsource_code_info\CAN\t \SOH(\v2\US.google.protobuf.SourceCodeInfoR\SOsourceCodeInfo\DC2\SYN\n\+    \\ACKsyntax\CAN\f \SOH(\tR\ACKsyntax\DC22\n\+    \\aedition\CAN\SO \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\"\185\ACK\n\+    \\SIDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2;\n\+    \\ENQfield\CAN\STX \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\ENQfield\DC2C\n\+    \\textension\CAN\ACK \ETX(\v2%.google.protobuf.FieldDescriptorProtoR\textension\DC2A\n\+    \\vnested_type\CAN\ETX \ETX(\v2 .google.protobuf.DescriptorProtoR\n\+    \nestedType\DC2A\n\+    \\tenum_type\CAN\EOT \ETX(\v2$.google.protobuf.EnumDescriptorProtoR\benumType\DC2X\n\+    \\SIextension_range\CAN\ENQ \ETX(\v2/.google.protobuf.DescriptorProto.ExtensionRangeR\SOextensionRange\DC2D\n\+    \\n\+    \oneof_decl\CAN\b \ETX(\v2%.google.protobuf.OneofDescriptorProtoR\toneofDecl\DC29\n\+    \\aoptions\CAN\a \SOH(\v2\US.google.protobuf.MessageOptionsR\aoptions\DC2U\n\+    \\SOreserved_range\CAN\t \ETX(\v2..google.protobuf.DescriptorProto.ReservedRangeR\rreservedRange\DC2#\n\+    \\rreserved_name\CAN\n\+    \ \ETX(\tR\freservedName\SUBz\n\+    \\SOExtensionRange\DC2\DC4\n\+    \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+    \\ETXend\CAN\STX \SOH(\ENQR\ETXend\DC2@\n\+    \\aoptions\CAN\ETX \SOH(\v2&.google.protobuf.ExtensionRangeOptionsR\aoptions\SUB7\n\+    \\rReservedRange\DC2\DC4\n\+    \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+    \\ETXend\CAN\STX \SOH(\ENQR\ETXend\"\204\EOT\n\+    \\NAKExtensionRangeOptions\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\DC2Y\n\+    \\vdeclaration\CAN\STX \ETX(\v22.google.protobuf.ExtensionRangeOptions.DeclarationR\vdeclarationB\ETX\136\SOH\STX\DC27\n\+    \\bfeatures\CAN2 \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2m\n\+    \\fverification\CAN\ETX \SOH(\SO28.google.protobuf.ExtensionRangeOptions.VerificationState:\n\+    \UNVERIFIEDR\fverificationB\ETX\136\SOH\STX\SUB\148\SOH\n\+    \\vDeclaration\DC2\SYN\n\+    \\ACKnumber\CAN\SOH \SOH(\ENQR\ACKnumber\DC2\ESC\n\+    \\tfull_name\CAN\STX \SOH(\tR\bfullName\DC2\DC2\n\+    \\EOTtype\CAN\ETX \SOH(\tR\EOTtype\DC2\SUB\n\+    \\breserved\CAN\ENQ \SOH(\bR\breserved\DC2\SUB\n\+    \\brepeated\CAN\ACK \SOH(\bR\brepeatedJ\EOT\b\EOT\DLE\ENQ\"4\n\+    \\DC1VerificationState\DC2\SI\n\+    \\vDECLARATION\DLE\NUL\DC2\SO\n\+    \\n\+    \UNVERIFIED\DLE\SOH*\t\b\232\a\DLE\128\128\128\128\STX\"\193\ACK\n\+    \\DC4FieldDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\SYN\n\+    \\ACKnumber\CAN\ETX \SOH(\ENQR\ACKnumber\DC2A\n\+    \\ENQlabel\CAN\EOT \SOH(\SO2+.google.protobuf.FieldDescriptorProto.LabelR\ENQlabel\DC2>\n\+    \\EOTtype\CAN\ENQ \SOH(\SO2*.google.protobuf.FieldDescriptorProto.TypeR\EOTtype\DC2\ESC\n\+    \\ttype_name\CAN\ACK \SOH(\tR\btypeName\DC2\SUB\n\+    \\bextendee\CAN\STX \SOH(\tR\bextendee\DC2#\n\+    \\rdefault_value\CAN\a \SOH(\tR\fdefaultValue\DC2\US\n\+    \\voneof_index\CAN\t \SOH(\ENQR\n\+    \oneofIndex\DC2\ESC\n\+    \\tjson_name\CAN\n\+    \ \SOH(\tR\bjsonName\DC27\n\+    \\aoptions\CAN\b \SOH(\v2\GS.google.protobuf.FieldOptionsR\aoptions\DC2'\n\+    \\SIproto3_optional\CAN\DC1 \SOH(\bR\SOproto3Optional\"\182\STX\n\+    \\EOTType\DC2\SI\n\+    \\vTYPE_DOUBLE\DLE\SOH\DC2\SO\n\+    \\n\+    \TYPE_FLOAT\DLE\STX\DC2\SO\n\+    \\n\+    \TYPE_INT64\DLE\ETX\DC2\SI\n\+    \\vTYPE_UINT64\DLE\EOT\DC2\SO\n\+    \\n\+    \TYPE_INT32\DLE\ENQ\DC2\DLE\n\+    \\fTYPE_FIXED64\DLE\ACK\DC2\DLE\n\+    \\fTYPE_FIXED32\DLE\a\DC2\r\n\+    \\tTYPE_BOOL\DLE\b\DC2\SI\n\+    \\vTYPE_STRING\DLE\t\DC2\SO\n\+    \\n\+    \TYPE_GROUP\DLE\n\+    \\DC2\DLE\n\+    \\fTYPE_MESSAGE\DLE\v\DC2\SO\n\+    \\n\+    \TYPE_BYTES\DLE\f\DC2\SI\n\+    \\vTYPE_UINT32\DLE\r\DC2\r\n\+    \\tTYPE_ENUM\DLE\SO\DC2\DC1\n\+    \\rTYPE_SFIXED32\DLE\SI\DC2\DC1\n\+    \\rTYPE_SFIXED64\DLE\DLE\DC2\SI\n\+    \\vTYPE_SINT32\DLE\DC1\DC2\SI\n\+    \\vTYPE_SINT64\DLE\DC2\"C\n\+    \\ENQLabel\DC2\DC2\n\+    \\SOLABEL_OPTIONAL\DLE\SOH\DC2\DC2\n\+    \\SOLABEL_REPEATED\DLE\ETX\DC2\DC2\n\+    \\SOLABEL_REQUIRED\DLE\STX\"c\n\+    \\DC4OneofDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC27\n\+    \\aoptions\CAN\STX \SOH(\v2\GS.google.protobuf.OneofOptionsR\aoptions\"\227\STX\n\+    \\DC3EnumDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2?\n\+    \\ENQvalue\CAN\STX \ETX(\v2).google.protobuf.EnumValueDescriptorProtoR\ENQvalue\DC26\n\+    \\aoptions\CAN\ETX \SOH(\v2\FS.google.protobuf.EnumOptionsR\aoptions\DC2]\n\+    \\SOreserved_range\CAN\EOT \ETX(\v26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\DC2#\n\+    \\rreserved_name\CAN\ENQ \ETX(\tR\freservedName\SUB;\n\+    \\DC1EnumReservedRange\DC2\DC4\n\+    \\ENQstart\CAN\SOH \SOH(\ENQR\ENQstart\DC2\DLE\n\+    \\ETXend\CAN\STX \SOH(\ENQR\ETXend\"\131\SOH\n\+    \\CANEnumValueDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\SYN\n\+    \\ACKnumber\CAN\STX \SOH(\ENQR\ACKnumber\DC2;\n\+    \\aoptions\CAN\ETX \SOH(\v2!.google.protobuf.EnumValueOptionsR\aoptions\"\167\SOH\n\+    \\SYNServiceDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2>\n\+    \\ACKmethod\CAN\STX \ETX(\v2&.google.protobuf.MethodDescriptorProtoR\ACKmethod\DC29\n\+    \\aoptions\CAN\ETX \SOH(\v2\US.google.protobuf.ServiceOptionsR\aoptions\"\137\STX\n\+    \\NAKMethodDescriptorProto\DC2\DC2\n\+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\GS\n\+    \\n\+    \input_type\CAN\STX \SOH(\tR\tinputType\DC2\US\n\+    \\voutput_type\CAN\ETX \SOH(\tR\n\+    \outputType\DC28\n\+    \\aoptions\CAN\EOT \SOH(\v2\RS.google.protobuf.MethodOptionsR\aoptions\DC20\n\+    \\DLEclient_streaming\CAN\ENQ \SOH(\b:\ENQfalseR\SIclientStreaming\DC20\n\+    \\DLEserver_streaming\CAN\ACK \SOH(\b:\ENQfalseR\SIserverStreaming\"\173\t\n\+    \\vFileOptions\DC2!\n\+    \\fjava_package\CAN\SOH \SOH(\tR\vjavaPackage\DC20\n\+    \\DC4java_outer_classname\CAN\b \SOH(\tR\DC2javaOuterClassname\DC25\n\+    \\DC3java_multiple_files\CAN\n\+    \ \SOH(\b:\ENQfalseR\DC1javaMultipleFiles\DC2D\n\+    \\GSjava_generate_equals_and_hash\CAN\DC4 \SOH(\bR\EMjavaGenerateEqualsAndHashB\STX\CAN\SOH\DC2:\n\+    \\SYNjava_string_check_utf8\CAN\ESC \SOH(\b:\ENQfalseR\DC3javaStringCheckUtf8\DC2S\n\+    \\foptimize_for\CAN\t \SOH(\SO2).google.protobuf.FileOptions.OptimizeMode:\ENQSPEEDR\voptimizeFor\DC2\GS\n\+    \\n\+    \go_package\CAN\v \SOH(\tR\tgoPackage\DC25\n\+    \\DC3cc_generic_services\CAN\DLE \SOH(\b:\ENQfalseR\DC1ccGenericServices\DC29\n\+    \\NAKjava_generic_services\CAN\DC1 \SOH(\b:\ENQfalseR\DC3javaGenericServices\DC25\n\+    \\DC3py_generic_services\CAN\DC2 \SOH(\b:\ENQfalseR\DC1pyGenericServices\DC2%\n\+    \\n\+    \deprecated\CAN\ETB \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2.\n\+    \\DLEcc_enable_arenas\CAN\US \SOH(\b:\EOTtrueR\SOccEnableArenas\DC2*\n\+    \\DC1objc_class_prefix\CAN$ \SOH(\tR\SIobjcClassPrefix\DC2)\n\+    \\DLEcsharp_namespace\CAN% \SOH(\tR\SIcsharpNamespace\DC2!\n\+    \\fswift_prefix\CAN' \SOH(\tR\vswiftPrefix\DC2(\n\+    \\DLEphp_class_prefix\CAN( \SOH(\tR\SOphpClassPrefix\DC2#\n\+    \\rphp_namespace\CAN) \SOH(\tR\fphpNamespace\DC24\n\+    \\SYNphp_metadata_namespace\CAN, \SOH(\tR\DC4phpMetadataNamespace\DC2!\n\+    \\fruby_package\CAN- \SOH(\tR\vrubyPackage\DC27\n\+    \\bfeatures\CAN2 \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\":\n\+    \\fOptimizeMode\DC2\t\n\+    \\ENQSPEED\DLE\SOH\DC2\r\n\+    \\tCODE_SIZE\DLE\STX\DC2\DLE\n\+    \\fLITE_RUNTIME\DLE\ETX*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b*\DLE+J\EOT\b&\DLE'R\DC4php_generic_services\"\244\ETX\n\+    \\SOMessageOptions\DC2<\n\+    \\ETBmessage_set_wire_format\CAN\SOH \SOH(\b:\ENQfalseR\DC4messageSetWireFormat\DC2L\n\+    \\USno_standard_descriptor_accessor\CAN\STX \SOH(\b:\ENQfalseR\FSnoStandardDescriptorAccessor\DC2%\n\+    \\n\+    \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2\ESC\n\+    \\tmap_entry\CAN\a \SOH(\bR\bmapEntry\DC2V\n\+    \&deprecated_legacy_json_field_conflicts\CAN\v \SOH(\bR\"deprecatedLegacyJsonFieldConflictsB\STX\CAN\SOH\DC27\n\+    \\bfeatures\CAN\f \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\EOT\DLE\ENQJ\EOT\b\ENQ\DLE\ACKJ\EOT\b\ACK\DLE\aJ\EOT\b\b\DLE\tJ\EOT\b\t\DLE\n\+    \\"\157\r\n\+    \\fFieldOptions\DC2A\n\+    \\ENQctype\CAN\SOH \SOH(\SO2#.google.protobuf.FieldOptions.CType:\ACKSTRINGR\ENQctype\DC2\SYN\n\+    \\ACKpacked\CAN\STX \SOH(\bR\ACKpacked\DC2G\n\+    \\ACKjstype\CAN\ACK \SOH(\SO2$.google.protobuf.FieldOptions.JSType:\tJS_NORMALR\ACKjstype\DC2\EM\n\+    \\EOTlazy\CAN\ENQ \SOH(\b:\ENQfalseR\EOTlazy\DC2.\n\+    \\SIunverified_lazy\CAN\SI \SOH(\b:\ENQfalseR\SOunverifiedLazy\DC2%\n\+    \\n\+    \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2\EM\n\+    \\EOTweak\CAN\n\+    \ \SOH(\b:\ENQfalseR\EOTweak\DC2(\n\+    \\fdebug_redact\CAN\DLE \SOH(\b:\ENQfalseR\vdebugRedact\DC2K\n\+    \\tretention\CAN\DC1 \SOH(\SO2-.google.protobuf.FieldOptions.OptionRetentionR\tretention\DC2H\n\+    \\atargets\CAN\DC3 \ETX(\SO2..google.protobuf.FieldOptions.OptionTargetTypeR\atargets\DC2W\n\+    \\DLEedition_defaults\CAN\DC4 \ETX(\v2,.google.protobuf.FieldOptions.EditionDefaultR\SIeditionDefaults\DC27\n\+    \\bfeatures\CAN\NAK \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2U\n\+    \\SIfeature_support\CAN\SYN \SOH(\v2,.google.protobuf.FieldOptions.FeatureSupportR\SOfeatureSupport\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\SUBZ\n\+    \\SOEditionDefault\DC22\n\+    \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2\DC4\n\+    \\ENQvalue\CAN\STX \SOH(\tR\ENQvalue\SUB\150\STX\n\+    \\SOFeatureSupport\DC2G\n\+    \\DC2edition_introduced\CAN\SOH \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionIntroduced\DC2G\n\+    \\DC2edition_deprecated\CAN\STX \SOH(\SO2\CAN.google.protobuf.EditionR\DC1editionDeprecated\DC2/\n\+    \\DC3deprecation_warning\CAN\ETX \SOH(\tR\DC2deprecationWarning\DC2A\n\+    \\SIedition_removed\CAN\EOT \SOH(\SO2\CAN.google.protobuf.EditionR\SOeditionRemoved\"/\n\+    \\ENQCType\DC2\n\+    \\n\+    \\ACKSTRING\DLE\NUL\DC2\b\n\+    \\EOTCORD\DLE\SOH\DC2\DLE\n\+    \\fSTRING_PIECE\DLE\STX\"5\n\+    \\ACKJSType\DC2\r\n\+    \\tJS_NORMAL\DLE\NUL\DC2\r\n\+    \\tJS_STRING\DLE\SOH\DC2\r\n\+    \\tJS_NUMBER\DLE\STX\"U\n\+    \\SIOptionRetention\DC2\NAK\n\+    \\DC1RETENTION_UNKNOWN\DLE\NUL\DC2\NAK\n\+    \\DC1RETENTION_RUNTIME\DLE\SOH\DC2\DC4\n\+    \\DLERETENTION_SOURCE\DLE\STX\"\140\STX\n\+    \\DLEOptionTargetType\DC2\ETB\n\+    \\DC3TARGET_TYPE_UNKNOWN\DLE\NUL\DC2\DC4\n\+    \\DLETARGET_TYPE_FILE\DLE\SOH\DC2\US\n\+    \\ESCTARGET_TYPE_EXTENSION_RANGE\DLE\STX\DC2\ETB\n\+    \\DC3TARGET_TYPE_MESSAGE\DLE\ETX\DC2\NAK\n\+    \\DC1TARGET_TYPE_FIELD\DLE\EOT\DC2\NAK\n\+    \\DC1TARGET_TYPE_ONEOF\DLE\ENQ\DC2\DC4\n\+    \\DLETARGET_TYPE_ENUM\DLE\ACK\DC2\SUB\n\+    \\SYNTARGET_TYPE_ENUM_ENTRY\DLE\a\DC2\ETB\n\+    \\DC3TARGET_TYPE_SERVICE\DLE\b\DC2\SYN\n\+    \\DC2TARGET_TYPE_METHOD\DLE\t*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\EOT\DLE\ENQJ\EOT\b\DC2\DLE\DC3\"\172\SOH\n\+    \\fOneofOptions\DC27\n\+    \\bfeatures\CAN\SOH \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX\"\209\STX\n\+    \\vEnumOptions\DC2\US\n\+    \\vallow_alias\CAN\STX \SOH(\bR\n\+    \allowAlias\DC2%\n\+    \\n\+    \deprecated\CAN\ETX \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2V\n\+    \&deprecated_legacy_json_field_conflicts\CAN\ACK \SOH(\bR\"deprecatedLegacyJsonFieldConflictsB\STX\CAN\SOH\DC27\n\+    \\bfeatures\CAN\a \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STXJ\EOT\b\ENQ\DLE\ACK\"\216\STX\n\+    \\DLEEnumValueOptions\DC2%\n\+    \\n\+    \deprecated\CAN\SOH \SOH(\b:\ENQfalseR\n\+    \deprecated\DC27\n\+    \\bfeatures\CAN\STX \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2(\n\+    \\fdebug_redact\CAN\ETX \SOH(\b:\ENQfalseR\vdebugRedact\DC2U\n\+    \\SIfeature_support\CAN\EOT \SOH(\v2,.google.protobuf.FieldOptions.FeatureSupportR\SOfeatureSupport\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX\"\213\SOH\n\+    \\SOServiceOptions\DC27\n\+    \\bfeatures\CAN\" \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2%\n\+    \\n\+    \deprecated\CAN! \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption*\t\b\232\a\DLE\128\128\128\128\STX\"\153\ETX\n\+    \\rMethodOptions\DC2%\n\+    \\n\+    \deprecated\CAN! \SOH(\b:\ENQfalseR\n\+    \deprecated\DC2q\n\+    \\DC1idempotency_level\CAN\" \SOH(\SO2/.google.protobuf.MethodOptions.IdempotencyLevel:\DC3IDEMPOTENCY_UNKNOWNR\DLEidempotencyLevel\DC27\n\+    \\bfeatures\CAN# \SOH(\v2\ESC.google.protobuf.FeatureSetR\bfeatures\DC2X\n\+    \\DC4uninterpreted_option\CAN\231\a \ETX(\v2$.google.protobuf.UninterpretedOptionR\DC3uninterpretedOption\"P\n\+    \\DLEIdempotencyLevel\DC2\ETB\n\+    \\DC3IDEMPOTENCY_UNKNOWN\DLE\NUL\DC2\DC3\n\+    \\SINO_SIDE_EFFECTS\DLE\SOH\DC2\SO\n\+    \\n\+    \IDEMPOTENT\DLE\STX*\t\b\232\a\DLE\128\128\128\128\STX\"\154\ETX\n\+    \\DC3UninterpretedOption\DC2A\n\+    \\EOTname\CAN\STX \ETX(\v2-.google.protobuf.UninterpretedOption.NamePartR\EOTname\DC2)\n\+    \\DLEidentifier_value\CAN\ETX \SOH(\tR\SIidentifierValue\DC2,\n\+    \\DC2positive_int_value\CAN\EOT \SOH(\EOTR\DLEpositiveIntValue\DC2,\n\+    \\DC2negative_int_value\CAN\ENQ \SOH(\ETXR\DLEnegativeIntValue\DC2!\n\+    \\fdouble_value\CAN\ACK \SOH(\SOHR\vdoubleValue\DC2!\n\+    \\fstring_value\CAN\a \SOH(\fR\vstringValue\DC2'\n\+    \\SIaggregate_value\CAN\b \SOH(\tR\SOaggregateValue\SUBJ\n\+    \\bNamePart\DC2\ESC\n\+    \\tname_part\CAN\SOH \STX(\tR\bnamePart\DC2!\n\+    \\fis_extension\CAN\STX \STX(\bR\visExtension\"\167\n\+    \\n\+    \\n\+    \FeatureSet\DC2\145\SOH\n\+    \\SOfield_presence\CAN\SOH \SOH(\SO2).google.protobuf.FeatureSet.FieldPresenceR\rfieldPresenceB?\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\r\DC2\bEXPLICIT\CAN\132\a\162\SOH\r\DC2\bIMPLICIT\CAN\231\a\162\SOH\r\DC2\bEXPLICIT\CAN\232\a\178\SOH\ETX\b\232\a\DC2l\n\+    \\tenum_type\CAN\STX \SOH(\SO2$.google.protobuf.FeatureSet.EnumTypeR\benumTypeB)\136\SOH\SOH\152\SOH\ACK\152\SOH\SOH\162\SOH\v\DC2\ACKCLOSED\CAN\132\a\162\SOH\t\DC2\EOTOPEN\CAN\231\a\178\SOH\ETX\b\232\a\DC2\152\SOH\n\+    \\ETBrepeated_field_encoding\CAN\ETX \SOH(\SO21.google.protobuf.FeatureSet.RepeatedFieldEncodingR\NAKrepeatedFieldEncodingB-\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\r\DC2\bEXPANDED\CAN\132\a\162\SOH\v\DC2\ACKPACKED\CAN\231\a\178\SOH\ETX\b\232\a\DC2~\n\+    \\SIutf8_validation\CAN\EOT \SOH(\SO2*.google.protobuf.FeatureSet.Utf8ValidationR\SOutf8ValidationB)\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\t\DC2\EOTNONE\CAN\132\a\162\SOH\v\DC2\ACKVERIFY\CAN\231\a\178\SOH\ETX\b\232\a\DC2~\n\+    \\DLEmessage_encoding\CAN\ENQ \SOH(\SO2+.google.protobuf.FeatureSet.MessageEncodingR\SImessageEncodingB&\136\SOH\SOH\152\SOH\EOT\152\SOH\SOH\162\SOH\DC4\DC2\SILENGTH_PREFIXED\CAN\132\a\178\SOH\ETX\b\232\a\DC2\130\SOH\n\+    \\vjson_format\CAN\ACK \SOH(\SO2&.google.protobuf.FeatureSet.JsonFormatR\n\+    \jsonFormatB9\136\SOH\SOH\152\SOH\ETX\152\SOH\ACK\152\SOH\SOH\162\SOH\ETB\DC2\DC2LEGACY_BEST_EFFORT\CAN\132\a\162\SOH\n\+    \\DC2\ENQALLOW\CAN\231\a\178\SOH\ETX\b\232\a\"\\\n\+    \\rFieldPresence\DC2\SUB\n\+    \\SYNFIELD_PRESENCE_UNKNOWN\DLE\NUL\DC2\f\n\+    \\bEXPLICIT\DLE\SOH\DC2\f\n\+    \\bIMPLICIT\DLE\STX\DC2\DC3\n\+    \\SILEGACY_REQUIRED\DLE\ETX\"7\n\+    \\bEnumType\DC2\NAK\n\+    \\DC1ENUM_TYPE_UNKNOWN\DLE\NUL\DC2\b\n\+    \\EOTOPEN\DLE\SOH\DC2\n\+    \\n\+    \\ACKCLOSED\DLE\STX\"V\n\+    \\NAKRepeatedFieldEncoding\DC2#\n\+    \\USREPEATED_FIELD_ENCODING_UNKNOWN\DLE\NUL\DC2\n\+    \\n\+    \\ACKPACKED\DLE\SOH\DC2\f\n\+    \\bEXPANDED\DLE\STX\"I\n\+    \\SOUtf8Validation\DC2\ESC\n\+    \\ETBUTF8_VALIDATION_UNKNOWN\DLE\NUL\DC2\n\+    \\n\+    \\ACKVERIFY\DLE\STX\DC2\b\n\+    \\EOTNONE\DLE\ETX\"\EOT\b\SOH\DLE\SOH\"S\n\+    \\SIMessageEncoding\DC2\FS\n\+    \\CANMESSAGE_ENCODING_UNKNOWN\DLE\NUL\DC2\DC3\n\+    \\SILENGTH_PREFIXED\DLE\SOH\DC2\r\n\+    \\tDELIMITED\DLE\STX\"H\n\+    \\n\+    \JsonFormat\DC2\ETB\n\+    \\DC3JSON_FORMAT_UNKNOWN\DLE\NUL\DC2\t\n\+    \\ENQALLOW\DLE\SOH\DC2\SYN\n\+    \\DC2LEGACY_BEST_EFFORT\DLE\STX*\ACK\b\232\a\DLE\139N*\ACK\b\139N\DLE\144N*\ACK\b\144N\DLE\145NJ\ACK\b\231\a\DLE\232\a\"\239\ETX\n\+    \\DC2FeatureSetDefaults\DC2X\n\+    \\bdefaults\CAN\SOH \ETX(\v2<.google.protobuf.FeatureSetDefaults.FeatureSetEditionDefaultR\bdefaults\DC2A\n\+    \\SIminimum_edition\CAN\EOT \SOH(\SO2\CAN.google.protobuf.EditionR\SOminimumEdition\DC2A\n\+    \\SImaximum_edition\CAN\ENQ \SOH(\SO2\CAN.google.protobuf.EditionR\SOmaximumEdition\SUB\248\SOH\n\+    \\CANFeatureSetEditionDefault\DC22\n\+    \\aedition\CAN\ETX \SOH(\SO2\CAN.google.protobuf.EditionR\aedition\DC2N\n\+    \\DC4overridable_features\CAN\EOT \SOH(\v2\ESC.google.protobuf.FeatureSetR\DC3overridableFeatures\DC2B\n\+    \\SOfixed_features\CAN\ENQ \SOH(\v2\ESC.google.protobuf.FeatureSetR\rfixedFeaturesJ\EOT\b\SOH\DLE\STXJ\EOT\b\STX\DLE\ETXR\bfeatures\"\167\STX\n\+    \\SOSourceCodeInfo\DC2D\n\+    \\blocation\CAN\SOH \ETX(\v2(.google.protobuf.SourceCodeInfo.LocationR\blocation\SUB\206\SOH\n\+    \\bLocation\DC2\SYN\n\+    \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\SYN\n\+    \\EOTspan\CAN\STX \ETX(\ENQR\EOTspanB\STX\DLE\SOH\DC2)\n\+    \\DLEleading_comments\CAN\ETX \SOH(\tR\SIleadingComments\DC2+\n\+    \\DC1trailing_comments\CAN\EOT \SOH(\tR\DLEtrailingComments\DC2:\n\+    \\EMleading_detached_comments\CAN\ACK \ETX(\tR\ETBleadingDetachedComments\"\208\STX\n\+    \\DC1GeneratedCodeInfo\DC2M\n\+    \\n\+    \annotation\CAN\SOH \ETX(\v2-.google.protobuf.GeneratedCodeInfo.AnnotationR\n\+    \annotation\SUB\235\SOH\n\+    \\n\+    \Annotation\DC2\SYN\n\+    \\EOTpath\CAN\SOH \ETX(\ENQR\EOTpathB\STX\DLE\SOH\DC2\US\n\+    \\vsource_file\CAN\STX \SOH(\tR\n\+    \sourceFile\DC2\DC4\n\+    \\ENQbegin\CAN\ETX \SOH(\ENQR\ENQbegin\DC2\DLE\n\+    \\ETXend\CAN\EOT \SOH(\ENQR\ETXend\DC2R\n\+    \\bsemantic\CAN\ENQ \SOH(\SO26.google.protobuf.GeneratedCodeInfo.Annotation.SemanticR\bsemantic\"(\n\+    \\bSemantic\DC2\b\n\+    \\EOTNONE\DLE\NUL\DC2\a\n\+    \\ETXSET\DLE\SOH\DC2\t\n\+    \\ENQALIAS\DLE\STX*\167\STX\n\+    \\aEdition\DC2\DC3\n\+    \\SIEDITION_UNKNOWN\DLE\NUL\DC2\DC3\n\+    \\SOEDITION_LEGACY\DLE\132\a\DC2\DC3\n\+    \\SOEDITION_PROTO2\DLE\230\a\DC2\DC3\n\+    \\SOEDITION_PROTO3\DLE\231\a\DC2\DC1\n\+    \\fEDITION_2023\DLE\232\a\DC2\DC1\n\+    \\fEDITION_2024\DLE\233\a\DC2\ETB\n\+    \\DC3EDITION_1_TEST_ONLY\DLE\SOH\DC2\ETB\n\+    \\DC3EDITION_2_TEST_ONLY\DLE\STX\DC2\GS\n\+    \\ETBEDITION_99997_TEST_ONLY\DLE\157\141\ACK\DC2\GS\n\+    \\ETBEDITION_99998_TEST_ONLY\DLE\158\141\ACK\DC2\GS\n\+    \\ETBEDITION_99999_TEST_ONLY\DLE\159\141\ACK\DC2\DC3\n\+    \\vEDITION_MAX\DLE\255\255\255\255\aB~\n\+    \\DC3com.google.protobufB\DLEDescriptorProtosH\SOHZ-google.golang.org/protobuf/types/descriptorpb\248\SOH\SOH\162\STX\ETXGPB\170\STX\SUBGoogle.Protobuf.ReflectionJ\139\195\ETX\n\+    \\a\DC2\ENQ&\NUL\143\n\+    \\SOH\n\+    \\170\SI\n\+    \\SOH\f\DC2\ETX&\NUL\DC22\193\f Protocol Buffers - Google's data interchange format\n\+    \ Copyright 2008 Google Inc.  All rights reserved.\n\+    \ https://developers.google.com/protocol-buffers/\n\+    \\n\+    \ Redistribution and use in source and binary forms, with or without\n\+    \ modification, are permitted provided that the following conditions are\n\+    \ met:\n\+    \\n\+    \     * Redistributions of source code must retain the above copyright\n\+    \ notice, this list of conditions and the following disclaimer.\n\+    \     * Redistributions in binary form must reproduce the above\n\+    \ copyright notice, this list of conditions and the following disclaimer\n\+    \ in the documentation and/or other materials provided with the\n\+    \ distribution.\n\+    \     * Neither the name of Google Inc. nor the names of its\n\+    \ contributors may be used to endorse or promote products derived from\n\+    \ this software without specific prior written permission.\n\+    \\n\+    \ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\+    \ \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\+    \ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\+    \ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\+    \ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\+    \ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\+    \ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\+    \ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\+    \ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\+    \ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\+    \ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\+    \2\219\STX Author: kenton@google.com (Kenton Varda)\n\+    \  Based on original Protocol Buffers design by\n\+    \  Sanjay Ghemawat, Jeff Dean, and others.\n\+    \\n\+    \ The messages in this file describe the definitions found in .proto files.\n\+    \ A valid .proto file can be translated directly to a FileDescriptorProto\n\+    \ without any other information (e.g. without reading its imports).\n\+    \\n\+    \\b\n\+    \\SOH\STX\DC2\ETX(\NUL\CAN\n\+    \\b\n\+    \\SOH\b\DC2\ETX*\NULD\n\+    \\t\n\+    \\STX\b\v\DC2\ETX*\NULD\n\+    \\b\n\+    \\SOH\b\DC2\ETX+\NUL,\n\+    \\t\n\+    \\STX\b\SOH\DC2\ETX+\NUL,\n\+    \\b\n\+    \\SOH\b\DC2\ETX,\NUL1\n\+    \\t\n\+    \\STX\b\b\DC2\ETX,\NUL1\n\+    \\b\n\+    \\SOH\b\DC2\ETX-\NUL7\n\+    \\t\n\+    \\STX\b%\DC2\ETX-\NUL7\n\+    \\b\n\+    \\SOH\b\DC2\ETX.\NUL!\n\+    \\t\n\+    \\STX\b$\DC2\ETX.\NUL!\n\+    \\b\n\+    \\SOH\b\DC2\ETX/\NUL\US\n\+    \\t\n\+    \\STX\b\US\DC2\ETX/\NUL\US\n\+    \\b\n\+    \\SOH\b\DC2\ETX3\NUL\FS\n\+    \\DEL\n\+    \\STX\b\t\DC2\ETX3\NUL\FS\SUBt descriptor.proto must be optimized for speed because reflection-based\n\+    \ algorithms don't work during bootstrapping.\n\+    \\n\+    \j\n\+    \\STX\EOT\NUL\DC2\EOT7\NUL9\SOH\SUB^ The protocol compiler can output a FileDescriptorSet containing the .proto\n\+    \ files it parses.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\EOT\NUL\SOH\DC2\ETX7\b\EM\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX8\STX(\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\ETX8\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX8\v\RS\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX8\US#\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX8&'\n\+    \-\n\+    \\STX\ENQ\NUL\DC2\EOT<\NUL]\SOH\SUB! The full set of known editions.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\ENQ\NUL\SOH\DC2\ETX<\ENQ\f\n\+    \:\n\+    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX>\STX\SYN\SUB- A placeholder for an unknown edition value.\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX>\STX\DC1\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX>\DC4\NAK\n\+    \\153\SOH\n\+    \\EOT\ENQ\NUL\STX\SOH\DC2\ETXB\STX\ETB\SUB\139\SOH A placeholder edition for specifying default behaviors *before* a feature\n\+    \ was first introduced.  This is effectively an \"infinite past\".\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\SOH\SOH\DC2\ETXB\STX\DLE\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\SOH\STX\DC2\ETXB\DC3\SYN\n\+    \\130\STX\n\+    \\EOT\ENQ\NUL\STX\STX\DC2\ETXH\STX\ETB\SUB\244\SOH Legacy syntax \"editions\".  These pre-date editions, but behave much like\n\+    \ distinct editions.  These can't be used to specify the edition of proto\n\+    \ files, but feature definitions must supply proto2/proto3 defaults for\n\+    \ backwards compatibility.\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\STX\SOH\DC2\ETXH\STX\DLE\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\STX\STX\DC2\ETXH\DC3\SYN\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\ETX\DC2\ETXI\STX\ETB\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ETX\SOH\DC2\ETXI\STX\DLE\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ETX\STX\DC2\ETXI\DC3\SYN\n\+    \\175\SOH\n\+    \\EOT\ENQ\NUL\STX\EOT\DC2\ETXN\STX\SYN\SUB\161\SOH Editions that have been released.  The specific values are arbitrary and\n\+    \ should not be depended on, but they will always be time-ordered for easy\n\+    \ comparison.\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\EOT\SOH\DC2\ETXN\STX\SO\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\EOT\STX\DC2\ETXN\DC1\NAK\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\ENQ\DC2\ETXO\STX\SYN\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ENQ\SOH\DC2\ETXO\STX\SO\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ENQ\STX\DC2\ETXO\DC1\NAK\n\+    \}\n\+    \\EOT\ENQ\NUL\STX\ACK\DC2\ETXS\STX\SUB\SUBp Placeholder editions for testing feature resolution.  These should not be\n\+    \ used or relyed on outside of tests.\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ACK\SOH\DC2\ETXS\STX\NAK\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\ACK\STX\DC2\ETXS\CAN\EM\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\a\DC2\ETXT\STX\SUB\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\a\SOH\DC2\ETXT\STX\NAK\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\a\STX\DC2\ETXT\CAN\EM\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\b\DC2\ETXU\STX\"\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\b\SOH\DC2\ETXU\STX\EM\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\b\STX\DC2\ETXU\FS!\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\t\DC2\ETXV\STX\"\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\t\SOH\DC2\ETXV\STX\EM\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\t\STX\DC2\ETXV\FS!\n\+    \\v\n\+    \\EOT\ENQ\NUL\STX\n\+    \\DC2\ETXW\STX\"\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\n\+    \\SOH\DC2\ETXW\STX\EM\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\n\+    \\STX\DC2\ETXW\FS!\n\+    \\184\SOH\n\+    \\EOT\ENQ\NUL\STX\v\DC2\ETX\\\STX\ESC\SUB\170\SOH Placeholder for specifying unbounded edition support.  This should only\n\+    \ ever be used by plugins that can expect to never require any changes to\n\+    \ support a new edition.\n\+    \\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\v\SOH\DC2\ETX\\\STX\r\n\+    \\f\n\+    \\ENQ\ENQ\NUL\STX\v\STX\DC2\ETX\\\DLE\SUB\n\+    \0\n\+    \\STX\EOT\SOH\DC2\ENQ`\NUL\130\SOH\SOH\SUB# Describes a complete .proto file.\n\+    \\n\+    \\n\+    \\n\+    \\ETX\EOT\SOH\SOH\DC2\ETX`\b\ESC\n\+    \9\n\+    \\EOT\EOT\SOH\STX\NUL\DC2\ETXa\STX\ESC\", file name, relative to root of source tree\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\EOT\DC2\ETXa\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\ENQ\DC2\ETXa\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETXa\DC2\SYN\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETXa\EM\SUB\n\+    \*\n\+    \\EOT\EOT\SOH\STX\SOH\DC2\ETXb\STX\RS\"\GS e.g. \"foo\", \"foo.bar\", etc.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\EOT\DC2\ETXb\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\ENQ\DC2\ETXb\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETXb\DC2\EM\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETXb\FS\GS\n\+    \4\n\+    \\EOT\EOT\SOH\STX\STX\DC2\ETXe\STX!\SUB' Names of files imported by this file.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\EOT\DC2\ETXe\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETXe\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETXe\DC2\FS\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETXe\US \n\+    \Q\n\+    \\EOT\EOT\SOH\STX\ETX\DC2\ETXg\STX(\SUBD Indexes of the public imported files in the dependency list above.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\EOT\DC2\ETXg\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\ENQ\DC2\ETXg\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETXg\DC1\"\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETXg%'\n\+    \z\n\+    \\EOT\EOT\SOH\STX\EOT\DC2\ETXj\STX&\SUBm Indexes of the weak imported files in the dependency list.\n\+    \ For Google-internal migration only. Do not use.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\EOT\DC2\ETXj\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\ENQ\DC2\ETXj\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\SOH\DC2\ETXj\DC1 \n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\EOT\ETX\DC2\ETXj#%\n\+    \6\n\+    \\EOT\EOT\SOH\STX\ENQ\DC2\ETXm\STX,\SUB) All top-level definitions in this file.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ENQ\EOT\DC2\ETXm\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ENQ\ACK\DC2\ETXm\v\SUB\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ENQ\SOH\DC2\ETXm\ESC'\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ENQ\ETX\DC2\ETXm*+\n\+    \\v\n\+    \\EOT\EOT\SOH\STX\ACK\DC2\ETXn\STX-\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ACK\EOT\DC2\ETXn\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ACK\ACK\DC2\ETXn\v\RS\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ACK\SOH\DC2\ETXn\US(\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\ACK\ETX\DC2\ETXn+,\n\+    \\v\n\+    \\EOT\EOT\SOH\STX\a\DC2\ETXo\STX.\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\a\EOT\DC2\ETXo\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\a\ACK\DC2\ETXo\v!\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\a\SOH\DC2\ETXo\")\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\a\ETX\DC2\ETXo,-\n\+    \\v\n\+    \\EOT\EOT\SOH\STX\b\DC2\ETXp\STX.\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\b\EOT\DC2\ETXp\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\b\ACK\DC2\ETXp\v\US\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\b\SOH\DC2\ETXp )\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\b\ETX\DC2\ETXp,-\n\+    \\v\n\+    \\EOT\EOT\SOH\STX\t\DC2\ETXr\STX#\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\t\EOT\DC2\ETXr\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\t\ACK\DC2\ETXr\v\SYN\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\t\SOH\DC2\ETXr\ETB\RS\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\t\ETX\DC2\ETXr!\"\n\+    \\244\SOH\n\+    \\EOT\EOT\SOH\STX\n\+    \\DC2\ETXx\STX/\SUB\230\SOH This field contains optional information about the original source code.\n\+    \ You may safely remove this entire field without harming runtime\n\+    \ functionality of the descriptors -- the information is needed only by\n\+    \ development tools.\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\n\+    \\EOT\DC2\ETXx\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\n\+    \\ACK\DC2\ETXx\v\EM\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\n\+    \\SOH\DC2\ETXx\SUB*\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\n\+    \\ETX\DC2\ETXx-.\n\+    \\165\SOH\n\+    \\EOT\EOT\SOH\STX\v\DC2\ETX~\STX\RS\SUB\151\SOH The syntax of the proto file.\n\+    \ The supported values are \"proto2\", \"proto3\", and \"editions\".\n\+    \\n\+    \ If `edition` is present, this value must be \"editions\".\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\v\EOT\DC2\ETX~\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\v\ENQ\DC2\ETX~\v\DC1\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\v\SOH\DC2\ETX~\DC2\CAN\n\+    \\f\n\+    \\ENQ\EOT\SOH\STX\v\ETX\DC2\ETX~\ESC\GS\n\+    \.\n\+    \\EOT\EOT\SOH\STX\f\DC2\EOT\129\SOH\STX \SUB  The edition of the proto file.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SOH\STX\f\EOT\DC2\EOT\129\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SOH\STX\f\ACK\DC2\EOT\129\SOH\v\DC2\n\+    \\r\n\+    \\ENQ\EOT\SOH\STX\f\SOH\DC2\EOT\129\SOH\DC3\SUB\n\+    \\r\n\+    \\ENQ\EOT\SOH\STX\f\ETX\DC2\EOT\129\SOH\GS\US\n\+    \)\n\+    \\STX\EOT\STX\DC2\ACK\133\SOH\NUL\165\SOH\SOH\SUB\ESC Describes a message type.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\STX\SOH\DC2\EOT\133\SOH\b\ETB\n\+    \\f\n\+    \\EOT\EOT\STX\STX\NUL\DC2\EOT\134\SOH\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\NUL\EOT\DC2\EOT\134\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\EOT\134\SOH\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\EOT\134\SOH\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\EOT\134\SOH\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\STX\STX\SOH\DC2\EOT\136\SOH\STX*\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\SOH\EOT\DC2\EOT\136\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\SOH\ACK\DC2\EOT\136\SOH\v\US\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\EOT\136\SOH %\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\EOT\136\SOH()\n\+    \\f\n\+    \\EOT\EOT\STX\STX\STX\DC2\EOT\137\SOH\STX.\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\STX\EOT\DC2\EOT\137\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\STX\ACK\DC2\EOT\137\SOH\v\US\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\STX\SOH\DC2\EOT\137\SOH )\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\STX\ETX\DC2\EOT\137\SOH,-\n\+    \\f\n\+    \\EOT\EOT\STX\STX\ETX\DC2\EOT\139\SOH\STX+\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ETX\EOT\DC2\EOT\139\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ETX\ACK\DC2\EOT\139\SOH\v\SUB\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ETX\SOH\DC2\EOT\139\SOH\ESC&\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ETX\ETX\DC2\EOT\139\SOH)*\n\+    \\f\n\+    \\EOT\EOT\STX\STX\EOT\DC2\EOT\140\SOH\STX-\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\EOT\DC2\EOT\140\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\ACK\DC2\EOT\140\SOH\v\RS\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\SOH\DC2\EOT\140\SOH\US(\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\EOT\ETX\DC2\EOT\140\SOH+,\n\+    \\SO\n\+    \\EOT\EOT\STX\ETX\NUL\DC2\ACK\142\SOH\STX\147\SOH\ETX\n\+    \\r\n\+    \\ENQ\EOT\STX\ETX\NUL\SOH\DC2\EOT\142\SOH\n\+    \\CAN\n\+    \\FS\n\+    \\ACK\EOT\STX\ETX\NUL\STX\NUL\DC2\EOT\143\SOH\EOT\GS\"\f Inclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\EOT\DC2\EOT\143\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\ENQ\DC2\EOT\143\SOH\r\DC2\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\SOH\DC2\EOT\143\SOH\DC3\CAN\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\NUL\ETX\DC2\EOT\143\SOH\ESC\FS\n\+    \\FS\n\+    \\ACK\EOT\STX\ETX\NUL\STX\SOH\DC2\EOT\144\SOH\EOT\ESC\"\f Exclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\EOT\DC2\EOT\144\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\ENQ\DC2\EOT\144\SOH\r\DC2\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\SOH\DC2\EOT\144\SOH\DC3\SYN\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\SOH\ETX\DC2\EOT\144\SOH\EM\SUB\n\+    \\SO\n\+    \\ACK\EOT\STX\ETX\NUL\STX\STX\DC2\EOT\146\SOH\EOT/\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\EOT\DC2\EOT\146\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\ACK\DC2\EOT\146\SOH\r\"\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\SOH\DC2\EOT\146\SOH#*\n\+    \\SI\n\+    \\a\EOT\STX\ETX\NUL\STX\STX\ETX\DC2\EOT\146\SOH-.\n\+    \\f\n\+    \\EOT\EOT\STX\STX\ENQ\DC2\EOT\148\SOH\STX.\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ENQ\EOT\DC2\EOT\148\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ENQ\ACK\DC2\EOT\148\SOH\v\EM\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ENQ\SOH\DC2\EOT\148\SOH\SUB)\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ENQ\ETX\DC2\EOT\148\SOH,-\n\+    \\f\n\+    \\EOT\EOT\STX\STX\ACK\DC2\EOT\150\SOH\STX/\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ACK\EOT\DC2\EOT\150\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ACK\ACK\DC2\EOT\150\SOH\v\US\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ACK\SOH\DC2\EOT\150\SOH *\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\ACK\ETX\DC2\EOT\150\SOH-.\n\+    \\f\n\+    \\EOT\EOT\STX\STX\a\DC2\EOT\152\SOH\STX&\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\a\EOT\DC2\EOT\152\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\a\ACK\DC2\EOT\152\SOH\v\EM\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\a\SOH\DC2\EOT\152\SOH\SUB!\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\a\ETX\DC2\EOT\152\SOH$%\n\+    \\172\SOH\n\+    \\EOT\EOT\STX\ETX\SOH\DC2\ACK\157\SOH\STX\160\SOH\ETX\SUB\155\SOH Range of reserved tag numbers. Reserved tag numbers may not be used by\n\+    \ fields or extension ranges in the same message. Reserved ranges may\n\+    \ not overlap.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\ETX\SOH\SOH\DC2\EOT\157\SOH\n\+    \\ETB\n\+    \\FS\n\+    \\ACK\EOT\STX\ETX\SOH\STX\NUL\DC2\EOT\158\SOH\EOT\GS\"\f Inclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\NUL\EOT\DC2\EOT\158\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\NUL\ENQ\DC2\EOT\158\SOH\r\DC2\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\NUL\SOH\DC2\EOT\158\SOH\DC3\CAN\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\NUL\ETX\DC2\EOT\158\SOH\ESC\FS\n\+    \\FS\n\+    \\ACK\EOT\STX\ETX\SOH\STX\SOH\DC2\EOT\159\SOH\EOT\ESC\"\f Exclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\SOH\EOT\DC2\EOT\159\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\SOH\ENQ\DC2\EOT\159\SOH\r\DC2\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\SOH\SOH\DC2\EOT\159\SOH\DC3\SYN\n\+    \\SI\n\+    \\a\EOT\STX\ETX\SOH\STX\SOH\ETX\DC2\EOT\159\SOH\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\STX\STX\b\DC2\EOT\161\SOH\STX,\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\b\EOT\DC2\EOT\161\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\b\ACK\DC2\EOT\161\SOH\v\CAN\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\b\SOH\DC2\EOT\161\SOH\EM'\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\b\ETX\DC2\EOT\161\SOH*+\n\+    \\131\SOH\n\+    \\EOT\EOT\STX\STX\t\DC2\EOT\164\SOH\STX%\SUBu Reserved field names, which may not be used by fields in the same message.\n\+    \ A given name may only be reserved once.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\t\EOT\DC2\EOT\164\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\t\ENQ\DC2\EOT\164\SOH\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\t\SOH\DC2\EOT\164\SOH\DC2\US\n\+    \\r\n\+    \\ENQ\EOT\STX\STX\t\ETX\DC2\EOT\164\SOH\"$\n\+    \\f\n\+    \\STX\EOT\ETX\DC2\ACK\167\SOH\NUL\219\SOH\SOH\n\+    \\v\n\+    \\ETX\EOT\ETX\SOH\DC2\EOT\167\SOH\b\GS\n\+    \O\n\+    \\EOT\EOT\ETX\STX\NUL\DC2\EOT\169\SOH\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\NUL\EOT\DC2\EOT\169\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\NUL\ACK\DC2\EOT\169\SOH\v\RS\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\EOT\169\SOH\US3\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\EOT\169\SOH69\n\+    \\SO\n\+    \\EOT\EOT\ETX\ETX\NUL\DC2\ACK\171\SOH\STX\194\SOH\ETX\n\+    \\r\n\+    \\ENQ\EOT\ETX\ETX\NUL\SOH\DC2\EOT\171\SOH\n\+    \\NAK\n\+    \K\n\+    \\ACK\EOT\ETX\ETX\NUL\STX\NUL\DC2\EOT\173\SOH\EOT\RS\SUB; The extension number declared within the extension range.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\NUL\EOT\DC2\EOT\173\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\NUL\ENQ\DC2\EOT\173\SOH\r\DC2\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\NUL\SOH\DC2\EOT\173\SOH\DC3\EM\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\NUL\ETX\DC2\EOT\173\SOH\FS\GS\n\+    \z\n\+    \\ACK\EOT\ETX\ETX\NUL\STX\SOH\DC2\EOT\177\SOH\EOT\"\SUBj The fully-qualified name of the extension field. There must be a leading\n\+    \ dot in front of the full name.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\SOH\EOT\DC2\EOT\177\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\SOH\ENQ\DC2\EOT\177\SOH\r\DC3\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\SOH\SOH\DC2\EOT\177\SOH\DC4\GS\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\SOH\ETX\DC2\EOT\177\SOH !\n\+    \\161\SOH\n\+    \\ACK\EOT\ETX\ETX\NUL\STX\STX\DC2\EOT\182\SOH\EOT\GS\SUB\144\SOH The fully-qualified type name of the extension field. Unlike\n\+    \ Metadata.type, Declaration.type must have a leading dot for messages\n\+    \ and enums.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\STX\EOT\DC2\EOT\182\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\STX\ENQ\DC2\EOT\182\SOH\r\DC3\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\STX\SOH\DC2\EOT\182\SOH\DC4\CAN\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\STX\ETX\DC2\EOT\182\SOH\ESC\FS\n\+    \\206\SOH\n\+    \\ACK\EOT\ETX\ETX\NUL\STX\ETX\DC2\EOT\187\SOH\EOT\US\SUB\189\SOH If true, indicates that the number is reserved in the extension range,\n\+    \ and any extension field with the number will fail to compile. Set this\n\+    \ when a declared extension field is deleted.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\ETX\EOT\DC2\EOT\187\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\ETX\ENQ\DC2\EOT\187\SOH\r\DC1\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\ETX\SOH\DC2\EOT\187\SOH\DC2\SUB\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\ETX\ETX\DC2\EOT\187\SOH\GS\RS\n\+    \\138\SOH\n\+    \\ACK\EOT\ETX\ETX\NUL\STX\EOT\DC2\EOT\191\SOH\EOT\US\SUBz If true, indicates that the extension must be defined as repeated.\n\+    \ Otherwise the extension must be defined as optional.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\EOT\EOT\DC2\EOT\191\SOH\EOT\f\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\EOT\ENQ\DC2\EOT\191\SOH\r\DC1\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\EOT\SOH\DC2\EOT\191\SOH\DC2\SUB\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\STX\EOT\ETX\DC2\EOT\191\SOH\GS\RS\n\+    \$\n\+    \\ENQ\EOT\ETX\ETX\NUL\t\DC2\EOT\193\SOH\EOT\SI\"\NAK removed is_repeated\n\+    \\n\+    \\SO\n\+    \\ACK\EOT\ETX\ETX\NUL\t\NUL\DC2\EOT\193\SOH\r\SO\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\t\NUL\SOH\DC2\EOT\193\SOH\r\SO\n\+    \\SI\n\+    \\a\EOT\ETX\ETX\NUL\t\NUL\STX\DC2\EOT\193\SOH\r\SO\n\+    \\177\SOH\n\+    \\EOT\EOT\ETX\STX\SOH\DC2\EOT\199\SOH\STXF\SUB\162\SOH For external users: DO NOT USE. We are in the process of open sourcing\n\+    \ extension declaration and executing internal cleanups before it can be\n\+    \ used externally.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\SOH\EOT\DC2\EOT\199\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\SOH\ACK\DC2\EOT\199\SOH\v\SYN\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\EOT\199\SOH\ETB\"\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\EOT\199\SOH%&\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\SOH\b\DC2\EOT\199\SOH'E\n\+    \\SO\n\+    \\ACK\EOT\ETX\STX\SOH\b\DC1\DC2\EOT\199\SOH(D\n\+    \=\n\+    \\EOT\EOT\ETX\STX\STX\DC2\EOT\202\SOH\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\STX\EOT\DC2\EOT\202\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\STX\ACK\DC2\EOT\202\SOH\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\STX\SOH\DC2\EOT\202\SOH\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\STX\ETX\DC2\EOT\202\SOH!#\n\+    \@\n\+    \\EOT\EOT\ETX\EOT\NUL\DC2\ACK\205\SOH\STX\209\SOH\ETX\SUB0 The verification state of the extension range.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\EOT\NUL\SOH\DC2\EOT\205\SOH\a\CAN\n\+    \C\n\+    \\ACK\EOT\ETX\EOT\NUL\STX\NUL\DC2\EOT\207\SOH\EOT\DC4\SUB3 All the extensions of the range must be declared.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ETX\EOT\NUL\STX\NUL\SOH\DC2\EOT\207\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\ETX\EOT\NUL\STX\NUL\STX\DC2\EOT\207\SOH\DC2\DC3\n\+    \\SO\n\+    \\ACK\EOT\ETX\EOT\NUL\STX\SOH\DC2\EOT\208\SOH\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\ETX\EOT\NUL\STX\SOH\SOH\DC2\EOT\208\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\ETX\EOT\NUL\STX\SOH\STX\DC2\EOT\208\SOH\DC1\DC2\n\+    \\142\SOH\n\+    \\EOT\EOT\ETX\STX\ETX\DC2\ACK\214\SOH\STX\215\SOH;\SUB~ The verification state of the range.\n\+    \ TODO: flip the default to DECLARATION once all empty ranges\n\+    \ are marked as UNVERIFIED.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\EOT\DC2\EOT\214\SOH\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\ACK\DC2\EOT\214\SOH\v\FS\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\SOH\DC2\EOT\214\SOH\GS)\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\ETX\DC2\EOT\214\SOH,-\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\b\DC2\EOT\215\SOH\ACK:\n\+    \\r\n\+    \\ENQ\EOT\ETX\STX\ETX\a\DC2\EOT\215\SOH\DC1\ESC\n\+    \\SO\n\+    \\ACK\EOT\ETX\STX\ETX\b\DC1\DC2\EOT\215\SOH\GS9\n\+    \Z\n\+    \\ETX\EOT\ETX\ENQ\DC2\EOT\218\SOH\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\ETX\ENQ\NUL\DC2\EOT\218\SOH\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\ETX\ENQ\NUL\SOH\DC2\EOT\218\SOH\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\ETX\ENQ\NUL\STX\DC2\EOT\218\SOH\NAK\CAN\n\+    \3\n\+    \\STX\EOT\EOT\DC2\ACK\222\SOH\NUL\198\STX\SOH\SUB% Describes a field within a message.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\EOT\SOH\DC2\EOT\222\SOH\b\FS\n\+    \\SO\n\+    \\EOT\EOT\EOT\EOT\NUL\DC2\ACK\223\SOH\STX\255\SOH\ETX\n\+    \\r\n\+    \\ENQ\EOT\EOT\EOT\NUL\SOH\DC2\EOT\223\SOH\a\v\n\+    \S\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\NUL\DC2\EOT\226\SOH\EOT\DC4\SUBC 0 is reserved for errors.\n\+    \ Order is weird for historical reasons.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\NUL\SOH\DC2\EOT\226\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\NUL\STX\DC2\EOT\226\SOH\DC2\DC3\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\SOH\DC2\EOT\227\SOH\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SOH\SOH\DC2\EOT\227\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SOH\STX\DC2\EOT\227\SOH\DC1\DC2\n\+    \w\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\STX\DC2\EOT\230\SOH\EOT\DC3\SUBg Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n\+    \ negative values are likely.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\STX\SOH\DC2\EOT\230\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\STX\STX\DC2\EOT\230\SOH\DC1\DC2\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\ETX\DC2\EOT\231\SOH\EOT\DC4\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ETX\SOH\DC2\EOT\231\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ETX\STX\DC2\EOT\231\SOH\DC2\DC3\n\+    \w\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\EOT\DC2\EOT\234\SOH\EOT\DC3\SUBg Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n\+    \ negative values are likely.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\EOT\SOH\DC2\EOT\234\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\EOT\STX\DC2\EOT\234\SOH\DC1\DC2\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\ENQ\DC2\EOT\235\SOH\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ENQ\SOH\DC2\EOT\235\SOH\EOT\DLE\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ENQ\STX\DC2\EOT\235\SOH\DC3\DC4\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\ACK\DC2\EOT\236\SOH\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ACK\SOH\DC2\EOT\236\SOH\EOT\DLE\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\ACK\STX\DC2\EOT\236\SOH\DC3\DC4\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\a\DC2\EOT\237\SOH\EOT\DC2\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\a\SOH\DC2\EOT\237\SOH\EOT\r\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\a\STX\DC2\EOT\237\SOH\DLE\DC1\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\b\DC2\EOT\238\SOH\EOT\DC4\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\b\SOH\DC2\EOT\238\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\b\STX\DC2\EOT\238\SOH\DC2\DC3\n\+    \\198\STX\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\t\DC2\EOT\244\SOH\EOT\DC4\SUB\181\STX Tag-delimited aggregate.\n\+    \ Group type is deprecated and not supported after google.protobuf. However, Proto3\n\+    \ implementations should still be able to parse the group wire format and\n\+    \ treat group fields as unknown fields.  In Editions, the group wire format\n\+    \ can be enabled via the `message_encoding` feature.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\t\SOH\DC2\EOT\244\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\t\STX\DC2\EOT\244\SOH\DC1\DC3\n\+    \-\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\n\+    \\DC2\EOT\245\SOH\EOT\SYN\"\GS Length-delimited aggregate.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\n\+    \\SOH\DC2\EOT\245\SOH\EOT\DLE\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\n\+    \\STX\DC2\EOT\245\SOH\DC3\NAK\n\+    \#\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\v\DC2\EOT\248\SOH\EOT\DC4\SUB\DC3 New in version 2.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\v\SOH\DC2\EOT\248\SOH\EOT\SO\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\v\STX\DC2\EOT\248\SOH\DC1\DC3\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\f\DC2\EOT\249\SOH\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\f\SOH\DC2\EOT\249\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\f\STX\DC2\EOT\249\SOH\DC2\DC4\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\r\DC2\EOT\250\SOH\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\r\SOH\DC2\EOT\250\SOH\EOT\r\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\r\STX\DC2\EOT\250\SOH\DLE\DC2\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\SO\DC2\EOT\251\SOH\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SO\SOH\DC2\EOT\251\SOH\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SO\STX\DC2\EOT\251\SOH\DC4\SYN\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\SI\DC2\EOT\252\SOH\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SI\SOH\DC2\EOT\252\SOH\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\SI\STX\DC2\EOT\252\SOH\DC4\SYN\n\+    \'\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\DLE\DC2\EOT\253\SOH\EOT\NAK\"\ETB Uses ZigZag encoding.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\DLE\SOH\DC2\EOT\253\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\DLE\STX\DC2\EOT\253\SOH\DC2\DC4\n\+    \'\n\+    \\ACK\EOT\EOT\EOT\NUL\STX\DC1\DC2\EOT\254\SOH\EOT\NAK\"\ETB Uses ZigZag encoding.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\DC1\SOH\DC2\EOT\254\SOH\EOT\SI\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\NUL\STX\DC1\STX\DC2\EOT\254\SOH\DC2\DC4\n\+    \\SO\n\+    \\EOT\EOT\EOT\EOT\SOH\DC2\ACK\129\STX\STX\137\STX\ETX\n\+    \\r\n\+    \\ENQ\EOT\EOT\EOT\SOH\SOH\DC2\EOT\129\STX\a\f\n\+    \*\n\+    \\ACK\EOT\EOT\EOT\SOH\STX\NUL\DC2\EOT\131\STX\EOT\ETB\SUB\SUB 0 is reserved for errors\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\NUL\SOH\DC2\EOT\131\STX\EOT\DC2\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\NUL\STX\DC2\EOT\131\STX\NAK\SYN\n\+    \\SO\n\+    \\ACK\EOT\EOT\EOT\SOH\STX\SOH\DC2\EOT\132\STX\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\SOH\SOH\DC2\EOT\132\STX\EOT\DC2\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\SOH\STX\DC2\EOT\132\STX\NAK\SYN\n\+    \\204\SOH\n\+    \\ACK\EOT\EOT\EOT\SOH\STX\STX\DC2\EOT\136\STX\EOT\ETB\SUB\187\SOH The required label is only allowed in google.protobuf.  In proto3 and Editions\n\+    \ it's explicitly prohibited.  In Editions, the `field_presence` feature\n\+    \ can be used to get this behavior.\n\+    \\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\STX\SOH\DC2\EOT\136\STX\EOT\DC2\n\+    \\SI\n\+    \\a\EOT\EOT\EOT\SOH\STX\STX\STX\DC2\EOT\136\STX\NAK\SYN\n\+    \\f\n\+    \\EOT\EOT\EOT\STX\NUL\DC2\EOT\139\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\NUL\EOT\DC2\EOT\139\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\EOT\139\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\139\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\139\STX\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\EOT\STX\SOH\DC2\EOT\140\STX\STX\FS\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\SOH\EOT\DC2\EOT\140\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\SOH\ENQ\DC2\EOT\140\STX\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\140\STX\DC1\ETB\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\140\STX\SUB\ESC\n\+    \\f\n\+    \\EOT\EOT\EOT\STX\STX\DC2\EOT\141\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\STX\EOT\DC2\EOT\141\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\STX\ACK\DC2\EOT\141\STX\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\141\STX\DC1\SYN\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\141\STX\EM\SUB\n\+    \\156\SOH\n\+    \\EOT\EOT\EOT\STX\ETX\DC2\EOT\145\STX\STX\EM\SUB\141\SOH If type_name is set, this need not be set.  If both this and type_name\n\+    \ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ETX\EOT\DC2\EOT\145\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ETX\ACK\DC2\EOT\145\STX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ETX\SOH\DC2\EOT\145\STX\DLE\DC4\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ETX\ETX\DC2\EOT\145\STX\ETB\CAN\n\+    \\183\STX\n\+    \\EOT\EOT\EOT\STX\EOT\DC2\EOT\152\STX\STX \SUB\168\STX For message and enum types, this is the name of the type.  If the name\n\+    \ starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping\n\+    \ rules are used to find the type (i.e. first the nested types within this\n\+    \ message are searched, then within the parent, on up to the root\n\+    \ namespace).\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\EOT\EOT\DC2\EOT\152\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\EOT\ENQ\DC2\EOT\152\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\EOT\SOH\DC2\EOT\152\STX\DC2\ESC\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\EOT\ETX\DC2\EOT\152\STX\RS\US\n\+    \~\n\+    \\EOT\EOT\EOT\STX\ENQ\DC2\EOT\156\STX\STX\US\SUBp For extensions, this is the name of the type being extended.  It is\n\+    \ resolved in the same manner as type_name.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ENQ\EOT\DC2\EOT\156\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ENQ\ENQ\DC2\EOT\156\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ENQ\SOH\DC2\EOT\156\STX\DC2\SUB\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ENQ\ETX\DC2\EOT\156\STX\GS\RS\n\+    \\145\STX\n\+    \\EOT\EOT\EOT\STX\ACK\DC2\EOT\162\STX\STX$\SUB\130\STX For numeric types, contains the original text representation of the value.\n\+    \ For booleans, \"true\" or \"false\".\n\+    \ For strings, contains the default text contents (not escaped in any way).\n\+    \ For bytes, contains the C escaped value.  All bytes >= 128 are escaped.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ACK\EOT\DC2\EOT\162\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ACK\ENQ\DC2\EOT\162\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ACK\SOH\DC2\EOT\162\STX\DC2\US\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\ACK\ETX\DC2\EOT\162\STX\"#\n\+    \\132\SOH\n\+    \\EOT\EOT\EOT\STX\a\DC2\EOT\166\STX\STX!\SUBv If set, gives the index of a oneof in the containing type's oneof_decl\n\+    \ list.  This field is a member of that oneof.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\a\EOT\DC2\EOT\166\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\a\ENQ\DC2\EOT\166\STX\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\a\SOH\DC2\EOT\166\STX\DC1\FS\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\a\ETX\DC2\EOT\166\STX\US \n\+    \\250\SOH\n\+    \\EOT\EOT\EOT\STX\b\DC2\EOT\172\STX\STX!\SUB\235\SOH JSON name of this field. The value is set by protocol compiler. If the\n\+    \ user has set a \"json_name\" option on this field, that option's value\n\+    \ will be used. Otherwise, it's deduced from the field's name by converting\n\+    \ it to camelCase.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\b\EOT\DC2\EOT\172\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\b\ENQ\DC2\EOT\172\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\b\SOH\DC2\EOT\172\STX\DC2\ESC\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\b\ETX\DC2\EOT\172\STX\RS \n\+    \\f\n\+    \\EOT\EOT\EOT\STX\t\DC2\EOT\174\STX\STX$\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\t\EOT\DC2\EOT\174\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\t\ACK\DC2\EOT\174\STX\v\ETB\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\t\SOH\DC2\EOT\174\STX\CAN\US\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\t\ETX\DC2\EOT\174\STX\"#\n\+    \\176\t\n\+    \\EOT\EOT\EOT\STX\n\+    \\DC2\EOT\197\STX\STX%\SUB\161\t If true, this is a proto3 \"optional\". When a proto3 field is optional, it\n\+    \ tracks presence regardless of field type.\n\+    \\n\+    \ When proto3_optional is true, this field must belong to a oneof to signal\n\+    \ to old proto3 clients that presence is tracked for this field. This oneof\n\+    \ is known as a \"synthetic\" oneof, and this field must be its sole member\n\+    \ (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs\n\+    \ exist in the descriptor only, and do not generate any API. Synthetic oneofs\n\+    \ must be ordered after all \"real\" oneofs.\n\+    \\n\+    \ For message fields, proto3_optional doesn't create any semantic change,\n\+    \ since non-repeated message fields always track presence. However it still\n\+    \ indicates the semantic detail of whether the user wrote \"optional\" or not.\n\+    \ This can be useful for round-tripping the .proto file. For consistency we\n\+    \ give message fields a synthetic oneof also, even though it is not required\n\+    \ to track presence. This is especially important because the parser can't\n\+    \ tell if a field is a message or an enum, so it must always create a\n\+    \ synthetic oneof.\n\+    \\n\+    \ Proto2 optional fields do not set this flag, because they already indicate\n\+    \ optional with `LABEL_OPTIONAL`.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\n\+    \\EOT\DC2\EOT\197\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\n\+    \\ENQ\DC2\EOT\197\STX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\n\+    \\SOH\DC2\EOT\197\STX\DLE\US\n\+    \\r\n\+    \\ENQ\EOT\EOT\STX\n\+    \\ETX\DC2\EOT\197\STX\"$\n\+    \\"\n\+    \\STX\EOT\ENQ\DC2\ACK\201\STX\NUL\204\STX\SOH\SUB\DC4 Describes a oneof.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\ENQ\SOH\DC2\EOT\201\STX\b\FS\n\+    \\f\n\+    \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\202\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\NUL\EOT\DC2\EOT\202\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\202\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\202\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\202\STX\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\203\STX\STX$\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\SOH\EOT\DC2\EOT\203\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\SOH\ACK\DC2\EOT\203\STX\v\ETB\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\203\STX\CAN\US\n\+    \\r\n\+    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\203\STX\"#\n\+    \'\n\+    \\STX\EOT\ACK\DC2\ACK\207\STX\NUL\233\STX\SOH\SUB\EM Describes an enum type.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\ACK\SOH\DC2\EOT\207\STX\b\ESC\n\+    \\f\n\+    \\EOT\EOT\ACK\STX\NUL\DC2\EOT\208\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\NUL\EOT\DC2\EOT\208\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\208\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\208\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\208\STX\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\ACK\STX\SOH\DC2\EOT\210\STX\STX.\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\SOH\EOT\DC2\EOT\210\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\SOH\ACK\DC2\EOT\210\STX\v#\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\210\STX$)\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\210\STX,-\n\+    \\f\n\+    \\EOT\EOT\ACK\STX\STX\DC2\EOT\212\STX\STX#\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\STX\EOT\DC2\EOT\212\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\212\STX\v\SYN\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\212\STX\ETB\RS\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\212\STX!\"\n\+    \\175\STX\n\+    \\EOT\EOT\ACK\ETX\NUL\DC2\ACK\220\STX\STX\223\STX\ETX\SUB\158\STX Range of reserved numeric values. Reserved values may not be used by\n\+    \ entries in the same enum. Reserved ranges may not overlap.\n\+    \\n\+    \ Note that this is distinct from DescriptorProto.ReservedRange in that it\n\+    \ is inclusive such that it can appropriately represent the entire int32\n\+    \ domain.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\ETX\NUL\SOH\DC2\EOT\220\STX\n\+    \\ESC\n\+    \\FS\n\+    \\ACK\EOT\ACK\ETX\NUL\STX\NUL\DC2\EOT\221\STX\EOT\GS\"\f Inclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\NUL\EOT\DC2\EOT\221\STX\EOT\f\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\NUL\ENQ\DC2\EOT\221\STX\r\DC2\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\NUL\SOH\DC2\EOT\221\STX\DC3\CAN\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\NUL\ETX\DC2\EOT\221\STX\ESC\FS\n\+    \\FS\n\+    \\ACK\EOT\ACK\ETX\NUL\STX\SOH\DC2\EOT\222\STX\EOT\ESC\"\f Inclusive.\n\+    \\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\SOH\EOT\DC2\EOT\222\STX\EOT\f\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\SOH\ENQ\DC2\EOT\222\STX\r\DC2\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\SOH\SOH\DC2\EOT\222\STX\DC3\SYN\n\+    \\SI\n\+    \\a\EOT\ACK\ETX\NUL\STX\SOH\ETX\DC2\EOT\222\STX\EM\SUB\n\+    \\170\SOH\n\+    \\EOT\EOT\ACK\STX\ETX\DC2\EOT\228\STX\STX0\SUB\155\SOH Range of reserved numeric values. Reserved numeric values may not be used\n\+    \ by enum values in the same enum declaration. Reserved ranges may not\n\+    \ overlap.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\ETX\EOT\DC2\EOT\228\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\ETX\ACK\DC2\EOT\228\STX\v\FS\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\ETX\SOH\DC2\EOT\228\STX\GS+\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\ETX\ETX\DC2\EOT\228\STX./\n\+    \l\n\+    \\EOT\EOT\ACK\STX\EOT\DC2\EOT\232\STX\STX$\SUB^ Reserved enum value names, which may not be reused. A given name may only\n\+    \ be reserved once.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\EOT\EOT\DC2\EOT\232\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\EOT\ENQ\DC2\EOT\232\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\EOT\SOH\DC2\EOT\232\STX\DC2\US\n\+    \\r\n\+    \\ENQ\EOT\ACK\STX\EOT\ETX\DC2\EOT\232\STX\"#\n\+    \1\n\+    \\STX\EOT\a\DC2\ACK\236\STX\NUL\241\STX\SOH\SUB# Describes a value within an enum.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\a\SOH\DC2\EOT\236\STX\b \n\+    \\f\n\+    \\EOT\EOT\a\STX\NUL\DC2\EOT\237\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\a\STX\NUL\EOT\DC2\EOT\237\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\237\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\237\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\237\STX\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\a\STX\SOH\DC2\EOT\238\STX\STX\FS\n\+    \\r\n\+    \\ENQ\EOT\a\STX\SOH\EOT\DC2\EOT\238\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\238\STX\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\238\STX\DC1\ETB\n\+    \\r\n\+    \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\238\STX\SUB\ESC\n\+    \\f\n\+    \\EOT\EOT\a\STX\STX\DC2\EOT\240\STX\STX(\n\+    \\r\n\+    \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT\240\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\240\STX\v\ESC\n\+    \\r\n\+    \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\240\STX\FS#\n\+    \\r\n\+    \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\240\STX&'\n\+    \$\n\+    \\STX\EOT\b\DC2\ACK\244\STX\NUL\249\STX\SOH\SUB\SYN Describes a service.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\b\SOH\DC2\EOT\244\STX\b\RS\n\+    \\f\n\+    \\EOT\EOT\b\STX\NUL\DC2\EOT\245\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\b\STX\NUL\EOT\DC2\EOT\245\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\245\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\245\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\245\STX\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\b\STX\SOH\DC2\EOT\246\STX\STX,\n\+    \\r\n\+    \\ENQ\EOT\b\STX\SOH\EOT\DC2\EOT\246\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\b\STX\SOH\ACK\DC2\EOT\246\STX\v \n\+    \\r\n\+    \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\246\STX!'\n\+    \\r\n\+    \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\246\STX*+\n\+    \\f\n\+    \\EOT\EOT\b\STX\STX\DC2\EOT\248\STX\STX&\n\+    \\r\n\+    \\ENQ\EOT\b\STX\STX\EOT\DC2\EOT\248\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\b\STX\STX\ACK\DC2\EOT\248\STX\v\EM\n\+    \\r\n\+    \\ENQ\EOT\b\STX\STX\SOH\DC2\EOT\248\STX\SUB!\n\+    \\r\n\+    \\ENQ\EOT\b\STX\STX\ETX\DC2\EOT\248\STX$%\n\+    \0\n\+    \\STX\EOT\t\DC2\ACK\252\STX\NUL\138\ETX\SOH\SUB\" Describes a method of a service.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\t\SOH\DC2\EOT\252\STX\b\GS\n\+    \\f\n\+    \\EOT\EOT\t\STX\NUL\DC2\EOT\253\STX\STX\ESC\n\+    \\r\n\+    \\ENQ\EOT\t\STX\NUL\EOT\DC2\EOT\253\STX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\253\STX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\253\STX\DC2\SYN\n\+    \\r\n\+    \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\253\STX\EM\SUB\n\+    \\151\SOH\n\+    \\EOT\EOT\t\STX\SOH\DC2\EOT\129\ETX\STX!\SUB\136\SOH Input and output type names.  These are resolved in the same way as\n\+    \ FieldDescriptorProto.type_name, but must refer to a message type.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\SOH\EOT\DC2\EOT\129\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\129\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\129\ETX\DC2\FS\n\+    \\r\n\+    \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\129\ETX\US \n\+    \\f\n\+    \\EOT\EOT\t\STX\STX\DC2\EOT\130\ETX\STX\"\n\+    \\r\n\+    \\ENQ\EOT\t\STX\STX\EOT\DC2\EOT\130\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\130\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\130\ETX\DC2\GS\n\+    \\r\n\+    \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\130\ETX !\n\+    \\f\n\+    \\EOT\EOT\t\STX\ETX\DC2\EOT\132\ETX\STX%\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ETX\EOT\DC2\EOT\132\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ETX\ACK\DC2\EOT\132\ETX\v\CAN\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\132\ETX\EM \n\+    \\r\n\+    \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\132\ETX#$\n\+    \E\n\+    \\EOT\EOT\t\STX\EOT\DC2\EOT\135\ETX\STX7\SUB7 Identifies if client streams multiple client messages\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\EOT\DC2\EOT\135\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\135\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\135\ETX\DLE \n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\135\ETX#$\n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\b\DC2\EOT\135\ETX%6\n\+    \\r\n\+    \\ENQ\EOT\t\STX\EOT\a\DC2\EOT\135\ETX05\n\+    \E\n\+    \\EOT\EOT\t\STX\ENQ\DC2\EOT\137\ETX\STX7\SUB7 Identifies if server streams multiple server messages\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\EOT\DC2\EOT\137\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\ENQ\DC2\EOT\137\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\SOH\DC2\EOT\137\ETX\DLE \n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\ETX\DC2\EOT\137\ETX#$\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\b\DC2\EOT\137\ETX%6\n\+    \\r\n\+    \\ENQ\EOT\t\STX\ENQ\a\DC2\EOT\137\ETX05\n\+    \\175\SO\n\+    \\STX\EOT\n\+    \\DC2\ACK\172\ETX\NUL\168\EOT\SOH2N ===================================================================\n\+    \ Options\n\+    \2\208\r Each of the definitions above may have \"options\" attached.  These are\n\+    \ just annotations which may cause code to be generated slightly differently\n\+    \ or may contain hints for code that manipulates protocol messages.\n\+    \\n\+    \ Clients may define custom options as extensions of the *Options messages.\n\+    \ These extensions may not yet be known at parsing time, so the parser cannot\n\+    \ store the values in them.  Instead it stores them in a field in the *Options\n\+    \ message called uninterpreted_option. This field must have the same name\n\+    \ across all *Options messages. We then use this field to populate the\n\+    \ extensions when we build a descriptor, at which point all protos have been\n\+    \ parsed and so all extensions are known.\n\+    \\n\+    \ Extension numbers for custom options may be chosen as follows:\n\+    \ * For options which will only be used within a single application or\n\+    \   organization, or for experimental options, use field numbers 50000\n\+    \   through 99999.  It is up to you to ensure that you do not use the\n\+    \   same number for multiple options.\n\+    \ * For options which will be published and used publicly by multiple\n\+    \   independent entities, e-mail protobuf-global-extension-registry@google.com\n\+    \   to reserve extension numbers. Simply provide your project name (e.g.\n\+    \   Objective-C plugin) and your project website (if available) -- there's no\n\+    \   need to explain how you intend to use them. Usually you only need one\n\+    \   extension number. You can declare multiple options with only one extension\n\+    \   number by putting them in a sub-message. See the Custom Options section of\n\+    \   the docs for examples:\n\+    \   https://developers.google.com/protocol-buffers/docs/proto#options\n\+    \   If this turns out to be popular, a web service will be set up\n\+    \   to automatically assign option numbers.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\n\+    \\SOH\DC2\EOT\172\ETX\b\DC3\n\+    \\244\SOH\n\+    \\EOT\EOT\n\+    \\STX\NUL\DC2\EOT\178\ETX\STX#\SUB\229\SOH Sets the Java package where classes generated from this .proto will be\n\+    \ placed.  By default, the proto package is used, but this is often\n\+    \ inappropriate because proto packages do not normally start with backwards\n\+    \ domain names.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\NUL\EOT\DC2\EOT\178\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\NUL\ENQ\DC2\EOT\178\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\NUL\SOH\DC2\EOT\178\ETX\DC2\RS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\NUL\ETX\DC2\EOT\178\ETX!\"\n\+    \\241\STX\n\+    \\EOT\EOT\n\+    \\STX\SOH\DC2\EOT\185\ETX\STX+\SUB\226\STX Controls the name of the wrapper Java class generated for the .proto file.\n\+    \ That class will always contain the .proto file's getDescriptor() method as\n\+    \ well as any top-level extensions defined in the .proto file.\n\+    \ If java_multiple_files is disabled, then all the other classes from the\n\+    \ .proto file will be nested inside the single wrapper outer class.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SOH\EOT\DC2\EOT\185\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SOH\ENQ\DC2\EOT\185\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SOH\SOH\DC2\EOT\185\ETX\DC2&\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SOH\ETX\DC2\EOT\185\ETX)*\n\+    \\166\ETX\n\+    \\EOT\EOT\n\+    \\STX\STX\DC2\EOT\193\ETX\STX;\SUB\151\ETX If enabled, then the Java code generator will generate a separate .java\n\+    \ file for each top-level message, enum, and service defined in the .proto\n\+    \ file.  Thus, these types will *not* be nested inside the wrapper class\n\+    \ named by java_outer_classname.  However, the wrapper class will still be\n\+    \ generated to contain the file's getDescriptor() method as well as any\n\+    \ top-level extensions defined in the file.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\EOT\DC2\EOT\193\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\ENQ\DC2\EOT\193\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\SOH\DC2\EOT\193\ETX\DLE#\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\ETX\DC2\EOT\193\ETX&(\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\b\DC2\EOT\193\ETX):\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\STX\a\DC2\EOT\193\ETX49\n\+    \)\n\+    \\EOT\EOT\n\+    \\STX\ETX\DC2\EOT\196\ETX\STXE\SUB\ESC This option does nothing.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ETX\EOT\DC2\EOT\196\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ETX\ENQ\DC2\EOT\196\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ETX\SOH\DC2\EOT\196\ETX\DLE-\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ETX\ETX\DC2\EOT\196\ETX02\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ETX\b\DC2\EOT\196\ETX3D\n\+    \\SO\n\+    \\ACK\EOT\n\+    \\STX\ETX\b\ETX\DC2\EOT\196\ETX4C\n\+    \\207\ETX\n\+    \\EOT\EOT\n\+    \\STX\EOT\DC2\EOT\208\ETX\STX>\SUB\192\ETX A proto2 file can set this to true to opt in to UTF-8 checking for Java,\n\+    \ which will throw an exception if invalid UTF-8 is parsed from the wire or\n\+    \ assigned to a string field.\n\+    \\n\+    \ TODO: clarify exactly what kinds of field types this option\n\+    \ applies to, and update these docs accordingly.\n\+    \\n\+    \ Proto3 files already perform these checks. Setting the option explicitly to\n\+    \ false has no effect: it cannot be used to opt proto3 files out of UTF-8\n\+    \ checks.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\EOT\DC2\EOT\208\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\ENQ\DC2\EOT\208\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\SOH\DC2\EOT\208\ETX\DLE&\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\ETX\DC2\EOT\208\ETX)+\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\b\DC2\EOT\208\ETX,=\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\EOT\a\DC2\EOT\208\ETX7<\n\+    \L\n\+    \\EOT\EOT\n\+    \\EOT\NUL\DC2\ACK\211\ETX\STX\216\ETX\ETX\SUB< Generated classes can be optimized for speed or code size.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\EOT\NUL\SOH\DC2\EOT\211\ETX\a\DC3\n\+    \D\n\+    \\ACK\EOT\n\+    \\EOT\NUL\STX\NUL\DC2\EOT\212\ETX\EOT\SO\"4 Generate complete code for parsing, serialization,\n\+    \\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\NUL\SOH\DC2\EOT\212\ETX\EOT\t\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\NUL\STX\DC2\EOT\212\ETX\f\r\n\+    \G\n\+    \\ACK\EOT\n\+    \\EOT\NUL\STX\SOH\DC2\EOT\214\ETX\EOT\DC2\SUB\ACK etc.\n\+    \\"/ Use ReflectionOps to implement these methods.\n\+    \\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\SOH\SOH\DC2\EOT\214\ETX\EOT\r\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\SOH\STX\DC2\EOT\214\ETX\DLE\DC1\n\+    \G\n\+    \\ACK\EOT\n\+    \\EOT\NUL\STX\STX\DC2\EOT\215\ETX\EOT\NAK\"7 Generate code using MessageLite and the lite runtime.\n\+    \\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\STX\SOH\DC2\EOT\215\ETX\EOT\DLE\n\+    \\SI\n\+    \\a\EOT\n\+    \\EOT\NUL\STX\STX\STX\DC2\EOT\215\ETX\DC3\DC4\n\+    \\f\n\+    \\EOT\EOT\n\+    \\STX\ENQ\DC2\EOT\217\ETX\STX;\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\EOT\DC2\EOT\217\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\ACK\DC2\EOT\217\ETX\v\ETB\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\SOH\DC2\EOT\217\ETX\CAN$\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\ETX\DC2\EOT\217\ETX'(\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\b\DC2\EOT\217\ETX):\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ENQ\a\DC2\EOT\217\ETX49\n\+    \\226\STX\n\+    \\EOT\EOT\n\+    \\STX\ACK\DC2\EOT\224\ETX\STX\"\SUB\211\STX Sets the Go package where structs generated from this .proto will be\n\+    \ placed. If omitted, the Go package will be derived from the following:\n\+    \   - The basename of the package import path, if provided.\n\+    \   - Otherwise, the package statement in the .proto file, if present.\n\+    \   - Otherwise, the basename of the .proto file, without extension.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ACK\EOT\DC2\EOT\224\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ACK\ENQ\DC2\EOT\224\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ACK\SOH\DC2\EOT\224\ETX\DC2\FS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\ACK\ETX\DC2\EOT\224\ETX\US!\n\+    \\212\EOT\n\+    \\EOT\EOT\n\+    \\STX\a\DC2\EOT\236\ETX\STX;\SUB\197\EOT Should generic services be generated in each language?  \"Generic\" services\n\+    \ are not specific to any particular RPC system.  They are generated by the\n\+    \ main code generators in each language (without additional plugins).\n\+    \ Generic services were the only kind of service generation supported by\n\+    \ early versions of google.protobuf.\n\+    \\n\+    \ Generic services are now considered deprecated in favor of using plugins\n\+    \ that generate code specific to your particular RPC system.  Therefore,\n\+    \ these default to false.  Old code which depends on generic services should\n\+    \ explicitly set them to true.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\EOT\DC2\EOT\236\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\ENQ\DC2\EOT\236\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\SOH\DC2\EOT\236\ETX\DLE#\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\ETX\DC2\EOT\236\ETX&(\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\b\DC2\EOT\236\ETX):\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\a\a\DC2\EOT\236\ETX49\n\+    \\f\n\+    \\EOT\EOT\n\+    \\STX\b\DC2\EOT\237\ETX\STX=\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\EOT\DC2\EOT\237\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\ENQ\DC2\EOT\237\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\SOH\DC2\EOT\237\ETX\DLE%\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\ETX\DC2\EOT\237\ETX(*\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\b\DC2\EOT\237\ETX+<\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\b\a\DC2\EOT\237\ETX6;\n\+    \\f\n\+    \\EOT\EOT\n\+    \\STX\t\DC2\EOT\238\ETX\STX;\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\EOT\DC2\EOT\238\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\ENQ\DC2\EOT\238\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\SOH\DC2\EOT\238\ETX\DLE#\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\ETX\DC2\EOT\238\ETX&(\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\b\DC2\EOT\238\ETX):\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\t\a\DC2\EOT\238\ETX49\n\+    \+\n\+    \\ETX\EOT\n\+    \\t\DC2\EOT\239\ETX\STX\SO\"\RS removed php_generic_services\n\+    \\n\+    \\f\n\+    \\EOT\EOT\n\+    \\t\NUL\DC2\EOT\239\ETX\v\r\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\t\NUL\SOH\DC2\EOT\239\ETX\v\r\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\t\NUL\STX\DC2\EOT\239\ETX\v\r\n\+    \\v\n\+    \\ETX\EOT\n\+    \\n\+    \\DC2\EOT\240\ETX\STX\"\n\+    \\f\n\+    \\EOT\EOT\n\+    \\n\+    \\NUL\DC2\EOT\240\ETX\v!\n\+    \\243\SOH\n\+    \\EOT\EOT\n\+    \\STX\n\+    \\DC2\EOT\246\ETX\STX2\SUB\228\SOH Is this file deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for everything in the file, or it will be completely ignored; in the very\n\+    \ least, this is a formalization for deprecating files.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\EOT\DC2\EOT\246\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\ENQ\DC2\EOT\246\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\SOH\DC2\EOT\246\ETX\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\ETX\DC2\EOT\246\ETX\GS\US\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\b\DC2\EOT\246\ETX 1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\n\+    \\a\DC2\EOT\246\ETX+0\n\+    \\DEL\n\+    \\EOT\EOT\n\+    \\STX\v\DC2\EOT\250\ETX\STX7\SUBq Enables the use of arenas for the proto messages in this file. This applies\n\+    \ only to generated classes for C++.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\EOT\DC2\EOT\250\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\ENQ\DC2\EOT\250\ETX\v\SI\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\SOH\DC2\EOT\250\ETX\DLE \n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\ETX\DC2\EOT\250\ETX#%\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\b\DC2\EOT\250\ETX&6\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\v\a\DC2\EOT\250\ETX15\n\+    \\146\SOH\n\+    \\EOT\EOT\n\+    \\STX\f\DC2\EOT\254\ETX\STX)\SUB\131\SOH Sets the objective c class prefix which is prepended to all objective c\n\+    \ generated classes from this .proto. There is no default.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\f\EOT\DC2\EOT\254\ETX\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\f\ENQ\DC2\EOT\254\ETX\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\f\SOH\DC2\EOT\254\ETX\DC2#\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\f\ETX\DC2\EOT\254\ETX&(\n\+    \I\n\+    \\EOT\EOT\n\+    \\STX\r\DC2\EOT\129\EOT\STX(\SUB; Namespace for generated classes; defaults to the package.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\r\EOT\DC2\EOT\129\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\r\ENQ\DC2\EOT\129\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\r\SOH\DC2\EOT\129\EOT\DC2\"\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\r\ETX\DC2\EOT\129\EOT%'\n\+    \\145\STX\n\+    \\EOT\EOT\n\+    \\STX\SO\DC2\EOT\135\EOT\STX$\SUB\130\STX By default Swift generators will take the proto package and CamelCase it\n\+    \ replacing '.' with underscore and use that to prefix the types/symbols\n\+    \ defined. When this options is provided, they will use this value instead\n\+    \ to prefix the types/symbols defined.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SO\EOT\DC2\EOT\135\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SO\ENQ\DC2\EOT\135\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SO\SOH\DC2\EOT\135\EOT\DC2\RS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SO\ETX\DC2\EOT\135\EOT!#\n\+    \~\n\+    \\EOT\EOT\n\+    \\STX\SI\DC2\EOT\139\EOT\STX(\SUBp Sets the php class prefix which is prepended to all php generated classes\n\+    \ from this .proto. Default is empty.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SI\EOT\DC2\EOT\139\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SI\ENQ\DC2\EOT\139\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SI\SOH\DC2\EOT\139\EOT\DC2\"\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\SI\ETX\DC2\EOT\139\EOT%'\n\+    \\190\SOH\n\+    \\EOT\EOT\n\+    \\STX\DLE\DC2\EOT\144\EOT\STX%\SUB\175\SOH Use this option to change the namespace of php generated classes. Default\n\+    \ is empty. When this option is empty, the package name will be used for\n\+    \ determining the namespace.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DLE\EOT\DC2\EOT\144\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DLE\ENQ\DC2\EOT\144\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DLE\SOH\DC2\EOT\144\EOT\DC2\US\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DLE\ETX\DC2\EOT\144\EOT\"$\n\+    \\202\SOH\n\+    \\EOT\EOT\n\+    \\STX\DC1\DC2\EOT\149\EOT\STX.\SUB\187\SOH Use this option to change the namespace of php generated metadata classes.\n\+    \ Default is empty. When this option is empty, the proto file name will be\n\+    \ used for determining the namespace.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC1\EOT\DC2\EOT\149\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC1\ENQ\DC2\EOT\149\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC1\SOH\DC2\EOT\149\EOT\DC2(\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC1\ETX\DC2\EOT\149\EOT+-\n\+    \\194\SOH\n\+    \\EOT\EOT\n\+    \\STX\DC2\DC2\EOT\154\EOT\STX$\SUB\179\SOH Use this option to change the package of ruby generated classes. Default\n\+    \ is empty. When this option is not set, the package name will be used for\n\+    \ determining the ruby package.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC2\EOT\DC2\EOT\154\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC2\ENQ\DC2\EOT\154\EOT\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC2\SOH\DC2\EOT\154\EOT\DC2\RS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC2\ETX\DC2\EOT\154\EOT!#\n\+    \=\n\+    \\EOT\EOT\n\+    \\STX\DC3\DC2\EOT\157\EOT\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC3\EOT\DC2\EOT\157\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC3\ACK\DC2\EOT\157\EOT\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC3\SOH\DC2\EOT\157\EOT\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC3\ETX\DC2\EOT\157\EOT!#\n\+    \|\n\+    \\EOT\EOT\n\+    \\STX\DC4\DC2\EOT\161\EOT\STX:\SUBn The parser stores options it doesn't recognize here.\n\+    \ See the documentation for the \"Options\" section above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC4\EOT\DC2\EOT\161\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC4\ACK\DC2\EOT\161\EOT\v\RS\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC4\SOH\DC2\EOT\161\EOT\US3\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\STX\DC4\ETX\DC2\EOT\161\EOT69\n\+    \\135\SOH\n\+    \\ETX\EOT\n\+    \\ENQ\DC2\EOT\165\EOT\STX\EM\SUBz Clients can define custom options in extensions of this message.\n\+    \ See the documentation for the \"Options\" section above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\n\+    \\ENQ\NUL\DC2\EOT\165\EOT\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\ENQ\NUL\SOH\DC2\EOT\165\EOT\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\ENQ\NUL\STX\DC2\EOT\165\EOT\NAK\CAN\n\+    \\v\n\+    \\ETX\EOT\n\+    \\t\DC2\EOT\167\EOT\STX\SO\n\+    \\f\n\+    \\EOT\EOT\n\+    \\t\SOH\DC2\EOT\167\EOT\v\r\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\t\SOH\SOH\DC2\EOT\167\EOT\v\r\n\+    \\r\n\+    \\ENQ\EOT\n\+    \\t\SOH\STX\DC2\EOT\167\EOT\v\r\n\+    \\f\n\+    \\STX\EOT\v\DC2\ACK\170\EOT\NUL\250\EOT\SOH\n\+    \\v\n\+    \\ETX\EOT\v\SOH\DC2\EOT\170\EOT\b\SYN\n\+    \\216\ENQ\n\+    \\EOT\EOT\v\STX\NUL\DC2\EOT\189\EOT\STX>\SUB\201\ENQ Set true to use the old proto1 MessageSet wire format for extensions.\n\+    \ This is provided for backwards-compatibility with the MessageSet wire\n\+    \ format.  You should not use this for any other reason:  It's less\n\+    \ efficient, has fewer features, and is more complicated.\n\+    \\n\+    \ The message must be defined exactly as follows:\n\+    \   message Foo {\n\+    \     option message_set_wire_format = true;\n\+    \     extensions 4 to max;\n\+    \   }\n\+    \ Note that the message cannot have any defined fields; MessageSets only\n\+    \ have extensions.\n\+    \\n\+    \ All extensions of your type must be singular messages; e.g. they cannot\n\+    \ be int32s, enums, or repeated messages.\n\+    \\n\+    \ Because this is an option, the above two restrictions are not enforced by\n\+    \ the protocol compiler.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\EOT\DC2\EOT\189\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\ENQ\DC2\EOT\189\EOT\v\SI\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\189\EOT\DLE'\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\189\EOT*+\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\b\DC2\EOT\189\EOT,=\n\+    \\r\n\+    \\ENQ\EOT\v\STX\NUL\a\DC2\EOT\189\EOT7<\n\+    \\235\SOH\n\+    \\EOT\EOT\v\STX\SOH\DC2\EOT\194\EOT\STXF\SUB\220\SOH Disables the generation of the standard \"descriptor()\" accessor, which can\n\+    \ conflict with a field of the same name.  This is meant to make migration\n\+    \ from proto1 easier; new code should avoid fields named \"descriptor\".\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\EOT\DC2\EOT\194\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\194\EOT\v\SI\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\194\EOT\DLE/\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\194\EOT23\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\b\DC2\EOT\194\EOT4E\n\+    \\r\n\+    \\ENQ\EOT\v\STX\SOH\a\DC2\EOT\194\EOT?D\n\+    \\238\SOH\n\+    \\EOT\EOT\v\STX\STX\DC2\EOT\200\EOT\STX1\SUB\223\SOH Is this message deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for the message, or it will be completely ignored; in the very least,\n\+    \ this is a formalization for deprecating messages.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\EOT\DC2\EOT\200\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\200\EOT\v\SI\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\200\EOT\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\200\EOT\GS\RS\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\b\DC2\EOT\200\EOT\US0\n\+    \\r\n\+    \\ENQ\EOT\v\STX\STX\a\DC2\EOT\200\EOT*/\n\+    \\v\n\+    \\ETX\EOT\v\t\DC2\EOT\202\EOT\STX\DC3\n\+    \\f\n\+    \\EOT\EOT\v\t\NUL\DC2\EOT\202\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\NUL\SOH\DC2\EOT\202\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\NUL\STX\DC2\EOT\202\EOT\v\f\n\+    \\f\n\+    \\EOT\EOT\v\t\SOH\DC2\EOT\202\EOT\SO\SI\n\+    \\r\n\+    \\ENQ\EOT\v\t\SOH\SOH\DC2\EOT\202\EOT\SO\SI\n\+    \\r\n\+    \\ENQ\EOT\v\t\SOH\STX\DC2\EOT\202\EOT\SO\SI\n\+    \\f\n\+    \\EOT\EOT\v\t\STX\DC2\EOT\202\EOT\DC1\DC2\n\+    \\r\n\+    \\ENQ\EOT\v\t\STX\SOH\DC2\EOT\202\EOT\DC1\DC2\n\+    \\r\n\+    \\ENQ\EOT\v\t\STX\STX\DC2\EOT\202\EOT\DC1\DC2\n\+    \\160\ACK\n\+    \\EOT\EOT\v\STX\ETX\DC2\EOT\225\EOT\STX\RS\SUB\145\ACK Whether the message is an automatically generated map entry type for the\n\+    \ maps field.\n\+    \\n\+    \ For maps fields:\n\+    \     map<KeyType, ValueType> map_field = 1;\n\+    \ The parsed descriptor looks like:\n\+    \     message MapFieldEntry {\n\+    \         option map_entry = true;\n\+    \         optional KeyType key = 1;\n\+    \         optional ValueType value = 2;\n\+    \     }\n\+    \     repeated MapFieldEntry map_field = 1;\n\+    \\n\+    \ Implementations may choose not to generate the map_entry=true message, but\n\+    \ use a native map in the target language to hold the keys and values.\n\+    \ The reflection APIs in such implementations still need to work as\n\+    \ if the field is a repeated message field.\n\+    \\n\+    \ NOTE: Do not set the option in .proto files. Always use the maps syntax\n\+    \ instead. The option should only be implicitly set by the proto compiler\n\+    \ parser.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ETX\EOT\DC2\EOT\225\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\225\EOT\v\SI\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\225\EOT\DLE\EM\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\225\EOT\FS\GS\n\+    \$\n\+    \\ETX\EOT\v\t\DC2\EOT\227\EOT\STX\r\"\ETB javalite_serializable\n\+    \\n\+    \\f\n\+    \\EOT\EOT\v\t\ETX\DC2\EOT\227\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\ETX\SOH\DC2\EOT\227\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\ETX\STX\DC2\EOT\227\EOT\v\f\n\+    \\US\n\+    \\ETX\EOT\v\t\DC2\EOT\228\EOT\STX\r\"\DC2 javanano_as_lite\n\+    \\n\+    \\f\n\+    \\EOT\EOT\v\t\EOT\DC2\EOT\228\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\EOT\SOH\DC2\EOT\228\EOT\v\f\n\+    \\r\n\+    \\ENQ\EOT\v\t\EOT\STX\DC2\EOT\228\EOT\v\f\n\+    \\221\ETX\n\+    \\EOT\EOT\v\STX\EOT\DC2\EOT\240\EOT\STXP\SUB\206\ETX Enable the legacy handling of JSON field name conflicts.  This lowercases\n\+    \ and strips underscored from the fields before comparison in proto3 only.\n\+    \ The new behavior takes `json_name` into account and applies to proto2 as\n\+    \ well.\n\+    \\n\+    \ This should only be used as a temporary measure against broken builds due\n\+    \ to the change in behavior for JSON field name conflicts.\n\+    \\n\+    \ TODO This is legacy behavior we plan to remove once downstream\n\+    \ teams have had time to migrate.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\EOT\EOT\DC2\EOT\240\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\EOT\ENQ\DC2\EOT\240\EOT\v\SI\n\+    \\r\n\+    \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\240\EOT\DLE6\n\+    \\r\n\+    \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\240\EOT9;\n\+    \\r\n\+    \\ENQ\EOT\v\STX\EOT\b\DC2\EOT\240\EOT<O\n\+    \\SO\n\+    \\ACK\EOT\v\STX\EOT\b\ETX\DC2\EOT\240\EOT=N\n\+    \=\n\+    \\EOT\EOT\v\STX\ENQ\DC2\EOT\243\EOT\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ENQ\EOT\DC2\EOT\243\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ENQ\ACK\DC2\EOT\243\EOT\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ENQ\SOH\DC2\EOT\243\EOT\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ENQ\ETX\DC2\EOT\243\EOT!#\n\+    \O\n\+    \\EOT\EOT\v\STX\ACK\DC2\EOT\246\EOT\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ACK\EOT\DC2\EOT\246\EOT\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ACK\ACK\DC2\EOT\246\EOT\v\RS\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ACK\SOH\DC2\EOT\246\EOT\US3\n\+    \\r\n\+    \\ENQ\EOT\v\STX\ACK\ETX\DC2\EOT\246\EOT69\n\+    \Z\n\+    \\ETX\EOT\v\ENQ\DC2\EOT\249\EOT\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\v\ENQ\NUL\DC2\EOT\249\EOT\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\v\ENQ\NUL\SOH\DC2\EOT\249\EOT\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\v\ENQ\NUL\STX\DC2\EOT\249\EOT\NAK\CAN\n\+    \\f\n\+    \\STX\EOT\f\DC2\ACK\252\EOT\NUL\162\ACK\SOH\n\+    \\v\n\+    \\ETX\EOT\f\SOH\DC2\EOT\252\EOT\b\DC4\n\+    \\194\ETX\n\+    \\EOT\EOT\f\STX\NUL\DC2\EOT\132\ENQ\STXE\SUB\179\ETX NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.\n\+    \ The ctype option instructs the C++ code generator to use a different\n\+    \ representation of the field than it normally would.  See the specific\n\+    \ options below.  This option is only implemented to support use of\n\+    \ [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of\n\+    \ type \"bytes\" in the open source release.\n\+    \ TODO: make ctype actually deprecated.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\EOT\DC2\EOT\132\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\ACK\DC2\EOT\132\ENQ\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\SOH\DC2\EOT\132\ENQ\DC1\SYN\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\ETX\DC2\EOT\132\ENQ\EM\SUB\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\b\DC2\EOT\132\ENQ\ESCD\n\+    \\r\n\+    \\ENQ\EOT\f\STX\NUL\a\DC2\EOT\132\ENQ=C\n\+    \\SO\n\+    \\EOT\EOT\f\EOT\NUL\DC2\ACK\133\ENQ\STX\146\ENQ\ETX\n\+    \\r\n\+    \\ENQ\EOT\f\EOT\NUL\SOH\DC2\EOT\133\ENQ\a\f\n\+    \\US\n\+    \\ACK\EOT\f\EOT\NUL\STX\NUL\DC2\EOT\135\ENQ\EOT\SI\SUB\SI Default mode.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\NUL\SOH\DC2\EOT\135\ENQ\EOT\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\NUL\STX\DC2\EOT\135\ENQ\r\SO\n\+    \\150\ETX\n\+    \\ACK\EOT\f\EOT\NUL\STX\SOH\DC2\EOT\143\ENQ\EOT\r\SUB\133\ETX The option [ctype=CORD] may be applied to a non-repeated field of type\n\+    \ \"bytes\". It indicates that in C++, the data should be stored in a Cord\n\+    \ instead of a string.  For very large strings, this may reduce memory\n\+    \ fragmentation. It may also allow better performance when parsing from a\n\+    \ Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n\+    \ alias the original buffer.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\SOH\SOH\DC2\EOT\143\ENQ\EOT\b\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\SOH\STX\DC2\EOT\143\ENQ\v\f\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\NUL\STX\STX\DC2\EOT\145\ENQ\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\STX\SOH\DC2\EOT\145\ENQ\EOT\DLE\n\+    \\SI\n\+    \\a\EOT\f\EOT\NUL\STX\STX\STX\DC2\EOT\145\ENQ\DC3\DC4\n\+    \\211\ETX\n\+    \\EOT\EOT\f\STX\SOH\DC2\EOT\154\ENQ\STX\ESC\SUB\196\ETX The packed option can be enabled for repeated primitive fields to enable\n\+    \ a more efficient representation on the wire. Rather than repeatedly\n\+    \ writing the tag and type for each element, the entire array is encoded as\n\+    \ a single length-delimited blob. In proto3, only explicit setting it to\n\+    \ false will avoid using packed encoding.  This option is prohibited in\n\+    \ Editions, but the `repeated_field_encoding` feature can be used to control\n\+    \ the behavior.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\SOH\EOT\DC2\EOT\154\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\SOH\ENQ\DC2\EOT\154\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\SOH\SOH\DC2\EOT\154\ENQ\DLE\SYN\n\+    \\r\n\+    \\ENQ\EOT\f\STX\SOH\ETX\DC2\EOT\154\ENQ\EM\SUB\n\+    \\154\ENQ\n\+    \\EOT\EOT\f\STX\STX\DC2\EOT\167\ENQ\STX3\SUB\139\ENQ The jstype option determines the JavaScript type used for values of the\n\+    \ field.  The option is permitted only for 64 bit integral and fixed types\n\+    \ (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING\n\+    \ is represented as JavaScript string, which avoids loss of precision that\n\+    \ can happen when a large value is converted to a floating point JavaScript.\n\+    \ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n\+    \ use the JavaScript \"number\" type.  The behavior of the default option\n\+    \ JS_NORMAL is implementation dependent.\n\+    \\n\+    \ This option is an enum to permit additional types to be added, e.g.\n\+    \ goog.math.Integer.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\EOT\DC2\EOT\167\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\ACK\DC2\EOT\167\ENQ\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\SOH\DC2\EOT\167\ENQ\DC2\CAN\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\ETX\DC2\EOT\167\ENQ\ESC\FS\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\b\DC2\EOT\167\ENQ\GS2\n\+    \\r\n\+    \\ENQ\EOT\f\STX\STX\a\DC2\EOT\167\ENQ(1\n\+    \\SO\n\+    \\EOT\EOT\f\EOT\SOH\DC2\ACK\168\ENQ\STX\177\ENQ\ETX\n\+    \\r\n\+    \\ENQ\EOT\f\EOT\SOH\SOH\DC2\EOT\168\ENQ\a\r\n\+    \'\n\+    \\ACK\EOT\f\EOT\SOH\STX\NUL\DC2\EOT\170\ENQ\EOT\DC2\SUB\ETB Use the default type.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\NUL\SOH\DC2\EOT\170\ENQ\EOT\r\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\NUL\STX\DC2\EOT\170\ENQ\DLE\DC1\n\+    \)\n\+    \\ACK\EOT\f\EOT\SOH\STX\SOH\DC2\EOT\173\ENQ\EOT\DC2\SUB\EM Use JavaScript strings.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\SOH\SOH\DC2\EOT\173\ENQ\EOT\r\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\SOH\STX\DC2\EOT\173\ENQ\DLE\DC1\n\+    \)\n\+    \\ACK\EOT\f\EOT\SOH\STX\STX\DC2\EOT\176\ENQ\EOT\DC2\SUB\EM Use JavaScript numbers.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\STX\SOH\DC2\EOT\176\ENQ\EOT\r\n\+    \\SI\n\+    \\a\EOT\f\EOT\SOH\STX\STX\STX\DC2\EOT\176\ENQ\DLE\DC1\n\+    \\153\n\+    \\n\+    \\EOT\EOT\f\STX\ETX\DC2\EOT\201\ENQ\STX+\SUB\138\n\+    \ Should this field be parsed lazily?  Lazy applies only to message-type\n\+    \ fields.  It means that when the outer message is initially parsed, the\n\+    \ inner message's contents will not be parsed but instead stored in encoded\n\+    \ form.  The inner message will actually be parsed when it is first accessed.\n\+    \\n\+    \ This is only a hint.  Implementations are free to choose whether to use\n\+    \ eager or lazy parsing regardless of the value of this option.  However,\n\+    \ setting this option true suggests that the protocol author believes that\n\+    \ using lazy parsing on this field is worth the additional bookkeeping\n\+    \ overhead typically needed to implement it.\n\+    \\n\+    \ This option does not affect the public interface of any generated code;\n\+    \ all method signatures remain the same.  Furthermore, thread-safety of the\n\+    \ interface is not affected by this option; const methods remain safe to\n\+    \ call from multiple threads concurrently, while non-const methods continue\n\+    \ to require exclusive access.\n\+    \\n\+    \ Note that lazy message fields are still eagerly verified to check\n\+    \ ill-formed wireformat or missing required fields. Calling IsInitialized()\n\+    \ on the outer message would fail if the inner message has missing required\n\+    \ fields. Failed verification would result in parsing failure (except when\n\+    \ uninitialized messages are acceptable).\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\EOT\DC2\EOT\201\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\ENQ\DC2\EOT\201\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\SOH\DC2\EOT\201\ENQ\DLE\DC4\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\ETX\DC2\EOT\201\ENQ\ETB\CAN\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\b\DC2\EOT\201\ENQ\EM*\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ETX\a\DC2\EOT\201\ENQ$)\n\+    \\175\SOH\n\+    \\EOT\EOT\f\STX\EOT\DC2\EOT\206\ENQ\STX7\SUB\160\SOH unverified_lazy does no correctness checks on the byte stream. This should\n\+    \ only be used where lazy with verification is prohibitive for performance\n\+    \ reasons.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\EOT\DC2\EOT\206\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\ENQ\DC2\EOT\206\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\SOH\DC2\EOT\206\ENQ\DLE\US\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\ETX\DC2\EOT\206\ENQ\"$\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\b\DC2\EOT\206\ENQ%6\n\+    \\r\n\+    \\ENQ\EOT\f\STX\EOT\a\DC2\EOT\206\ENQ05\n\+    \\232\SOH\n\+    \\EOT\EOT\f\STX\ENQ\DC2\EOT\212\ENQ\STX1\SUB\217\SOH Is this field deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for accessors, or it will be completely ignored; in the very least, this\n\+    \ is a formalization for deprecating fields.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\EOT\DC2\EOT\212\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\ENQ\DC2\EOT\212\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\SOH\DC2\EOT\212\ENQ\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\ETX\DC2\EOT\212\ENQ\GS\RS\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\b\DC2\EOT\212\ENQ\US0\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ENQ\a\DC2\EOT\212\ENQ*/\n\+    \?\n\+    \\EOT\EOT\f\STX\ACK\DC2\EOT\215\ENQ\STX,\SUB1 For Google-internal migration only. Do not use.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\EOT\DC2\EOT\215\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\ENQ\DC2\EOT\215\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\SOH\DC2\EOT\215\ENQ\DLE\DC4\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\ETX\DC2\EOT\215\ENQ\ETB\EM\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\b\DC2\EOT\215\ENQ\SUB+\n\+    \\r\n\+    \\ENQ\EOT\f\STX\ACK\a\DC2\EOT\215\ENQ%*\n\+    \\151\SOH\n\+    \\EOT\EOT\f\STX\a\DC2\EOT\219\ENQ\STX4\SUB\136\SOH Indicate that the field value should not be printed out when using debug\n\+    \ formats, e.g. when the field contains sensitive credentials.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\EOT\DC2\EOT\219\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\ENQ\DC2\EOT\219\ENQ\v\SI\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\SOH\DC2\EOT\219\ENQ\DLE\FS\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\ETX\DC2\EOT\219\ENQ\US!\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\b\DC2\EOT\219\ENQ\"3\n\+    \\r\n\+    \\ENQ\EOT\f\STX\a\a\DC2\EOT\219\ENQ-2\n\+    \\197\SOH\n\+    \\EOT\EOT\f\EOT\STX\DC2\ACK\224\ENQ\STX\228\ENQ\ETX\SUB\180\SOH If set to RETENTION_SOURCE, the option will be omitted from the binary.\n\+    \ Note: as of January 2023, support for this is in progress and does not yet\n\+    \ have an effect (b/264593489).\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\EOT\STX\SOH\DC2\EOT\224\ENQ\a\SYN\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\STX\STX\NUL\DC2\EOT\225\ENQ\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\NUL\SOH\DC2\EOT\225\ENQ\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\NUL\STX\DC2\EOT\225\ENQ\CAN\EM\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\STX\STX\SOH\DC2\EOT\226\ENQ\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\SOH\SOH\DC2\EOT\226\ENQ\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\SOH\STX\DC2\EOT\226\ENQ\CAN\EM\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\STX\STX\STX\DC2\EOT\227\ENQ\EOT\EM\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\STX\SOH\DC2\EOT\227\ENQ\EOT\DC4\n\+    \\SI\n\+    \\a\EOT\f\EOT\STX\STX\STX\STX\DC2\EOT\227\ENQ\ETB\CAN\n\+    \\f\n\+    \\EOT\EOT\f\STX\b\DC2\EOT\230\ENQ\STX*\n\+    \\r\n\+    \\ENQ\EOT\f\STX\b\EOT\DC2\EOT\230\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\b\ACK\DC2\EOT\230\ENQ\v\SUB\n\+    \\r\n\+    \\ENQ\EOT\f\STX\b\SOH\DC2\EOT\230\ENQ\ESC$\n\+    \\r\n\+    \\ENQ\EOT\f\STX\b\ETX\DC2\EOT\230\ENQ')\n\+    \\173\STX\n\+    \\EOT\EOT\f\EOT\ETX\DC2\ACK\236\ENQ\STX\247\ENQ\ETX\SUB\156\STX This indicates the types of entities that the field may apply to when used\n\+    \ as an option. If it is unset, then the field may be freely used as an\n\+    \ option on any kind of entity. Note: as of January 2023, support for this is\n\+    \ in progress and does not yet have an effect (b/264593489).\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\EOT\ETX\SOH\DC2\EOT\236\ENQ\a\ETB\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\NUL\DC2\EOT\237\ENQ\EOT\FS\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\NUL\SOH\DC2\EOT\237\ENQ\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\NUL\STX\DC2\EOT\237\ENQ\SUB\ESC\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\SOH\DC2\EOT\238\ENQ\EOT\EM\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\SOH\SOH\DC2\EOT\238\ENQ\EOT\DC4\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\SOH\STX\DC2\EOT\238\ENQ\ETB\CAN\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\STX\DC2\EOT\239\ENQ\EOT$\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\STX\SOH\DC2\EOT\239\ENQ\EOT\US\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\STX\STX\DC2\EOT\239\ENQ\"#\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\ETX\DC2\EOT\240\ENQ\EOT\FS\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ETX\SOH\DC2\EOT\240\ENQ\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ETX\STX\DC2\EOT\240\ENQ\SUB\ESC\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\EOT\DC2\EOT\241\ENQ\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\EOT\SOH\DC2\EOT\241\ENQ\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\EOT\STX\DC2\EOT\241\ENQ\CAN\EM\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\ENQ\DC2\EOT\242\ENQ\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ENQ\SOH\DC2\EOT\242\ENQ\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ENQ\STX\DC2\EOT\242\ENQ\CAN\EM\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\ACK\DC2\EOT\243\ENQ\EOT\EM\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ACK\SOH\DC2\EOT\243\ENQ\EOT\DC4\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\ACK\STX\DC2\EOT\243\ENQ\ETB\CAN\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\a\DC2\EOT\244\ENQ\EOT\US\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\a\SOH\DC2\EOT\244\ENQ\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\a\STX\DC2\EOT\244\ENQ\GS\RS\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\b\DC2\EOT\245\ENQ\EOT\FS\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\b\SOH\DC2\EOT\245\ENQ\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\b\STX\DC2\EOT\245\ENQ\SUB\ESC\n\+    \\SO\n\+    \\ACK\EOT\f\EOT\ETX\STX\t\DC2\EOT\246\ENQ\EOT\ESC\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\t\SOH\DC2\EOT\246\ENQ\EOT\SYN\n\+    \\SI\n\+    \\a\EOT\f\EOT\ETX\STX\t\STX\DC2\EOT\246\ENQ\EM\SUB\n\+    \\f\n\+    \\EOT\EOT\f\STX\t\DC2\EOT\249\ENQ\STX)\n\+    \\r\n\+    \\ENQ\EOT\f\STX\t\EOT\DC2\EOT\249\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\t\ACK\DC2\EOT\249\ENQ\v\ESC\n\+    \\r\n\+    \\ENQ\EOT\f\STX\t\SOH\DC2\EOT\249\ENQ\FS#\n\+    \\r\n\+    \\ENQ\EOT\f\STX\t\ETX\DC2\EOT\249\ENQ&(\n\+    \\SO\n\+    \\EOT\EOT\f\ETX\NUL\DC2\ACK\251\ENQ\STX\254\ENQ\ETX\n\+    \\r\n\+    \\ENQ\EOT\f\ETX\NUL\SOH\DC2\EOT\251\ENQ\n\+    \\CAN\n\+    \\SO\n\+    \\ACK\EOT\f\ETX\NUL\STX\NUL\DC2\EOT\252\ENQ\EOT!\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\NUL\EOT\DC2\EOT\252\ENQ\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\NUL\ACK\DC2\EOT\252\ENQ\r\DC4\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\NUL\SOH\DC2\EOT\252\ENQ\NAK\FS\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\NUL\ETX\DC2\EOT\252\ENQ\US \n\+    \\"\n\+    \\ACK\EOT\f\ETX\NUL\STX\SOH\DC2\EOT\253\ENQ\EOT\RS\"\DC2 Textproto value.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\SOH\EOT\DC2\EOT\253\ENQ\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\SOH\ENQ\DC2\EOT\253\ENQ\r\DC3\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\SOH\SOH\DC2\EOT\253\ENQ\DC4\EM\n\+    \\SI\n\+    \\a\EOT\f\ETX\NUL\STX\SOH\ETX\DC2\EOT\253\ENQ\FS\GS\n\+    \\f\n\+    \\EOT\EOT\f\STX\n\+    \\DC2\EOT\255\ENQ\STX0\n\+    \\r\n\+    \\ENQ\EOT\f\STX\n\+    \\EOT\DC2\EOT\255\ENQ\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\n\+    \\ACK\DC2\EOT\255\ENQ\v\EM\n\+    \\r\n\+    \\ENQ\EOT\f\STX\n\+    \\SOH\DC2\EOT\255\ENQ\SUB*\n\+    \\r\n\+    \\ENQ\EOT\f\STX\n\+    \\ETX\DC2\EOT\255\ENQ-/\n\+    \=\n\+    \\EOT\EOT\f\STX\v\DC2\EOT\130\ACK\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\v\EOT\DC2\EOT\130\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\v\ACK\DC2\EOT\130\ACK\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\f\STX\v\SOH\DC2\EOT\130\ACK\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\f\STX\v\ETX\DC2\EOT\130\ACK!#\n\+    \D\n\+    \\EOT\EOT\f\ETX\SOH\DC2\ACK\133\ACK\STX\151\ACK\ETX\SUB4 Information about the support window of a feature.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\ETX\SOH\SOH\DC2\EOT\133\ACK\n\+    \\CAN\n\+    \\212\SOH\n\+    \\ACK\EOT\f\ETX\SOH\STX\NUL\DC2\EOT\137\ACK\EOT,\SUB\195\SOH The edition that this feature was first available in.  In editions\n\+    \ earlier than this one, the default assigned to EDITION_LEGACY will be\n\+    \ used, and proto files will not be able to override it.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\NUL\EOT\DC2\EOT\137\ACK\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\NUL\ACK\DC2\EOT\137\ACK\r\DC4\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\NUL\SOH\DC2\EOT\137\ACK\NAK'\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\NUL\ETX\DC2\EOT\137\ACK*+\n\+    \w\n\+    \\ACK\EOT\f\ETX\SOH\STX\SOH\DC2\EOT\141\ACK\EOT,\SUBg The edition this feature becomes deprecated in.  Using this after this\n\+    \ edition may trigger warnings.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\SOH\EOT\DC2\EOT\141\ACK\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\SOH\ACK\DC2\EOT\141\ACK\r\DC4\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\SOH\SOH\DC2\EOT\141\ACK\NAK'\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\SOH\ETX\DC2\EOT\141\ACK*+\n\+    \v\n\+    \\ACK\EOT\f\ETX\SOH\STX\STX\DC2\EOT\145\ACK\EOT,\SUBf The deprecation warning text if this feature is used after the edition it\n\+    \ was marked deprecated in.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\STX\EOT\DC2\EOT\145\ACK\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\STX\ENQ\DC2\EOT\145\ACK\r\DC3\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\STX\SOH\DC2\EOT\145\ACK\DC4'\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\STX\ETX\DC2\EOT\145\ACK*+\n\+    \\190\SOH\n\+    \\ACK\EOT\f\ETX\SOH\STX\ETX\DC2\EOT\150\ACK\EOT)\SUB\173\SOH The edition this feature is no longer available in.  In editions after\n\+    \ this one, the last default assigned will be used, and proto files will\n\+    \ not be able to override it.\n\+    \\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\ETX\EOT\DC2\EOT\150\ACK\EOT\f\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\ETX\ACK\DC2\EOT\150\ACK\r\DC4\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\ETX\SOH\DC2\EOT\150\ACK\NAK$\n\+    \\SI\n\+    \\a\EOT\f\ETX\SOH\STX\ETX\ETX\DC2\EOT\150\ACK'(\n\+    \\f\n\+    \\EOT\EOT\f\STX\f\DC2\EOT\152\ACK\STX/\n\+    \\r\n\+    \\ENQ\EOT\f\STX\f\EOT\DC2\EOT\152\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\f\ACK\DC2\EOT\152\ACK\v\EM\n\+    \\r\n\+    \\ENQ\EOT\f\STX\f\SOH\DC2\EOT\152\ACK\SUB)\n\+    \\r\n\+    \\ENQ\EOT\f\STX\f\ETX\DC2\EOT\152\ACK,.\n\+    \O\n\+    \\EOT\EOT\f\STX\r\DC2\EOT\155\ACK\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\r\EOT\DC2\EOT\155\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\f\STX\r\ACK\DC2\EOT\155\ACK\v\RS\n\+    \\r\n\+    \\ENQ\EOT\f\STX\r\SOH\DC2\EOT\155\ACK\US3\n\+    \\r\n\+    \\ENQ\EOT\f\STX\r\ETX\DC2\EOT\155\ACK69\n\+    \Z\n\+    \\ETX\EOT\f\ENQ\DC2\EOT\158\ACK\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\f\ENQ\NUL\DC2\EOT\158\ACK\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\f\ENQ\NUL\SOH\DC2\EOT\158\ACK\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\f\ENQ\NUL\STX\DC2\EOT\158\ACK\NAK\CAN\n\+    \\FS\n\+    \\ETX\EOT\f\t\DC2\EOT\160\ACK\STX\r\"\SI removed jtype\n\+    \\n\+    \\f\n\+    \\EOT\EOT\f\t\NUL\DC2\EOT\160\ACK\v\f\n\+    \\r\n\+    \\ENQ\EOT\f\t\NUL\SOH\DC2\EOT\160\ACK\v\f\n\+    \\r\n\+    \\ENQ\EOT\f\t\NUL\STX\DC2\EOT\160\ACK\v\f\n\+    \9\n\+    \\ETX\EOT\f\t\DC2\EOT\161\ACK\STX\SO\", reserve target, target_obsolete_do_not_use\n\+    \\n\+    \\f\n\+    \\EOT\EOT\f\t\SOH\DC2\EOT\161\ACK\v\r\n\+    \\r\n\+    \\ENQ\EOT\f\t\SOH\SOH\DC2\EOT\161\ACK\v\r\n\+    \\r\n\+    \\ENQ\EOT\f\t\SOH\STX\DC2\EOT\161\ACK\v\r\n\+    \\f\n\+    \\STX\EOT\r\DC2\ACK\164\ACK\NUL\173\ACK\SOH\n\+    \\v\n\+    \\ETX\EOT\r\SOH\DC2\EOT\164\ACK\b\DC4\n\+    \=\n\+    \\EOT\EOT\r\STX\NUL\DC2\EOT\166\ACK\STX#\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\r\STX\NUL\EOT\DC2\EOT\166\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\r\STX\NUL\ACK\DC2\EOT\166\ACK\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\r\STX\NUL\SOH\DC2\EOT\166\ACK\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\r\STX\NUL\ETX\DC2\EOT\166\ACK!\"\n\+    \O\n\+    \\EOT\EOT\r\STX\SOH\DC2\EOT\169\ACK\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\r\STX\SOH\EOT\DC2\EOT\169\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\r\STX\SOH\ACK\DC2\EOT\169\ACK\v\RS\n\+    \\r\n\+    \\ENQ\EOT\r\STX\SOH\SOH\DC2\EOT\169\ACK\US3\n\+    \\r\n\+    \\ENQ\EOT\r\STX\SOH\ETX\DC2\EOT\169\ACK69\n\+    \Z\n\+    \\ETX\EOT\r\ENQ\DC2\EOT\172\ACK\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\r\ENQ\NUL\DC2\EOT\172\ACK\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\r\ENQ\NUL\SOH\DC2\EOT\172\ACK\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\r\ENQ\NUL\STX\DC2\EOT\172\ACK\NAK\CAN\n\+    \\f\n\+    \\STX\EOT\SO\DC2\ACK\175\ACK\NUL\205\ACK\SOH\n\+    \\v\n\+    \\ETX\EOT\SO\SOH\DC2\EOT\175\ACK\b\DC3\n\+    \`\n\+    \\EOT\EOT\SO\STX\NUL\DC2\EOT\179\ACK\STX \SUBR Set this option to true to allow mapping different tag names to the same\n\+    \ value.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\NUL\EOT\DC2\EOT\179\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\NUL\ENQ\DC2\EOT\179\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\NUL\SOH\DC2\EOT\179\ACK\DLE\ESC\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\NUL\ETX\DC2\EOT\179\ACK\RS\US\n\+    \\229\SOH\n\+    \\EOT\EOT\SO\STX\SOH\DC2\EOT\185\ACK\STX1\SUB\214\SOH Is this enum deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for the enum, or it will be completely ignored; in the very least, this\n\+    \ is a formalization for deprecating enums.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\EOT\DC2\EOT\185\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\ENQ\DC2\EOT\185\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\SOH\DC2\EOT\185\ACK\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\ETX\DC2\EOT\185\ACK\GS\RS\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\b\DC2\EOT\185\ACK\US0\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\SOH\a\DC2\EOT\185\ACK*/\n\+    \\US\n\+    \\ETX\EOT\SO\t\DC2\EOT\187\ACK\STX\r\"\DC2 javanano_as_lite\n\+    \\n\+    \\f\n\+    \\EOT\EOT\SO\t\NUL\DC2\EOT\187\ACK\v\f\n\+    \\r\n\+    \\ENQ\EOT\SO\t\NUL\SOH\DC2\EOT\187\ACK\v\f\n\+    \\r\n\+    \\ENQ\EOT\SO\t\NUL\STX\DC2\EOT\187\ACK\v\f\n\+    \\200\STX\n\+    \\EOT\EOT\SO\STX\STX\DC2\EOT\195\ACK\STXO\SUB\185\STX Enable the legacy handling of JSON field name conflicts.  This lowercases\n\+    \ and strips underscored from the fields before comparison in proto3 only.\n\+    \ The new behavior takes `json_name` into account and applies to proto2 as\n\+    \ well.\n\+    \ TODO Remove this legacy behavior once downstream teams have\n\+    \ had time to migrate.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\STX\EOT\DC2\EOT\195\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\STX\ENQ\DC2\EOT\195\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\STX\SOH\DC2\EOT\195\ACK\DLE6\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\STX\ETX\DC2\EOT\195\ACK9:\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\STX\b\DC2\EOT\195\ACK;N\n\+    \\SO\n\+    \\ACK\EOT\SO\STX\STX\b\ETX\DC2\EOT\195\ACK<M\n\+    \=\n\+    \\EOT\EOT\SO\STX\ETX\DC2\EOT\198\ACK\STX#\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\ETX\EOT\DC2\EOT\198\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\ETX\ACK\DC2\EOT\198\ACK\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\ETX\SOH\DC2\EOT\198\ACK\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\ETX\ETX\DC2\EOT\198\ACK!\"\n\+    \O\n\+    \\EOT\EOT\SO\STX\EOT\DC2\EOT\201\ACK\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\EOT\EOT\DC2\EOT\201\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\EOT\ACK\DC2\EOT\201\ACK\v\RS\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\EOT\SOH\DC2\EOT\201\ACK\US3\n\+    \\r\n\+    \\ENQ\EOT\SO\STX\EOT\ETX\DC2\EOT\201\ACK69\n\+    \Z\n\+    \\ETX\EOT\SO\ENQ\DC2\EOT\204\ACK\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\SO\ENQ\NUL\DC2\EOT\204\ACK\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\SO\ENQ\NUL\SOH\DC2\EOT\204\ACK\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\SO\ENQ\NUL\STX\DC2\EOT\204\ACK\NAK\CAN\n\+    \\f\n\+    \\STX\EOT\SI\DC2\ACK\207\ACK\NUL\230\ACK\SOH\n\+    \\v\n\+    \\ETX\EOT\SI\SOH\DC2\EOT\207\ACK\b\CAN\n\+    \\247\SOH\n\+    \\EOT\EOT\SI\STX\NUL\DC2\EOT\212\ACK\STX1\SUB\232\SOH Is this enum value deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for the enum value, or it will be completely ignored; in the very least,\n\+    \ this is a formalization for deprecating enum values.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\EOT\DC2\EOT\212\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\ENQ\DC2\EOT\212\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\SOH\DC2\EOT\212\ACK\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\ETX\DC2\EOT\212\ACK\GS\RS\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\b\DC2\EOT\212\ACK\US0\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\NUL\a\DC2\EOT\212\ACK*/\n\+    \=\n\+    \\EOT\EOT\SI\STX\SOH\DC2\EOT\215\ACK\STX#\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\SOH\EOT\DC2\EOT\215\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\SOH\ACK\DC2\EOT\215\ACK\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\SOH\SOH\DC2\EOT\215\ACK\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\SOH\ETX\DC2\EOT\215\ACK!\"\n\+    \\174\SOH\n\+    \\EOT\EOT\SI\STX\STX\DC2\EOT\220\ACK\STX3\SUB\159\SOH Indicate that fields annotated with this enum value should not be printed\n\+    \ out when using debug formats, e.g. when the field contains sensitive\n\+    \ credentials.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\EOT\DC2\EOT\220\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\ENQ\DC2\EOT\220\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\SOH\DC2\EOT\220\ACK\DLE\FS\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\ETX\DC2\EOT\220\ACK\US \n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\b\DC2\EOT\220\ACK!2\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\STX\a\DC2\EOT\220\ACK,1\n\+    \H\n\+    \\EOT\EOT\SI\STX\ETX\DC2\EOT\223\ACK\STX;\SUB: Information about the support window of a feature value.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\ETX\EOT\DC2\EOT\223\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\ETX\ACK\DC2\EOT\223\ACK\v&\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\ETX\SOH\DC2\EOT\223\ACK'6\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\ETX\ETX\DC2\EOT\223\ACK9:\n\+    \O\n\+    \\EOT\EOT\SI\STX\EOT\DC2\EOT\226\ACK\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\EOT\EOT\DC2\EOT\226\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\EOT\ACK\DC2\EOT\226\ACK\v\RS\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\EOT\SOH\DC2\EOT\226\ACK\US3\n\+    \\r\n\+    \\ENQ\EOT\SI\STX\EOT\ETX\DC2\EOT\226\ACK69\n\+    \Z\n\+    \\ETX\EOT\SI\ENQ\DC2\EOT\229\ACK\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\SI\ENQ\NUL\DC2\EOT\229\ACK\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\SI\ENQ\NUL\SOH\DC2\EOT\229\ACK\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\SI\ENQ\NUL\STX\DC2\EOT\229\ACK\NAK\CAN\n\+    \\f\n\+    \\STX\EOT\DLE\DC2\ACK\232\ACK\NUL\253\ACK\SOH\n\+    \\v\n\+    \\ETX\EOT\DLE\SOH\DC2\EOT\232\ACK\b\SYN\n\+    \=\n\+    \\EOT\EOT\DLE\STX\NUL\DC2\EOT\235\ACK\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\NUL\EOT\DC2\EOT\235\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\NUL\ACK\DC2\EOT\235\ACK\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\NUL\SOH\DC2\EOT\235\ACK\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\NUL\ETX\DC2\EOT\235\ACK!#\n\+    \\217\ETX\n\+    \\EOT\EOT\DLE\STX\SOH\DC2\EOT\246\ACK\STX2\SUB\223\SOH Is this service deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for the service, or it will be completely ignored; in the very least,\n\+    \ this is a formalization for deprecating services.\n\+    \2\232\SOH Note:  Field numbers 1 through 32 are reserved for Google's internal RPC\n\+    \   framework.  We apologize for hoarding these numbers to ourselves, but\n\+    \   we were already using them long before we decided to release Protocol\n\+    \   Buffers.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\EOT\DC2\EOT\246\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\ENQ\DC2\EOT\246\ACK\v\SI\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\SOH\DC2\EOT\246\ACK\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\ETX\DC2\EOT\246\ACK\GS\US\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\b\DC2\EOT\246\ACK 1\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\SOH\a\DC2\EOT\246\ACK+0\n\+    \O\n\+    \\EOT\EOT\DLE\STX\STX\DC2\EOT\249\ACK\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\STX\EOT\DC2\EOT\249\ACK\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\STX\ACK\DC2\EOT\249\ACK\v\RS\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\STX\SOH\DC2\EOT\249\ACK\US3\n\+    \\r\n\+    \\ENQ\EOT\DLE\STX\STX\ETX\DC2\EOT\249\ACK69\n\+    \Z\n\+    \\ETX\EOT\DLE\ENQ\DC2\EOT\252\ACK\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\DLE\ENQ\NUL\DC2\EOT\252\ACK\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\DLE\ENQ\NUL\SOH\DC2\EOT\252\ACK\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\DLE\ENQ\NUL\STX\DC2\EOT\252\ACK\NAK\CAN\n\+    \\f\n\+    \\STX\EOT\DC1\DC2\ACK\255\ACK\NUL\159\a\SOH\n\+    \\v\n\+    \\ETX\EOT\DC1\SOH\DC2\EOT\255\ACK\b\NAK\n\+    \\214\ETX\n\+    \\EOT\EOT\DC1\STX\NUL\DC2\EOT\138\a\STX2\SUB\220\SOH Is this method deprecated?\n\+    \ Depending on the target platform, this can emit Deprecated annotations\n\+    \ for the method, or it will be completely ignored; in the very least,\n\+    \ this is a formalization for deprecating methods.\n\+    \2\232\SOH Note:  Field numbers 1 through 32 are reserved for Google's internal RPC\n\+    \   framework.  We apologize for hoarding these numbers to ourselves, but\n\+    \   we were already using them long before we decided to release Protocol\n\+    \   Buffers.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\EOT\DC2\EOT\138\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\ENQ\DC2\EOT\138\a\v\SI\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\SOH\DC2\EOT\138\a\DLE\SUB\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\ETX\DC2\EOT\138\a\GS\US\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\b\DC2\EOT\138\a 1\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\NUL\a\DC2\EOT\138\a+0\n\+    \\240\SOH\n\+    \\EOT\EOT\DC1\EOT\NUL\DC2\ACK\143\a\STX\147\a\ETX\SUB\223\SOH Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n\+    \ or neither? HTTP based RPC implementation may choose GET verb for safe\n\+    \ methods, and PUT verb for idempotent methods instead of the default POST.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\EOT\NUL\SOH\DC2\EOT\143\a\a\ETB\n\+    \\SO\n\+    \\ACK\EOT\DC1\EOT\NUL\STX\NUL\DC2\EOT\144\a\EOT\FS\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\NUL\SOH\DC2\EOT\144\a\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\NUL\STX\DC2\EOT\144\a\SUB\ESC\n\+    \$\n\+    \\ACK\EOT\DC1\EOT\NUL\STX\SOH\DC2\EOT\145\a\EOT\CAN\"\DC4 implies idempotent\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\SOH\SOH\DC2\EOT\145\a\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\SOH\STX\DC2\EOT\145\a\SYN\ETB\n\+    \7\n\+    \\ACK\EOT\DC1\EOT\NUL\STX\STX\DC2\EOT\146\a\EOT\DC3\"' idempotent, but may have side effects\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\STX\SOH\DC2\EOT\146\a\EOT\SO\n\+    \\SI\n\+    \\a\EOT\DC1\EOT\NUL\STX\STX\STX\DC2\EOT\146\a\DC1\DC2\n\+    \\SO\n\+    \\EOT\EOT\DC1\STX\SOH\DC2\ACK\148\a\STX\149\a&\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\EOT\DC2\EOT\148\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\ACK\DC2\EOT\148\a\v\ESC\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\SOH\DC2\EOT\148\a\FS-\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\ETX\DC2\EOT\148\a02\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\b\DC2\EOT\149\a\ACK%\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\SOH\a\DC2\EOT\149\a\DC1$\n\+    \=\n\+    \\EOT\EOT\DC1\STX\STX\DC2\EOT\152\a\STX$\SUB/ Any features defined in the specific edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\STX\EOT\DC2\EOT\152\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\STX\ACK\DC2\EOT\152\a\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\STX\SOH\DC2\EOT\152\a\SYN\RS\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\STX\ETX\DC2\EOT\152\a!#\n\+    \O\n\+    \\EOT\EOT\DC1\STX\ETX\DC2\EOT\155\a\STX:\SUBA The parser stores options it doesn't recognize here. See above.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\ETX\EOT\DC2\EOT\155\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\ETX\ACK\DC2\EOT\155\a\v\RS\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\ETX\SOH\DC2\EOT\155\a\US3\n\+    \\r\n\+    \\ENQ\EOT\DC1\STX\ETX\ETX\DC2\EOT\155\a69\n\+    \Z\n\+    \\ETX\EOT\DC1\ENQ\DC2\EOT\158\a\STX\EM\SUBM Clients can define custom options in extensions of this message. See above.\n\+    \\n\+    \\f\n\+    \\EOT\EOT\DC1\ENQ\NUL\DC2\EOT\158\a\r\CAN\n\+    \\r\n\+    \\ENQ\EOT\DC1\ENQ\NUL\SOH\DC2\EOT\158\a\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC1\ENQ\NUL\STX\DC2\EOT\158\a\NAK\CAN\n\+    \\139\ETX\n\+    \\STX\EOT\DC2\DC2\ACK\167\a\NUL\187\a\SOH\SUB\252\STX A message representing a option the parser does not recognize. This only\n\+    \ appears in options protos created by the compiler::Parser class.\n\+    \ DescriptorPool resolves these when building Descriptor objects. Therefore,\n\+    \ options protos in descriptor objects (e.g. returned by Descriptor::options(),\n\+    \ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n\+    \ in them.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\DC2\SOH\DC2\EOT\167\a\b\ESC\n\+    \\203\STX\n\+    \\EOT\EOT\DC2\ETX\NUL\DC2\ACK\173\a\STX\176\a\ETX\SUB\186\STX The name of the uninterpreted option.  Each string represents a segment in\n\+    \ a dot-separated name.  is_extension is true iff a segment represents an\n\+    \ extension (denoted with parentheses in options specs in .proto files).\n\+    \ E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n\+    \ \"foo.(bar.baz).moo\".\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\ETX\NUL\SOH\DC2\EOT\173\a\n\+    \\DC2\n\+    \\SO\n\+    \\ACK\EOT\DC2\ETX\NUL\STX\NUL\DC2\EOT\174\a\EOT\"\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\NUL\EOT\DC2\EOT\174\a\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\NUL\ENQ\DC2\EOT\174\a\r\DC3\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\NUL\SOH\DC2\EOT\174\a\DC4\GS\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\NUL\ETX\DC2\EOT\174\a !\n\+    \\SO\n\+    \\ACK\EOT\DC2\ETX\NUL\STX\SOH\DC2\EOT\175\a\EOT#\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\SOH\EOT\DC2\EOT\175\a\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\SOH\ENQ\DC2\EOT\175\a\r\DC1\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\SOH\SOH\DC2\EOT\175\a\DC2\RS\n\+    \\SI\n\+    \\a\EOT\DC2\ETX\NUL\STX\SOH\ETX\DC2\EOT\175\a!\"\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\NUL\DC2\EOT\177\a\STX\GS\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\NUL\EOT\DC2\EOT\177\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\NUL\ACK\DC2\EOT\177\a\v\DC3\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\NUL\SOH\DC2\EOT\177\a\DC4\CAN\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\NUL\ETX\DC2\EOT\177\a\ESC\FS\n\+    \\156\SOH\n\+    \\EOT\EOT\DC2\STX\SOH\DC2\EOT\181\a\STX'\SUB\141\SOH The value of the uninterpreted option, in whatever type the tokenizer\n\+    \ identified it as during parsing. Exactly one of these should be set.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\SOH\EOT\DC2\EOT\181\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\SOH\ENQ\DC2\EOT\181\a\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\SOH\SOH\DC2\EOT\181\a\DC2\"\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\SOH\ETX\DC2\EOT\181\a%&\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\STX\DC2\EOT\182\a\STX)\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\STX\EOT\DC2\EOT\182\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\STX\ENQ\DC2\EOT\182\a\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\STX\SOH\DC2\EOT\182\a\DC2$\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\STX\ETX\DC2\EOT\182\a'(\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\ETX\DC2\EOT\183\a\STX(\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ETX\EOT\DC2\EOT\183\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ETX\ENQ\DC2\EOT\183\a\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ETX\SOH\DC2\EOT\183\a\DC1#\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ETX\ETX\DC2\EOT\183\a&'\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\EOT\DC2\EOT\184\a\STX#\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\EOT\EOT\DC2\EOT\184\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\EOT\ENQ\DC2\EOT\184\a\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\EOT\SOH\DC2\EOT\184\a\DC2\RS\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\EOT\ETX\DC2\EOT\184\a!\"\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\ENQ\DC2\EOT\185\a\STX\"\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ENQ\EOT\DC2\EOT\185\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ENQ\ENQ\DC2\EOT\185\a\v\DLE\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ENQ\SOH\DC2\EOT\185\a\DC1\GS\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ENQ\ETX\DC2\EOT\185\a !\n\+    \\f\n\+    \\EOT\EOT\DC2\STX\ACK\DC2\EOT\186\a\STX&\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ACK\EOT\DC2\EOT\186\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ACK\ENQ\DC2\EOT\186\a\v\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ACK\SOH\DC2\EOT\186\a\DC2!\n\+    \\r\n\+    \\ENQ\EOT\DC2\STX\ACK\ETX\DC2\EOT\186\a$%\n\+    \\219\ETX\n\+    \\STX\EOT\DC3\DC2\ACK\198\a\NUL\193\b\SOH\SUB\251\STX TODO Enums in C++ gencode (and potentially other languages) are\n\+    \ not well scoped.  This means that each of the feature enums below can clash\n\+    \ with each other.  The short names we've chosen maximize call-site\n\+    \ readability, but leave us very open to this scenario.  A future feature will\n\+    \ be designed and implemented to handle this, hopefully before we ever hit a\n\+    \ conflict here.\n\+    \2O ===================================================================\n\+    \ Features\n\+    \\n\+    \\v\n\+    \\ETX\EOT\DC3\SOH\DC2\EOT\198\a\b\DC2\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\NUL\DC2\ACK\199\a\STX\204\a\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\NUL\SOH\DC2\EOT\199\a\a\DC4\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\NUL\STX\NUL\DC2\EOT\200\a\EOT\US\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\NUL\SOH\DC2\EOT\200\a\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\NUL\STX\DC2\EOT\200\a\GS\RS\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\NUL\STX\SOH\DC2\EOT\201\a\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\SOH\SOH\DC2\EOT\201\a\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\SOH\STX\DC2\EOT\201\a\SI\DLE\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\NUL\STX\STX\DC2\EOT\202\a\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\STX\SOH\DC2\EOT\202\a\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\STX\STX\DC2\EOT\202\a\SI\DLE\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\NUL\STX\ETX\DC2\EOT\203\a\EOT\CAN\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\ETX\SOH\DC2\EOT\203\a\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\NUL\STX\ETX\STX\DC2\EOT\203\a\SYN\ETB\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\NUL\DC2\ACK\205\a\STX\215\a\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\NUL\EOT\DC2\EOT\205\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\NUL\ACK\DC2\EOT\205\a\v\CAN\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\NUL\SOH\DC2\EOT\205\a\EM'\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\NUL\ETX\DC2\EOT\205\a*+\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\NUL\b\DC2\ACK\205\a,\215\a\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\NUL\b\DC1\DC2\EOT\206\a\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\NUL\b\DC3\NUL\DC2\EOT\207\a\EOT\US\n\+    \\SI\n\+    \\a\EOT\DC3\STX\NUL\b\DC3\SOH\DC2\EOT\208\a\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\NUL\b\SYN\DC2\ACK\209\a\EOT\211\a\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\NUL\b\DC4\NUL\DC2\EOT\212\a\EOTE\n\+    \\SI\n\+    \\a\EOT\DC3\STX\NUL\b\DC4\SOH\DC2\EOT\213\a\EOTE\n\+    \\SI\n\+    \\a\EOT\DC3\STX\NUL\b\DC4\STX\DC2\EOT\214\a\EOTC\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\SOH\DC2\ACK\217\a\STX\221\a\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\SOH\SOH\DC2\EOT\217\a\a\SI\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\SOH\STX\NUL\DC2\EOT\218\a\EOT\SUB\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\NUL\SOH\DC2\EOT\218\a\EOT\NAK\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\NUL\STX\DC2\EOT\218\a\CAN\EM\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\SOH\STX\SOH\DC2\EOT\219\a\EOT\r\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\SOH\SOH\DC2\EOT\219\a\EOT\b\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\SOH\STX\DC2\EOT\219\a\v\f\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\SOH\STX\STX\DC2\EOT\220\a\EOT\SI\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\STX\SOH\DC2\EOT\220\a\EOT\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\SOH\STX\STX\STX\DC2\EOT\220\a\r\SO\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\SOH\DC2\ACK\222\a\STX\231\a\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\SOH\EOT\DC2\EOT\222\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\SOH\ACK\DC2\EOT\222\a\v\DC3\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\SOH\SOH\DC2\EOT\222\a\DC4\GS\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\SOH\ETX\DC2\EOT\222\a !\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\SOH\b\DC2\ACK\222\a\"\231\a\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\SOH\b\DC1\DC2\EOT\223\a\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\SOH\b\DC3\NUL\DC2\EOT\224\a\EOT\RS\n\+    \\SI\n\+    \\a\EOT\DC3\STX\SOH\b\DC3\SOH\DC2\EOT\225\a\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\SOH\b\SYN\DC2\ACK\226\a\EOT\228\a\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\SOH\b\DC4\NUL\DC2\EOT\229\a\EOTC\n\+    \\SI\n\+    \\a\EOT\DC3\STX\SOH\b\DC4\SOH\DC2\EOT\230\a\EOTA\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\STX\DC2\ACK\233\a\STX\237\a\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\STX\SOH\DC2\EOT\233\a\a\FS\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\STX\STX\NUL\DC2\EOT\234\a\EOT(\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\NUL\SOH\DC2\EOT\234\a\EOT#\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\NUL\STX\DC2\EOT\234\a&'\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\STX\STX\SOH\DC2\EOT\235\a\EOT\SI\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\SOH\SOH\DC2\EOT\235\a\EOT\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\SOH\STX\DC2\EOT\235\a\r\SO\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\STX\STX\STX\DC2\EOT\236\a\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\STX\SOH\DC2\EOT\236\a\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\STX\STX\STX\STX\DC2\EOT\236\a\SI\DLE\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\STX\DC2\ACK\238\a\STX\247\a\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\STX\EOT\DC2\EOT\238\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\STX\ACK\DC2\EOT\238\a\v \n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\STX\SOH\DC2\EOT\238\a!8\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\STX\ETX\DC2\EOT\238\a;<\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\STX\b\DC2\ACK\238\a=\247\a\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\STX\b\DC1\DC2\EOT\239\a\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\STX\b\DC3\NUL\DC2\EOT\240\a\EOT\US\n\+    \\SI\n\+    \\a\EOT\DC3\STX\STX\b\DC3\SOH\DC2\EOT\241\a\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\STX\b\SYN\DC2\ACK\242\a\EOT\244\a\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\STX\b\DC4\NUL\DC2\EOT\245\a\EOTE\n\+    \\SI\n\+    \\a\EOT\DC3\STX\STX\b\DC4\SOH\DC2\EOT\246\a\EOTC\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\ETX\DC2\ACK\249\a\STX\254\a\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\ETX\SOH\DC2\EOT\249\a\a\NAK\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ETX\STX\NUL\DC2\EOT\250\a\EOT \n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\NUL\SOH\DC2\EOT\250\a\EOT\ESC\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\NUL\STX\DC2\EOT\250\a\RS\US\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ETX\STX\SOH\DC2\EOT\251\a\EOT\SI\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\SOH\SOH\DC2\EOT\251\a\EOT\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\SOH\STX\DC2\EOT\251\a\r\SO\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ETX\STX\STX\DC2\EOT\252\a\EOT\r\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\STX\SOH\DC2\EOT\252\a\EOT\b\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\STX\STX\STX\DC2\EOT\252\a\v\f\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\ETX\EOT\DC2\EOT\253\a\EOT\SI\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ETX\EOT\NUL\DC2\EOT\253\a\r\SO\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\EOT\NUL\SOH\DC2\EOT\253\a\r\SO\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ETX\EOT\NUL\STX\DC2\EOT\253\a\r\SO\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\ETX\DC2\ACK\255\a\STX\136\b\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ETX\EOT\DC2\EOT\255\a\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ETX\ACK\DC2\EOT\255\a\v\EM\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ETX\SOH\DC2\EOT\255\a\SUB)\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ETX\ETX\DC2\EOT\255\a,-\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\ETX\b\DC2\ACK\255\a.\136\b\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\ETX\b\DC1\DC2\EOT\128\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ETX\b\DC3\NUL\DC2\EOT\129\b\EOT\US\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ETX\b\DC3\SOH\DC2\EOT\130\b\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\ETX\b\SYN\DC2\ACK\131\b\EOT\133\b\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ETX\b\DC4\NUL\DC2\EOT\134\b\EOTA\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ETX\b\DC4\SOH\DC2\EOT\135\b\EOTC\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\EOT\DC2\ACK\138\b\STX\142\b\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\EOT\SOH\DC2\EOT\138\b\a\SYN\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\EOT\STX\NUL\DC2\EOT\139\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\NUL\SOH\DC2\EOT\139\b\EOT\FS\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\NUL\STX\DC2\EOT\139\b\US \n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\EOT\STX\SOH\DC2\EOT\140\b\EOT\CAN\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\SOH\SOH\DC2\EOT\140\b\EOT\DC3\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\SOH\STX\DC2\EOT\140\b\SYN\ETB\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\EOT\STX\STX\DC2\EOT\141\b\EOT\DC2\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\STX\SOH\DC2\EOT\141\b\EOT\r\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\EOT\STX\STX\STX\DC2\EOT\141\b\DLE\DC1\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\EOT\DC2\ACK\143\b\STX\151\b\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\EOT\EOT\DC2\EOT\143\b\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\EOT\ACK\DC2\EOT\143\b\v\SUB\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\EOT\SOH\DC2\EOT\143\b\ESC+\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\EOT\ETX\DC2\EOT\143\b./\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\EOT\b\DC2\ACK\143\b0\151\b\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\EOT\b\DC1\DC2\EOT\144\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\EOT\b\DC3\NUL\DC2\EOT\145\b\EOT\US\n\+    \\SI\n\+    \\a\EOT\DC3\STX\EOT\b\DC3\SOH\DC2\EOT\146\b\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\EOT\b\SYN\DC2\ACK\147\b\EOT\149\b\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\EOT\b\DC4\NUL\DC2\EOT\150\b\EOTL\n\+    \\SO\n\+    \\EOT\EOT\DC3\EOT\ENQ\DC2\ACK\153\b\STX\157\b\ETX\n\+    \\r\n\+    \\ENQ\EOT\DC3\EOT\ENQ\SOH\DC2\EOT\153\b\a\DC1\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ENQ\STX\NUL\DC2\EOT\154\b\EOT\FS\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\NUL\SOH\DC2\EOT\154\b\EOT\ETB\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\NUL\STX\DC2\EOT\154\b\SUB\ESC\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ENQ\STX\SOH\DC2\EOT\155\b\EOT\SO\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\SOH\SOH\DC2\EOT\155\b\EOT\t\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\SOH\STX\DC2\EOT\155\b\f\r\n\+    \\SO\n\+    \\ACK\EOT\DC3\EOT\ENQ\STX\STX\DC2\EOT\156\b\EOT\ESC\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\STX\SOH\DC2\EOT\156\b\EOT\SYN\n\+    \\SI\n\+    \\a\EOT\DC3\EOT\ENQ\STX\STX\STX\DC2\EOT\156\b\EM\SUB\n\+    \\SO\n\+    \\EOT\EOT\DC3\STX\ENQ\DC2\ACK\158\b\STX\168\b\EOT\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ENQ\EOT\DC2\EOT\158\b\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ENQ\ACK\DC2\EOT\158\b\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ENQ\SOH\DC2\EOT\158\b\SYN!\n\+    \\r\n\+    \\ENQ\EOT\DC3\STX\ENQ\ETX\DC2\EOT\158\b$%\n\+    \\SI\n\+    \\ENQ\EOT\DC3\STX\ENQ\b\DC2\ACK\158\b&\168\b\ETX\n\+    \\SO\n\+    \\ACK\EOT\DC3\STX\ENQ\b\DC1\DC2\EOT\159\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ENQ\b\DC3\NUL\DC2\EOT\160\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ENQ\b\DC3\SOH\DC2\EOT\161\b\EOT\RS\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ENQ\b\DC3\STX\DC2\EOT\162\b\EOT\RS\n\+    \\DLE\n\+    \\ACK\EOT\DC3\STX\ENQ\b\SYN\DC2\ACK\163\b\EOT\165\b\ENQ\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ENQ\b\DC4\NUL\DC2\EOT\166\b\EOTO\n\+    \\SI\n\+    \\a\EOT\DC3\STX\ENQ\b\DC4\SOH\DC2\EOT\167\b\EOTB\n\+    \\v\n\+    \\ETX\EOT\DC3\t\DC2\EOT\170\b\STX\SI\n\+    \\f\n\+    \\EOT\EOT\DC3\t\NUL\DC2\EOT\170\b\v\SO\n\+    \\r\n\+    \\ENQ\EOT\DC3\t\NUL\SOH\DC2\EOT\170\b\v\SO\n\+    \\r\n\+    \\ENQ\EOT\DC3\t\NUL\STX\DC2\EOT\170\b\v\SO\n\+    \\r\n\+    \\ETX\EOT\DC3\ENQ\DC2\ACK\172\b\STX\189\b\EOT\n\+    \\f\n\+    \\EOT\EOT\DC3\ENQ\NUL\DC2\EOT\172\b\r\EM\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\NUL\SOH\DC2\EOT\172\b\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\NUL\STX\DC2\EOT\172\b\NAK\EM\n\+    \#\n\+    \\ETX\EOT\DC3\ENQ\DC2\EOT\191\b\STX\SUB\"\SYN For internal testing\n\+    \\n\+    \\f\n\+    \\EOT\EOT\DC3\ENQ\SOH\DC2\EOT\191\b\r\EM\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\SOH\SOH\DC2\EOT\191\b\r\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\SOH\STX\DC2\EOT\191\b\NAK\EM\n\+    \:\n\+    \\ETX\EOT\DC3\ENQ\DC2\EOT\192\b\STX\DC3\"- for https://github.com/bufbuild/protobuf-es\n\+    \\n\+    \\f\n\+    \\EOT\EOT\DC3\ENQ\STX\DC2\EOT\192\b\r\DC2\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\STX\SOH\DC2\EOT\192\b\r\DC2\n\+    \\r\n\+    \\ENQ\EOT\DC3\ENQ\STX\STX\DC2\EOT\192\b\r\DC2\n\+    \\172\STX\n\+    \\STX\EOT\DC4\DC2\ACK\199\b\NUL\225\b\SOH\SUB\157\STX A compiled specification for the defaults of a set of features.  These\n\+    \ messages are generated from FeatureSet extensions and can be used to seed\n\+    \ feature resolution. The resolution with this object becomes a simple search\n\+    \ for the closest matching edition, followed by proto merges.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\DC4\SOH\DC2\EOT\199\b\b\SUB\n\+    \\176\STX\n\+    \\EOT\EOT\DC4\ETX\NUL\DC2\ACK\204\b\STX\215\b\ETX\SUB\159\STX A map from every known edition with a unique set of defaults to its\n\+    \ defaults. Not all editions may be contained here.  For a given edition,\n\+    \ the defaults at the closest matching edition ordered at or before it should\n\+    \ be used.  This field must be in strict ascending order by edition.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\ETX\NUL\SOH\DC2\EOT\204\b\n\+    \\"\n\+    \\SO\n\+    \\ACK\EOT\DC4\ETX\NUL\STX\NUL\DC2\EOT\205\b\EOT!\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\NUL\EOT\DC2\EOT\205\b\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\NUL\ACK\DC2\EOT\205\b\r\DC4\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\NUL\SOH\DC2\EOT\205\b\NAK\FS\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\NUL\ETX\DC2\EOT\205\b\US \n\+    \N\n\+    \\ACK\EOT\DC4\ETX\NUL\STX\SOH\DC2\EOT\208\b\EOT1\SUB> Defaults of features that can be overridden in this edition.\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\SOH\EOT\DC2\EOT\208\b\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\SOH\ACK\DC2\EOT\208\b\r\ETB\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\SOH\SOH\DC2\EOT\208\b\CAN,\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\SOH\ETX\DC2\EOT\208\b/0\n\+    \P\n\+    \\ACK\EOT\DC4\ETX\NUL\STX\STX\DC2\EOT\211\b\EOT+\SUB@ Defaults of features that can't be overridden in this edition.\n\+    \\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\STX\EOT\DC2\EOT\211\b\EOT\f\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\STX\ACK\DC2\EOT\211\b\r\ETB\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\STX\SOH\DC2\EOT\211\b\CAN&\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\STX\STX\ETX\DC2\EOT\211\b)*\n\+    \\r\n\+    \\ENQ\EOT\DC4\ETX\NUL\t\DC2\EOT\213\b\EOT\DC2\n\+    \\SO\n\+    \\ACK\EOT\DC4\ETX\NUL\t\NUL\DC2\EOT\213\b\r\SO\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\t\NUL\SOH\DC2\EOT\213\b\r\SO\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\t\NUL\STX\DC2\EOT\213\b\r\SO\n\+    \\SO\n\+    \\ACK\EOT\DC4\ETX\NUL\t\SOH\DC2\EOT\213\b\DLE\DC1\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\t\SOH\SOH\DC2\EOT\213\b\DLE\DC1\n\+    \\SI\n\+    \\a\EOT\DC4\ETX\NUL\t\SOH\STX\DC2\EOT\213\b\DLE\DC1\n\+    \\r\n\+    \\ENQ\EOT\DC4\ETX\NUL\n\+    \\DC2\EOT\214\b\EOT\CAN\n\+    \\SO\n\+    \\ACK\EOT\DC4\ETX\NUL\n\+    \\NUL\DC2\EOT\214\b\r\ETB\n\+    \\f\n\+    \\EOT\EOT\DC4\STX\NUL\DC2\EOT\216\b\STX1\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\NUL\EOT\DC2\EOT\216\b\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\NUL\ACK\DC2\EOT\216\b\v#\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\NUL\SOH\DC2\EOT\216\b$,\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\NUL\ETX\DC2\EOT\216\b/0\n\+    \\130\SOH\n\+    \\EOT\EOT\DC4\STX\SOH\DC2\EOT\220\b\STX'\SUBt The minimum supported edition (inclusive) when this was constructed.\n\+    \ Editions before this will not have defaults.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\SOH\EOT\DC2\EOT\220\b\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\SOH\ACK\DC2\EOT\220\b\v\DC2\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\SOH\SOH\DC2\EOT\220\b\DC3\"\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\SOH\ETX\DC2\EOT\220\b%&\n\+    \\134\SOH\n\+    \\EOT\EOT\DC4\STX\STX\DC2\EOT\224\b\STX'\SUBx The maximum known edition (inclusive) when this was constructed. Editions\n\+    \ after this will not have reliable defaults.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\STX\EOT\DC2\EOT\224\b\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\STX\ACK\DC2\EOT\224\b\v\DC2\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\STX\SOH\DC2\EOT\224\b\DC3\"\n\+    \\r\n\+    \\ENQ\EOT\DC4\STX\STX\ETX\DC2\EOT\224\b%&\n\+    \\218\SOH\n\+    \\STX\EOT\NAK\DC2\ACK\232\b\NUL\233\t\SOH\SUBj Encapsulates information about the original source file from which a\n\+    \ FileDescriptorProto was generated.\n\+    \2` ===================================================================\n\+    \ Optional source code info\n\+    \\n\+    \\v\n\+    \\ETX\EOT\NAK\SOH\DC2\EOT\232\b\b\SYN\n\+    \\130\DC1\n\+    \\EOT\EOT\NAK\STX\NUL\DC2\EOT\148\t\STX!\SUB\243\DLE A Location identifies a piece of source code in a .proto file which\n\+    \ corresponds to a particular definition.  This information is intended\n\+    \ to be useful to IDEs, code indexers, documentation generators, and similar\n\+    \ tools.\n\+    \\n\+    \ For example, say we have a file like:\n\+    \   message Foo {\n\+    \     optional string foo = 1;\n\+    \   }\n\+    \ Let's look at just the field definition:\n\+    \   optional string foo = 1;\n\+    \   ^       ^^     ^^  ^  ^^^\n\+    \   a       bc     de  f  ghi\n\+    \ We have the following locations:\n\+    \   span   path               represents\n\+    \   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.\n\+    \   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).\n\+    \   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).\n\+    \   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).\n\+    \   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).\n\+    \\n\+    \ Notes:\n\+    \ - A location may refer to a repeated field itself (i.e. not to any\n\+    \   particular index within it).  This is used whenever a set of elements are\n\+    \   logically enclosed in a single code segment.  For example, an entire\n\+    \   extend block (possibly containing multiple extension definitions) will\n\+    \   have an outer location whose path refers to the \"extensions\" repeated\n\+    \   field without an index.\n\+    \ - Multiple locations may have the same path.  This happens when a single\n\+    \   logical declaration is spread out across multiple places.  The most\n\+    \   obvious example is the \"extend\" block again -- there may be multiple\n\+    \   extend blocks in the same scope, each of which will have the same path.\n\+    \ - A location's span is not always a subset of its parent's span.  For\n\+    \   example, the \"extendee\" of an extension declaration appears at the\n\+    \   beginning of the \"extend\" block and is shared by all extensions within\n\+    \   the block.\n\+    \ - Just because a location's span is a subset of some other location's span\n\+    \   does not mean that it is a descendant.  For example, a \"group\" defines\n\+    \   both a type and a field in a single declaration.  Thus, the locations\n\+    \   corresponding to the type and field and their components will overlap.\n\+    \ - Code which tries to interpret locations should probably be designed to\n\+    \   ignore those that it doesn't understand, as more types of locations could\n\+    \   be recorded in the future.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\NAK\STX\NUL\EOT\DC2\EOT\148\t\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\NAK\STX\NUL\ACK\DC2\EOT\148\t\v\DC3\n\+    \\r\n\+    \\ENQ\EOT\NAK\STX\NUL\SOH\DC2\EOT\148\t\DC4\FS\n\+    \\r\n\+    \\ENQ\EOT\NAK\STX\NUL\ETX\DC2\EOT\148\t\US \n\+    \\SO\n\+    \\EOT\EOT\NAK\ETX\NUL\DC2\ACK\149\t\STX\232\t\ETX\n\+    \\r\n\+    \\ENQ\EOT\NAK\ETX\NUL\SOH\DC2\EOT\149\t\n\+    \\DC2\n\+    \\138\a\n\+    \\ACK\EOT\NAK\ETX\NUL\STX\NUL\DC2\EOT\173\t\EOT,\SUB\249\ACK Identifies which part of the FileDescriptorProto was defined at this\n\+    \ location.\n\+    \\n\+    \ Each element is a field number or an index.  They form a path from\n\+    \ the root FileDescriptorProto to the place where the definition appears.\n\+    \ For example, this path:\n\+    \   [ 4, 3, 2, 7, 1 ]\n\+    \ refers to:\n\+    \   file.message_type(3)  // 4, 3\n\+    \       .field(7)         // 2, 7\n\+    \       .name()           // 1\n\+    \ This is because FileDescriptorProto.message_type has field number 4:\n\+    \   repeated DescriptorProto message_type = 4;\n\+    \ and DescriptorProto.field has field number 2:\n\+    \   repeated FieldDescriptorProto field = 2;\n\+    \ and FieldDescriptorProto.name has field number 1:\n\+    \   optional string name = 1;\n\+    \\n\+    \ Thus, the above path gives the location of a field name.  If we removed\n\+    \ the last element:\n\+    \   [ 4, 3, 2, 7 ]\n\+    \ this path refers to the whole field declaration (from the beginning\n\+    \ of the label to the terminating semicolon).\n\+    \\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\NUL\EOT\DC2\EOT\173\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\NUL\ENQ\DC2\EOT\173\t\r\DC2\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\NUL\SOH\DC2\EOT\173\t\DC3\ETB\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\NUL\ETX\DC2\EOT\173\t\SUB\ESC\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\NUL\b\DC2\EOT\173\t\FS+\n\+    \\DLE\n\+    \\b\EOT\NAK\ETX\NUL\STX\NUL\b\STX\DC2\EOT\173\t\GS*\n\+    \\210\STX\n\+    \\ACK\EOT\NAK\ETX\NUL\STX\SOH\DC2\EOT\180\t\EOT,\SUB\193\STX Always has exactly three or four elements: start line, start column,\n\+    \ end line (optional, otherwise assumed same as start line), end column.\n\+    \ These are packed into a single field for efficiency.  Note that line\n\+    \ and column numbers are zero-based -- typically you will want to add\n\+    \ 1 to each before displaying to a user.\n\+    \\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\SOH\EOT\DC2\EOT\180\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\SOH\ENQ\DC2\EOT\180\t\r\DC2\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\SOH\SOH\DC2\EOT\180\t\DC3\ETB\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\SOH\ETX\DC2\EOT\180\t\SUB\ESC\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\SOH\b\DC2\EOT\180\t\FS+\n\+    \\DLE\n\+    \\b\EOT\NAK\ETX\NUL\STX\SOH\b\STX\DC2\EOT\180\t\GS*\n\+    \\165\f\n\+    \\ACK\EOT\NAK\ETX\NUL\STX\STX\DC2\EOT\229\t\EOT)\SUB\148\f If this SourceCodeInfo represents a complete declaration, these are any\n\+    \ comments appearing before and after the declaration which appear to be\n\+    \ attached to the declaration.\n\+    \\n\+    \ A series of line comments appearing on consecutive lines, with no other\n\+    \ tokens appearing on those lines, will be treated as a single comment.\n\+    \\n\+    \ leading_detached_comments will keep paragraphs of comments that appear\n\+    \ before (but not connected to) the current element. Each paragraph,\n\+    \ separated by empty lines, will be one comment element in the repeated\n\+    \ field.\n\+    \\n\+    \ Only the comment content is provided; comment markers (e.g. //) are\n\+    \ stripped out.  For block comments, leading whitespace and an asterisk\n\+    \ will be stripped from the beginning of each line other than the first.\n\+    \ Newlines are included in the output.\n\+    \\n\+    \ Examples:\n\+    \\n\+    \   optional int32 foo = 1;  // Comment attached to foo.\n\+    \   // Comment attached to bar.\n\+    \   optional int32 bar = 2;\n\+    \\n\+    \   optional string baz = 3;\n\+    \   // Comment attached to baz.\n\+    \   // Another line attached to baz.\n\+    \\n\+    \   // Comment attached to moo.\n\+    \   //\n\+    \   // Another line attached to moo.\n\+    \   optional double moo = 4;\n\+    \\n\+    \   // Detached comment for corge. This is not leading or trailing comments\n\+    \   // to moo or corge because there are blank lines separating it from\n\+    \   // both.\n\+    \\n\+    \   // Detached comment for corge paragraph 2.\n\+    \\n\+    \   optional string corge = 5;\n\+    \   /* Block comment attached\n\+    \    * to corge.  Leading asterisks\n\+    \    * will be removed. */\n\+    \   /* Block comment attached to\n\+    \    * grault. */\n\+    \   optional int32 grault = 6;\n\+    \\n\+    \   // ignored detached comments.\n\+    \\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\STX\EOT\DC2\EOT\229\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\STX\ENQ\DC2\EOT\229\t\r\DC3\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\STX\SOH\DC2\EOT\229\t\DC4$\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\STX\ETX\DC2\EOT\229\t'(\n\+    \\SO\n\+    \\ACK\EOT\NAK\ETX\NUL\STX\ETX\DC2\EOT\230\t\EOT*\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\ETX\EOT\DC2\EOT\230\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\ETX\ENQ\DC2\EOT\230\t\r\DC3\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\ETX\SOH\DC2\EOT\230\t\DC4%\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\ETX\ETX\DC2\EOT\230\t()\n\+    \\SO\n\+    \\ACK\EOT\NAK\ETX\NUL\STX\EOT\DC2\EOT\231\t\EOT2\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\EOT\EOT\DC2\EOT\231\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\EOT\ENQ\DC2\EOT\231\t\r\DC3\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\EOT\SOH\DC2\EOT\231\t\DC4-\n\+    \\SI\n\+    \\a\EOT\NAK\ETX\NUL\STX\EOT\ETX\DC2\EOT\231\t01\n\+    \\238\SOH\n\+    \\STX\EOT\SYN\DC2\ACK\238\t\NUL\143\n\+    \\SOH\SUB\223\SOH Describes the relationship between generated code and its original source\n\+    \ file. A GeneratedCodeInfo message is associated with only one generated\n\+    \ source file, but may contain references to different source .proto files.\n\+    \\n\+    \\v\n\+    \\ETX\EOT\SYN\SOH\DC2\EOT\238\t\b\EM\n\+    \x\n\+    \\EOT\EOT\SYN\STX\NUL\DC2\EOT\241\t\STX%\SUBj An Annotation connects some span of text in generated code to an element\n\+    \ of its generating .proto file.\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SYN\STX\NUL\EOT\DC2\EOT\241\t\STX\n\+    \\n\+    \\r\n\+    \\ENQ\EOT\SYN\STX\NUL\ACK\DC2\EOT\241\t\v\NAK\n\+    \\r\n\+    \\ENQ\EOT\SYN\STX\NUL\SOH\DC2\EOT\241\t\SYN \n\+    \\r\n\+    \\ENQ\EOT\SYN\STX\NUL\ETX\DC2\EOT\241\t#$\n\+    \\SO\n\+    \\EOT\EOT\SYN\ETX\NUL\DC2\ACK\242\t\STX\142\n\+    \\ETX\n\+    \\r\n\+    \\ENQ\EOT\SYN\ETX\NUL\SOH\DC2\EOT\242\t\n\+    \\DC4\n\+    \\143\SOH\n\+    \\ACK\EOT\SYN\ETX\NUL\STX\NUL\DC2\EOT\245\t\EOT,\SUB\DEL Identifies the element in the original source .proto file. This field\n\+    \ is formatted the same as SourceCodeInfo.Location.path.\n\+    \\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\NUL\EOT\DC2\EOT\245\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\NUL\ENQ\DC2\EOT\245\t\r\DC2\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\NUL\SOH\DC2\EOT\245\t\DC3\ETB\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\NUL\ETX\DC2\EOT\245\t\SUB\ESC\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\NUL\b\DC2\EOT\245\t\FS+\n\+    \\DLE\n\+    \\b\EOT\SYN\ETX\NUL\STX\NUL\b\STX\DC2\EOT\245\t\GS*\n\+    \O\n\+    \\ACK\EOT\SYN\ETX\NUL\STX\SOH\DC2\EOT\248\t\EOT$\SUB? Identifies the filesystem path to the original source .proto.\n\+    \\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\SOH\EOT\DC2\EOT\248\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\SOH\ENQ\DC2\EOT\248\t\r\DC3\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\SOH\SOH\DC2\EOT\248\t\DC4\US\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\SOH\ETX\DC2\EOT\248\t\"#\n\+    \w\n\+    \\ACK\EOT\SYN\ETX\NUL\STX\STX\DC2\EOT\252\t\EOT\GS\SUBg Identifies the starting offset in bytes in the generated code\n\+    \ that relates to the identified object.\n\+    \\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\STX\EOT\DC2\EOT\252\t\EOT\f\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\STX\ENQ\DC2\EOT\252\t\r\DC2\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\STX\SOH\DC2\EOT\252\t\DC3\CAN\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\STX\ETX\DC2\EOT\252\t\ESC\FS\n\+    \\219\SOH\n\+    \\ACK\EOT\SYN\ETX\NUL\STX\ETX\DC2\EOT\129\n\+    \\EOT\ESC\SUB\202\SOH Identifies the ending offset in bytes in the generated code that\n\+    \ relates to the identified object. The end offset should be one past\n\+    \ the last relevant byte (so the length of the text = end - begin).\n\+    \\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\ETX\EOT\DC2\EOT\129\n\+    \\EOT\f\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\ETX\ENQ\DC2\EOT\129\n\+    \\r\DC2\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\ETX\SOH\DC2\EOT\129\n\+    \\DC3\SYN\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\ETX\ETX\DC2\EOT\129\n\+    \\EM\SUB\n\+    \j\n\+    \\ACK\EOT\SYN\ETX\NUL\EOT\NUL\DC2\ACK\133\n\+    \\EOT\140\n\+    \\ENQ\SUBX Represents the identified object's effect on the element in the original\n\+    \ .proto file.\n\+    \\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\EOT\NUL\SOH\DC2\EOT\133\n\+    \\t\DC1\n\+    \F\n\+    \\b\EOT\SYN\ETX\NUL\EOT\NUL\STX\NUL\DC2\EOT\135\n\+    \\ACK\SI\SUB4 There is no effect or the effect is indescribable.\n\+    \\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\NUL\SOH\DC2\EOT\135\n\+    \\ACK\n\+    \\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\NUL\STX\DC2\EOT\135\n\+    \\r\SO\n\+    \<\n\+    \\b\EOT\SYN\ETX\NUL\EOT\NUL\STX\SOH\DC2\EOT\137\n\+    \\ACK\SO\SUB* The element is set or otherwise mutated.\n\+    \\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\SOH\SOH\DC2\EOT\137\n\+    \\ACK\t\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\SOH\STX\DC2\EOT\137\n\+    \\f\r\n\+    \8\n\+    \\b\EOT\SYN\ETX\NUL\EOT\NUL\STX\STX\DC2\EOT\139\n\+    \\ACK\DLE\SUB& An alias to the element is returned.\n\+    \\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\STX\SOH\DC2\EOT\139\n\+    \\ACK\v\n\+    \\DC1\n\+    \\t\EOT\SYN\ETX\NUL\EOT\NUL\STX\STX\STX\DC2\EOT\139\n\+    \\SO\SI\n\+    \\SO\n\+    \\ACK\EOT\SYN\ETX\NUL\STX\EOT\DC2\EOT\141\n\+    \\EOT#\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\EOT\EOT\DC2\EOT\141\n\+    \\EOT\f\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\EOT\ACK\DC2\EOT\141\n\+    \\r\NAK\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\EOT\SOH\DC2\EOT\141\n\+    \\SYN\RS\n\+    \\SI\n\+    \\a\EOT\SYN\ETX\NUL\STX\EOT\ETX\DC2\EOT\141\n\+    \!\""
+ app/Proto/Google/Protobuf/Descriptor_Fields.hs view
@@ -0,0 +1,1418 @@+{- This file was auto-generated from google/protobuf/descriptor.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Descriptor_Fields where+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+aggregateValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "aggregateValue" a) =>+  Lens.Family2.LensLike' f s a+aggregateValue = Data.ProtoLens.Field.field @"aggregateValue"+allowAlias ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "allowAlias" a) =>+  Lens.Family2.LensLike' f s a+allowAlias = Data.ProtoLens.Field.field @"allowAlias"+annotation ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "annotation" a) =>+  Lens.Family2.LensLike' f s a+annotation = Data.ProtoLens.Field.field @"annotation"+begin ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "begin" a) =>+  Lens.Family2.LensLike' f s a+begin = Data.ProtoLens.Field.field @"begin"+ccEnableArenas ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "ccEnableArenas" a) =>+  Lens.Family2.LensLike' f s a+ccEnableArenas = Data.ProtoLens.Field.field @"ccEnableArenas"+ccGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "ccGenericServices" a) =>+  Lens.Family2.LensLike' f s a+ccGenericServices = Data.ProtoLens.Field.field @"ccGenericServices"+clientStreaming ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "clientStreaming" a) =>+  Lens.Family2.LensLike' f s a+clientStreaming = Data.ProtoLens.Field.field @"clientStreaming"+csharpNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "csharpNamespace" a) =>+  Lens.Family2.LensLike' f s a+csharpNamespace = Data.ProtoLens.Field.field @"csharpNamespace"+ctype ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ctype" a) =>+  Lens.Family2.LensLike' f s a+ctype = Data.ProtoLens.Field.field @"ctype"+debugRedact ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "debugRedact" a) =>+  Lens.Family2.LensLike' f s a+debugRedact = Data.ProtoLens.Field.field @"debugRedact"+declaration ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "declaration" a) =>+  Lens.Family2.LensLike' f s a+declaration = Data.ProtoLens.Field.field @"declaration"+defaultValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "defaultValue" a) =>+  Lens.Family2.LensLike' f s a+defaultValue = Data.ProtoLens.Field.field @"defaultValue"+defaults ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "defaults" a) =>+  Lens.Family2.LensLike' f s a+defaults = Data.ProtoLens.Field.field @"defaults"+dependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "dependency" a) =>+  Lens.Family2.LensLike' f s a+dependency = Data.ProtoLens.Field.field @"dependency"+deprecated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "deprecated" a) =>+  Lens.Family2.LensLike' f s a+deprecated = Data.ProtoLens.Field.field @"deprecated"+deprecatedLegacyJsonFieldConflicts ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "deprecatedLegacyJsonFieldConflicts" a) =>+  Lens.Family2.LensLike' f s a+deprecatedLegacyJsonFieldConflicts+  = Data.ProtoLens.Field.field @"deprecatedLegacyJsonFieldConflicts"+deprecationWarning ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "deprecationWarning" a) =>+  Lens.Family2.LensLike' f s a+deprecationWarning+  = Data.ProtoLens.Field.field @"deprecationWarning"+doubleValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "doubleValue" a) =>+  Lens.Family2.LensLike' f s a+doubleValue = Data.ProtoLens.Field.field @"doubleValue"+edition ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "edition" a) =>+  Lens.Family2.LensLike' f s a+edition = Data.ProtoLens.Field.field @"edition"+editionDefaults ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "editionDefaults" a) =>+  Lens.Family2.LensLike' f s a+editionDefaults = Data.ProtoLens.Field.field @"editionDefaults"+editionDeprecated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "editionDeprecated" a) =>+  Lens.Family2.LensLike' f s a+editionDeprecated = Data.ProtoLens.Field.field @"editionDeprecated"+editionIntroduced ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "editionIntroduced" a) =>+  Lens.Family2.LensLike' f s a+editionIntroduced = Data.ProtoLens.Field.field @"editionIntroduced"+editionRemoved ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "editionRemoved" a) =>+  Lens.Family2.LensLike' f s a+editionRemoved = Data.ProtoLens.Field.field @"editionRemoved"+end ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "end" a) =>+  Lens.Family2.LensLike' f s a+end = Data.ProtoLens.Field.field @"end"+enumType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "enumType" a) =>+  Lens.Family2.LensLike' f s a+enumType = Data.ProtoLens.Field.field @"enumType"+extendee ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "extendee" a) =>+  Lens.Family2.LensLike' f s a+extendee = Data.ProtoLens.Field.field @"extendee"+extension ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "extension" a) =>+  Lens.Family2.LensLike' f s a+extension = Data.ProtoLens.Field.field @"extension"+extensionRange ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "extensionRange" a) =>+  Lens.Family2.LensLike' f s a+extensionRange = Data.ProtoLens.Field.field @"extensionRange"+featureSupport ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "featureSupport" a) =>+  Lens.Family2.LensLike' f s a+featureSupport = Data.ProtoLens.Field.field @"featureSupport"+features ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "features" a) =>+  Lens.Family2.LensLike' f s a+features = Data.ProtoLens.Field.field @"features"+field ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "field" a) =>+  Lens.Family2.LensLike' f s a+field = Data.ProtoLens.Field.field @"field"+fieldPresence ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "fieldPresence" a) =>+  Lens.Family2.LensLike' f s a+fieldPresence = Data.ProtoLens.Field.field @"fieldPresence"+file ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "file" a) =>+  Lens.Family2.LensLike' f s a+file = Data.ProtoLens.Field.field @"file"+fixedFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "fixedFeatures" a) =>+  Lens.Family2.LensLike' f s a+fixedFeatures = Data.ProtoLens.Field.field @"fixedFeatures"+fullName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "fullName" a) =>+  Lens.Family2.LensLike' f s a+fullName = Data.ProtoLens.Field.field @"fullName"+goPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "goPackage" a) =>+  Lens.Family2.LensLike' f s a+goPackage = Data.ProtoLens.Field.field @"goPackage"+idempotencyLevel ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "idempotencyLevel" a) =>+  Lens.Family2.LensLike' f s a+idempotencyLevel = Data.ProtoLens.Field.field @"idempotencyLevel"+identifierValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "identifierValue" a) =>+  Lens.Family2.LensLike' f s a+identifierValue = Data.ProtoLens.Field.field @"identifierValue"+inputType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "inputType" a) =>+  Lens.Family2.LensLike' f s a+inputType = Data.ProtoLens.Field.field @"inputType"+isExtension ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "isExtension" a) =>+  Lens.Family2.LensLike' f s a+isExtension = Data.ProtoLens.Field.field @"isExtension"+javaGenerateEqualsAndHash ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaGenerateEqualsAndHash" a) =>+  Lens.Family2.LensLike' f s a+javaGenerateEqualsAndHash+  = Data.ProtoLens.Field.field @"javaGenerateEqualsAndHash"+javaGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaGenericServices" a) =>+  Lens.Family2.LensLike' f s a+javaGenericServices+  = Data.ProtoLens.Field.field @"javaGenericServices"+javaMultipleFiles ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaMultipleFiles" a) =>+  Lens.Family2.LensLike' f s a+javaMultipleFiles = Data.ProtoLens.Field.field @"javaMultipleFiles"+javaOuterClassname ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaOuterClassname" a) =>+  Lens.Family2.LensLike' f s a+javaOuterClassname+  = Data.ProtoLens.Field.field @"javaOuterClassname"+javaPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaPackage" a) =>+  Lens.Family2.LensLike' f s a+javaPackage = Data.ProtoLens.Field.field @"javaPackage"+javaStringCheckUtf8 ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "javaStringCheckUtf8" a) =>+  Lens.Family2.LensLike' f s a+javaStringCheckUtf8+  = Data.ProtoLens.Field.field @"javaStringCheckUtf8"+jsonFormat ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "jsonFormat" a) =>+  Lens.Family2.LensLike' f s a+jsonFormat = Data.ProtoLens.Field.field @"jsonFormat"+jsonName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "jsonName" a) =>+  Lens.Family2.LensLike' f s a+jsonName = Data.ProtoLens.Field.field @"jsonName"+jstype ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "jstype" a) =>+  Lens.Family2.LensLike' f s a+jstype = Data.ProtoLens.Field.field @"jstype"+label ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "label" a) =>+  Lens.Family2.LensLike' f s a+label = Data.ProtoLens.Field.field @"label"+lazy ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "lazy" a) =>+  Lens.Family2.LensLike' f s a+lazy = Data.ProtoLens.Field.field @"lazy"+leadingComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "leadingComments" a) =>+  Lens.Family2.LensLike' f s a+leadingComments = Data.ProtoLens.Field.field @"leadingComments"+leadingDetachedComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "leadingDetachedComments" a) =>+  Lens.Family2.LensLike' f s a+leadingDetachedComments+  = Data.ProtoLens.Field.field @"leadingDetachedComments"+location ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "location" a) =>+  Lens.Family2.LensLike' f s a+location = Data.ProtoLens.Field.field @"location"+mapEntry ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "mapEntry" a) =>+  Lens.Family2.LensLike' f s a+mapEntry = Data.ProtoLens.Field.field @"mapEntry"+maximumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maximumEdition" a) =>+  Lens.Family2.LensLike' f s a+maximumEdition = Data.ProtoLens.Field.field @"maximumEdition"+maybe'aggregateValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'aggregateValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'aggregateValue+  = Data.ProtoLens.Field.field @"maybe'aggregateValue"+maybe'allowAlias ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'allowAlias" a) =>+  Lens.Family2.LensLike' f s a+maybe'allowAlias = Data.ProtoLens.Field.field @"maybe'allowAlias"+maybe'begin ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'begin" a) =>+  Lens.Family2.LensLike' f s a+maybe'begin = Data.ProtoLens.Field.field @"maybe'begin"+maybe'ccEnableArenas ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'ccEnableArenas" a) =>+  Lens.Family2.LensLike' f s a+maybe'ccEnableArenas+  = Data.ProtoLens.Field.field @"maybe'ccEnableArenas"+maybe'ccGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'ccGenericServices" a) =>+  Lens.Family2.LensLike' f s a+maybe'ccGenericServices+  = Data.ProtoLens.Field.field @"maybe'ccGenericServices"+maybe'clientStreaming ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'clientStreaming" a) =>+  Lens.Family2.LensLike' f s a+maybe'clientStreaming+  = Data.ProtoLens.Field.field @"maybe'clientStreaming"+maybe'csharpNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'csharpNamespace" a) =>+  Lens.Family2.LensLike' f s a+maybe'csharpNamespace+  = Data.ProtoLens.Field.field @"maybe'csharpNamespace"+maybe'ctype ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'ctype" a) =>+  Lens.Family2.LensLike' f s a+maybe'ctype = Data.ProtoLens.Field.field @"maybe'ctype"+maybe'debugRedact ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'debugRedact" a) =>+  Lens.Family2.LensLike' f s a+maybe'debugRedact = Data.ProtoLens.Field.field @"maybe'debugRedact"+maybe'defaultValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'defaultValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'defaultValue+  = Data.ProtoLens.Field.field @"maybe'defaultValue"+maybe'deprecated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'deprecated" a) =>+  Lens.Family2.LensLike' f s a+maybe'deprecated = Data.ProtoLens.Field.field @"maybe'deprecated"+maybe'deprecatedLegacyJsonFieldConflicts ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'deprecatedLegacyJsonFieldConflicts" a) =>+  Lens.Family2.LensLike' f s a+maybe'deprecatedLegacyJsonFieldConflicts+  = Data.ProtoLens.Field.field+      @"maybe'deprecatedLegacyJsonFieldConflicts"+maybe'deprecationWarning ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'deprecationWarning" a) =>+  Lens.Family2.LensLike' f s a+maybe'deprecationWarning+  = Data.ProtoLens.Field.field @"maybe'deprecationWarning"+maybe'doubleValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'doubleValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'doubleValue = Data.ProtoLens.Field.field @"maybe'doubleValue"+maybe'edition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'edition" a) =>+  Lens.Family2.LensLike' f s a+maybe'edition = Data.ProtoLens.Field.field @"maybe'edition"+maybe'editionDeprecated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'editionDeprecated" a) =>+  Lens.Family2.LensLike' f s a+maybe'editionDeprecated+  = Data.ProtoLens.Field.field @"maybe'editionDeprecated"+maybe'editionIntroduced ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'editionIntroduced" a) =>+  Lens.Family2.LensLike' f s a+maybe'editionIntroduced+  = Data.ProtoLens.Field.field @"maybe'editionIntroduced"+maybe'editionRemoved ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'editionRemoved" a) =>+  Lens.Family2.LensLike' f s a+maybe'editionRemoved+  = Data.ProtoLens.Field.field @"maybe'editionRemoved"+maybe'end ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'end" a) =>+  Lens.Family2.LensLike' f s a+maybe'end = Data.ProtoLens.Field.field @"maybe'end"+maybe'enumType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'enumType" a) =>+  Lens.Family2.LensLike' f s a+maybe'enumType = Data.ProtoLens.Field.field @"maybe'enumType"+maybe'extendee ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'extendee" a) =>+  Lens.Family2.LensLike' f s a+maybe'extendee = Data.ProtoLens.Field.field @"maybe'extendee"+maybe'featureSupport ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'featureSupport" a) =>+  Lens.Family2.LensLike' f s a+maybe'featureSupport+  = Data.ProtoLens.Field.field @"maybe'featureSupport"+maybe'features ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'features" a) =>+  Lens.Family2.LensLike' f s a+maybe'features = Data.ProtoLens.Field.field @"maybe'features"+maybe'fieldPresence ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'fieldPresence" a) =>+  Lens.Family2.LensLike' f s a+maybe'fieldPresence+  = Data.ProtoLens.Field.field @"maybe'fieldPresence"+maybe'fixedFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'fixedFeatures" a) =>+  Lens.Family2.LensLike' f s a+maybe'fixedFeatures+  = Data.ProtoLens.Field.field @"maybe'fixedFeatures"+maybe'fullName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'fullName" a) =>+  Lens.Family2.LensLike' f s a+maybe'fullName = Data.ProtoLens.Field.field @"maybe'fullName"+maybe'goPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'goPackage" a) =>+  Lens.Family2.LensLike' f s a+maybe'goPackage = Data.ProtoLens.Field.field @"maybe'goPackage"+maybe'idempotencyLevel ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'idempotencyLevel" a) =>+  Lens.Family2.LensLike' f s a+maybe'idempotencyLevel+  = Data.ProtoLens.Field.field @"maybe'idempotencyLevel"+maybe'identifierValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'identifierValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'identifierValue+  = Data.ProtoLens.Field.field @"maybe'identifierValue"+maybe'inputType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'inputType" a) =>+  Lens.Family2.LensLike' f s a+maybe'inputType = Data.ProtoLens.Field.field @"maybe'inputType"+maybe'javaGenerateEqualsAndHash ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaGenerateEqualsAndHash" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaGenerateEqualsAndHash+  = Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash"+maybe'javaGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaGenericServices" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaGenericServices+  = Data.ProtoLens.Field.field @"maybe'javaGenericServices"+maybe'javaMultipleFiles ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaMultipleFiles" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaMultipleFiles+  = Data.ProtoLens.Field.field @"maybe'javaMultipleFiles"+maybe'javaOuterClassname ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaOuterClassname" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaOuterClassname+  = Data.ProtoLens.Field.field @"maybe'javaOuterClassname"+maybe'javaPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaPackage" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaPackage = Data.ProtoLens.Field.field @"maybe'javaPackage"+maybe'javaStringCheckUtf8 ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'javaStringCheckUtf8" a) =>+  Lens.Family2.LensLike' f s a+maybe'javaStringCheckUtf8+  = Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8"+maybe'jsonFormat ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'jsonFormat" a) =>+  Lens.Family2.LensLike' f s a+maybe'jsonFormat = Data.ProtoLens.Field.field @"maybe'jsonFormat"+maybe'jsonName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'jsonName" a) =>+  Lens.Family2.LensLike' f s a+maybe'jsonName = Data.ProtoLens.Field.field @"maybe'jsonName"+maybe'jstype ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'jstype" a) =>+  Lens.Family2.LensLike' f s a+maybe'jstype = Data.ProtoLens.Field.field @"maybe'jstype"+maybe'label ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'label" a) =>+  Lens.Family2.LensLike' f s a+maybe'label = Data.ProtoLens.Field.field @"maybe'label"+maybe'lazy ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'lazy" a) =>+  Lens.Family2.LensLike' f s a+maybe'lazy = Data.ProtoLens.Field.field @"maybe'lazy"+maybe'leadingComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'leadingComments" a) =>+  Lens.Family2.LensLike' f s a+maybe'leadingComments+  = Data.ProtoLens.Field.field @"maybe'leadingComments"+maybe'mapEntry ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'mapEntry" a) =>+  Lens.Family2.LensLike' f s a+maybe'mapEntry = Data.ProtoLens.Field.field @"maybe'mapEntry"+maybe'maximumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'maximumEdition" a) =>+  Lens.Family2.LensLike' f s a+maybe'maximumEdition+  = Data.ProtoLens.Field.field @"maybe'maximumEdition"+maybe'messageEncoding ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'messageEncoding" a) =>+  Lens.Family2.LensLike' f s a+maybe'messageEncoding+  = Data.ProtoLens.Field.field @"maybe'messageEncoding"+maybe'messageSetWireFormat ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'messageSetWireFormat" a) =>+  Lens.Family2.LensLike' f s a+maybe'messageSetWireFormat+  = Data.ProtoLens.Field.field @"maybe'messageSetWireFormat"+maybe'minimumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'minimumEdition" a) =>+  Lens.Family2.LensLike' f s a+maybe'minimumEdition+  = Data.ProtoLens.Field.field @"maybe'minimumEdition"+maybe'name ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'name" a) =>+  Lens.Family2.LensLike' f s a+maybe'name = Data.ProtoLens.Field.field @"maybe'name"+maybe'negativeIntValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'negativeIntValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'negativeIntValue+  = Data.ProtoLens.Field.field @"maybe'negativeIntValue"+maybe'noStandardDescriptorAccessor ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'noStandardDescriptorAccessor" a) =>+  Lens.Family2.LensLike' f s a+maybe'noStandardDescriptorAccessor+  = Data.ProtoLens.Field.field @"maybe'noStandardDescriptorAccessor"+maybe'number ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'number" a) =>+  Lens.Family2.LensLike' f s a+maybe'number = Data.ProtoLens.Field.field @"maybe'number"+maybe'objcClassPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'objcClassPrefix" a) =>+  Lens.Family2.LensLike' f s a+maybe'objcClassPrefix+  = Data.ProtoLens.Field.field @"maybe'objcClassPrefix"+maybe'oneofIndex ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'oneofIndex" a) =>+  Lens.Family2.LensLike' f s a+maybe'oneofIndex = Data.ProtoLens.Field.field @"maybe'oneofIndex"+maybe'optimizeFor ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'optimizeFor" a) =>+  Lens.Family2.LensLike' f s a+maybe'optimizeFor = Data.ProtoLens.Field.field @"maybe'optimizeFor"+maybe'options ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'options" a) =>+  Lens.Family2.LensLike' f s a+maybe'options = Data.ProtoLens.Field.field @"maybe'options"+maybe'outputType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'outputType" a) =>+  Lens.Family2.LensLike' f s a+maybe'outputType = Data.ProtoLens.Field.field @"maybe'outputType"+maybe'overridableFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'overridableFeatures" a) =>+  Lens.Family2.LensLike' f s a+maybe'overridableFeatures+  = Data.ProtoLens.Field.field @"maybe'overridableFeatures"+maybe'package ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'package" a) =>+  Lens.Family2.LensLike' f s a+maybe'package = Data.ProtoLens.Field.field @"maybe'package"+maybe'packed ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'packed" a) =>+  Lens.Family2.LensLike' f s a+maybe'packed = Data.ProtoLens.Field.field @"maybe'packed"+maybe'phpClassPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'phpClassPrefix" a) =>+  Lens.Family2.LensLike' f s a+maybe'phpClassPrefix+  = Data.ProtoLens.Field.field @"maybe'phpClassPrefix"+maybe'phpMetadataNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'phpMetadataNamespace" a) =>+  Lens.Family2.LensLike' f s a+maybe'phpMetadataNamespace+  = Data.ProtoLens.Field.field @"maybe'phpMetadataNamespace"+maybe'phpNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'phpNamespace" a) =>+  Lens.Family2.LensLike' f s a+maybe'phpNamespace+  = Data.ProtoLens.Field.field @"maybe'phpNamespace"+maybe'positiveIntValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'positiveIntValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'positiveIntValue+  = Data.ProtoLens.Field.field @"maybe'positiveIntValue"+maybe'proto3Optional ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'proto3Optional" a) =>+  Lens.Family2.LensLike' f s a+maybe'proto3Optional+  = Data.ProtoLens.Field.field @"maybe'proto3Optional"+maybe'pyGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'pyGenericServices" a) =>+  Lens.Family2.LensLike' f s a+maybe'pyGenericServices+  = Data.ProtoLens.Field.field @"maybe'pyGenericServices"+maybe'repeated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'repeated" a) =>+  Lens.Family2.LensLike' f s a+maybe'repeated = Data.ProtoLens.Field.field @"maybe'repeated"+maybe'repeatedFieldEncoding ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'repeatedFieldEncoding" a) =>+  Lens.Family2.LensLike' f s a+maybe'repeatedFieldEncoding+  = Data.ProtoLens.Field.field @"maybe'repeatedFieldEncoding"+maybe'reserved ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'reserved" a) =>+  Lens.Family2.LensLike' f s a+maybe'reserved = Data.ProtoLens.Field.field @"maybe'reserved"+maybe'retention ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'retention" a) =>+  Lens.Family2.LensLike' f s a+maybe'retention = Data.ProtoLens.Field.field @"maybe'retention"+maybe'rubyPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'rubyPackage" a) =>+  Lens.Family2.LensLike' f s a+maybe'rubyPackage = Data.ProtoLens.Field.field @"maybe'rubyPackage"+maybe'semantic ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'semantic" a) =>+  Lens.Family2.LensLike' f s a+maybe'semantic = Data.ProtoLens.Field.field @"maybe'semantic"+maybe'serverStreaming ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'serverStreaming" a) =>+  Lens.Family2.LensLike' f s a+maybe'serverStreaming+  = Data.ProtoLens.Field.field @"maybe'serverStreaming"+maybe'sourceCodeInfo ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'sourceCodeInfo" a) =>+  Lens.Family2.LensLike' f s a+maybe'sourceCodeInfo+  = Data.ProtoLens.Field.field @"maybe'sourceCodeInfo"+maybe'sourceFile ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'sourceFile" a) =>+  Lens.Family2.LensLike' f s a+maybe'sourceFile = Data.ProtoLens.Field.field @"maybe'sourceFile"+maybe'start ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'start" a) =>+  Lens.Family2.LensLike' f s a+maybe'start = Data.ProtoLens.Field.field @"maybe'start"+maybe'stringValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'stringValue" a) =>+  Lens.Family2.LensLike' f s a+maybe'stringValue = Data.ProtoLens.Field.field @"maybe'stringValue"+maybe'swiftPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'swiftPrefix" a) =>+  Lens.Family2.LensLike' f s a+maybe'swiftPrefix = Data.ProtoLens.Field.field @"maybe'swiftPrefix"+maybe'syntax ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'syntax" a) =>+  Lens.Family2.LensLike' f s a+maybe'syntax = Data.ProtoLens.Field.field @"maybe'syntax"+maybe'trailingComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'trailingComments" a) =>+  Lens.Family2.LensLike' f s a+maybe'trailingComments+  = Data.ProtoLens.Field.field @"maybe'trailingComments"+maybe'type' ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'type'" a) =>+  Lens.Family2.LensLike' f s a+maybe'type' = Data.ProtoLens.Field.field @"maybe'type'"+maybe'typeName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'typeName" a) =>+  Lens.Family2.LensLike' f s a+maybe'typeName = Data.ProtoLens.Field.field @"maybe'typeName"+maybe'unverifiedLazy ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'unverifiedLazy" a) =>+  Lens.Family2.LensLike' f s a+maybe'unverifiedLazy+  = Data.ProtoLens.Field.field @"maybe'unverifiedLazy"+maybe'utf8Validation ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'utf8Validation" a) =>+  Lens.Family2.LensLike' f s a+maybe'utf8Validation+  = Data.ProtoLens.Field.field @"maybe'utf8Validation"+maybe'value ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'value" a) =>+  Lens.Family2.LensLike' f s a+maybe'value = Data.ProtoLens.Field.field @"maybe'value"+maybe'verification ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'verification" a) =>+  Lens.Family2.LensLike' f s a+maybe'verification+  = Data.ProtoLens.Field.field @"maybe'verification"+maybe'weak ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'weak" a) =>+  Lens.Family2.LensLike' f s a+maybe'weak = Data.ProtoLens.Field.field @"maybe'weak"+messageEncoding ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "messageEncoding" a) =>+  Lens.Family2.LensLike' f s a+messageEncoding = Data.ProtoLens.Field.field @"messageEncoding"+messageSetWireFormat ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "messageSetWireFormat" a) =>+  Lens.Family2.LensLike' f s a+messageSetWireFormat+  = Data.ProtoLens.Field.field @"messageSetWireFormat"+messageType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "messageType" a) =>+  Lens.Family2.LensLike' f s a+messageType = Data.ProtoLens.Field.field @"messageType"+method ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "method" a) =>+  Lens.Family2.LensLike' f s a+method = Data.ProtoLens.Field.field @"method"+minimumEdition ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "minimumEdition" a) =>+  Lens.Family2.LensLike' f s a+minimumEdition = Data.ProtoLens.Field.field @"minimumEdition"+name ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>+  Lens.Family2.LensLike' f s a+name = Data.ProtoLens.Field.field @"name"+namePart ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "namePart" a) =>+  Lens.Family2.LensLike' f s a+namePart = Data.ProtoLens.Field.field @"namePart"+negativeIntValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "negativeIntValue" a) =>+  Lens.Family2.LensLike' f s a+negativeIntValue = Data.ProtoLens.Field.field @"negativeIntValue"+nestedType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "nestedType" a) =>+  Lens.Family2.LensLike' f s a+nestedType = Data.ProtoLens.Field.field @"nestedType"+noStandardDescriptorAccessor ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "noStandardDescriptorAccessor" a) =>+  Lens.Family2.LensLike' f s a+noStandardDescriptorAccessor+  = Data.ProtoLens.Field.field @"noStandardDescriptorAccessor"+number ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "number" a) =>+  Lens.Family2.LensLike' f s a+number = Data.ProtoLens.Field.field @"number"+objcClassPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "objcClassPrefix" a) =>+  Lens.Family2.LensLike' f s a+objcClassPrefix = Data.ProtoLens.Field.field @"objcClassPrefix"+oneofDecl ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "oneofDecl" a) =>+  Lens.Family2.LensLike' f s a+oneofDecl = Data.ProtoLens.Field.field @"oneofDecl"+oneofIndex ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "oneofIndex" a) =>+  Lens.Family2.LensLike' f s a+oneofIndex = Data.ProtoLens.Field.field @"oneofIndex"+optimizeFor ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "optimizeFor" a) =>+  Lens.Family2.LensLike' f s a+optimizeFor = Data.ProtoLens.Field.field @"optimizeFor"+options ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "options" a) =>+  Lens.Family2.LensLike' f s a+options = Data.ProtoLens.Field.field @"options"+outputType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "outputType" a) =>+  Lens.Family2.LensLike' f s a+outputType = Data.ProtoLens.Field.field @"outputType"+overridableFeatures ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "overridableFeatures" a) =>+  Lens.Family2.LensLike' f s a+overridableFeatures+  = Data.ProtoLens.Field.field @"overridableFeatures"+package ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "package" a) =>+  Lens.Family2.LensLike' f s a+package = Data.ProtoLens.Field.field @"package"+packed ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "packed" a) =>+  Lens.Family2.LensLike' f s a+packed = Data.ProtoLens.Field.field @"packed"+path ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "path" a) =>+  Lens.Family2.LensLike' f s a+path = Data.ProtoLens.Field.field @"path"+phpClassPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "phpClassPrefix" a) =>+  Lens.Family2.LensLike' f s a+phpClassPrefix = Data.ProtoLens.Field.field @"phpClassPrefix"+phpMetadataNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "phpMetadataNamespace" a) =>+  Lens.Family2.LensLike' f s a+phpMetadataNamespace+  = Data.ProtoLens.Field.field @"phpMetadataNamespace"+phpNamespace ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "phpNamespace" a) =>+  Lens.Family2.LensLike' f s a+phpNamespace = Data.ProtoLens.Field.field @"phpNamespace"+positiveIntValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "positiveIntValue" a) =>+  Lens.Family2.LensLike' f s a+positiveIntValue = Data.ProtoLens.Field.field @"positiveIntValue"+proto3Optional ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "proto3Optional" a) =>+  Lens.Family2.LensLike' f s a+proto3Optional = Data.ProtoLens.Field.field @"proto3Optional"+publicDependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "publicDependency" a) =>+  Lens.Family2.LensLike' f s a+publicDependency = Data.ProtoLens.Field.field @"publicDependency"+pyGenericServices ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "pyGenericServices" a) =>+  Lens.Family2.LensLike' f s a+pyGenericServices = Data.ProtoLens.Field.field @"pyGenericServices"+repeated ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "repeated" a) =>+  Lens.Family2.LensLike' f s a+repeated = Data.ProtoLens.Field.field @"repeated"+repeatedFieldEncoding ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "repeatedFieldEncoding" a) =>+  Lens.Family2.LensLike' f s a+repeatedFieldEncoding+  = Data.ProtoLens.Field.field @"repeatedFieldEncoding"+reserved ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "reserved" a) =>+  Lens.Family2.LensLike' f s a+reserved = Data.ProtoLens.Field.field @"reserved"+reservedName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "reservedName" a) =>+  Lens.Family2.LensLike' f s a+reservedName = Data.ProtoLens.Field.field @"reservedName"+reservedRange ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "reservedRange" a) =>+  Lens.Family2.LensLike' f s a+reservedRange = Data.ProtoLens.Field.field @"reservedRange"+retention ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "retention" a) =>+  Lens.Family2.LensLike' f s a+retention = Data.ProtoLens.Field.field @"retention"+rubyPackage ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "rubyPackage" a) =>+  Lens.Family2.LensLike' f s a+rubyPackage = Data.ProtoLens.Field.field @"rubyPackage"+semantic ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "semantic" a) =>+  Lens.Family2.LensLike' f s a+semantic = Data.ProtoLens.Field.field @"semantic"+serverStreaming ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "serverStreaming" a) =>+  Lens.Family2.LensLike' f s a+serverStreaming = Data.ProtoLens.Field.field @"serverStreaming"+service ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "service" a) =>+  Lens.Family2.LensLike' f s a+service = Data.ProtoLens.Field.field @"service"+sourceCodeInfo ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "sourceCodeInfo" a) =>+  Lens.Family2.LensLike' f s a+sourceCodeInfo = Data.ProtoLens.Field.field @"sourceCodeInfo"+sourceFile ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "sourceFile" a) =>+  Lens.Family2.LensLike' f s a+sourceFile = Data.ProtoLens.Field.field @"sourceFile"+span ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "span" a) =>+  Lens.Family2.LensLike' f s a+span = Data.ProtoLens.Field.field @"span"+start ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "start" a) =>+  Lens.Family2.LensLike' f s a+start = Data.ProtoLens.Field.field @"start"+stringValue ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "stringValue" a) =>+  Lens.Family2.LensLike' f s a+stringValue = Data.ProtoLens.Field.field @"stringValue"+swiftPrefix ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "swiftPrefix" a) =>+  Lens.Family2.LensLike' f s a+swiftPrefix = Data.ProtoLens.Field.field @"swiftPrefix"+syntax ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "syntax" a) =>+  Lens.Family2.LensLike' f s a+syntax = Data.ProtoLens.Field.field @"syntax"+targets ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "targets" a) =>+  Lens.Family2.LensLike' f s a+targets = Data.ProtoLens.Field.field @"targets"+trailingComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "trailingComments" a) =>+  Lens.Family2.LensLike' f s a+trailingComments = Data.ProtoLens.Field.field @"trailingComments"+type' ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "type'" a) =>+  Lens.Family2.LensLike' f s a+type' = Data.ProtoLens.Field.field @"type'"+typeName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "typeName" a) =>+  Lens.Family2.LensLike' f s a+typeName = Data.ProtoLens.Field.field @"typeName"+uninterpretedOption ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "uninterpretedOption" a) =>+  Lens.Family2.LensLike' f s a+uninterpretedOption+  = Data.ProtoLens.Field.field @"uninterpretedOption"+unverifiedLazy ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "unverifiedLazy" a) =>+  Lens.Family2.LensLike' f s a+unverifiedLazy = Data.ProtoLens.Field.field @"unverifiedLazy"+utf8Validation ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "utf8Validation" a) =>+  Lens.Family2.LensLike' f s a+utf8Validation = Data.ProtoLens.Field.field @"utf8Validation"+value ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "value" a) =>+  Lens.Family2.LensLike' f s a+value = Data.ProtoLens.Field.field @"value"+vec'annotation ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'annotation" a) =>+  Lens.Family2.LensLike' f s a+vec'annotation = Data.ProtoLens.Field.field @"vec'annotation"+vec'declaration ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'declaration" a) =>+  Lens.Family2.LensLike' f s a+vec'declaration = Data.ProtoLens.Field.field @"vec'declaration"+vec'defaults ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'defaults" a) =>+  Lens.Family2.LensLike' f s a+vec'defaults = Data.ProtoLens.Field.field @"vec'defaults"+vec'dependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'dependency" a) =>+  Lens.Family2.LensLike' f s a+vec'dependency = Data.ProtoLens.Field.field @"vec'dependency"+vec'editionDefaults ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'editionDefaults" a) =>+  Lens.Family2.LensLike' f s a+vec'editionDefaults+  = Data.ProtoLens.Field.field @"vec'editionDefaults"+vec'enumType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'enumType" a) =>+  Lens.Family2.LensLike' f s a+vec'enumType = Data.ProtoLens.Field.field @"vec'enumType"+vec'extension ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'extension" a) =>+  Lens.Family2.LensLike' f s a+vec'extension = Data.ProtoLens.Field.field @"vec'extension"+vec'extensionRange ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'extensionRange" a) =>+  Lens.Family2.LensLike' f s a+vec'extensionRange+  = Data.ProtoLens.Field.field @"vec'extensionRange"+vec'field ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'field" a) =>+  Lens.Family2.LensLike' f s a+vec'field = Data.ProtoLens.Field.field @"vec'field"+vec'file ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'file" a) =>+  Lens.Family2.LensLike' f s a+vec'file = Data.ProtoLens.Field.field @"vec'file"+vec'leadingDetachedComments ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'leadingDetachedComments" a) =>+  Lens.Family2.LensLike' f s a+vec'leadingDetachedComments+  = Data.ProtoLens.Field.field @"vec'leadingDetachedComments"+vec'location ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'location" a) =>+  Lens.Family2.LensLike' f s a+vec'location = Data.ProtoLens.Field.field @"vec'location"+vec'messageType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'messageType" a) =>+  Lens.Family2.LensLike' f s a+vec'messageType = Data.ProtoLens.Field.field @"vec'messageType"+vec'method ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'method" a) =>+  Lens.Family2.LensLike' f s a+vec'method = Data.ProtoLens.Field.field @"vec'method"+vec'name ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'name" a) =>+  Lens.Family2.LensLike' f s a+vec'name = Data.ProtoLens.Field.field @"vec'name"+vec'nestedType ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'nestedType" a) =>+  Lens.Family2.LensLike' f s a+vec'nestedType = Data.ProtoLens.Field.field @"vec'nestedType"+vec'oneofDecl ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'oneofDecl" a) =>+  Lens.Family2.LensLike' f s a+vec'oneofDecl = Data.ProtoLens.Field.field @"vec'oneofDecl"+vec'path ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'path" a) =>+  Lens.Family2.LensLike' f s a+vec'path = Data.ProtoLens.Field.field @"vec'path"+vec'publicDependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'publicDependency" a) =>+  Lens.Family2.LensLike' f s a+vec'publicDependency+  = Data.ProtoLens.Field.field @"vec'publicDependency"+vec'reservedName ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'reservedName" a) =>+  Lens.Family2.LensLike' f s a+vec'reservedName = Data.ProtoLens.Field.field @"vec'reservedName"+vec'reservedRange ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'reservedRange" a) =>+  Lens.Family2.LensLike' f s a+vec'reservedRange = Data.ProtoLens.Field.field @"vec'reservedRange"+vec'service ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'service" a) =>+  Lens.Family2.LensLike' f s a+vec'service = Data.ProtoLens.Field.field @"vec'service"+vec'span ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'span" a) =>+  Lens.Family2.LensLike' f s a+vec'span = Data.ProtoLens.Field.field @"vec'span"+vec'targets ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'targets" a) =>+  Lens.Family2.LensLike' f s a+vec'targets = Data.ProtoLens.Field.field @"vec'targets"+vec'uninterpretedOption ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'uninterpretedOption" a) =>+  Lens.Family2.LensLike' f s a+vec'uninterpretedOption+  = Data.ProtoLens.Field.field @"vec'uninterpretedOption"+vec'value ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'value" a) =>+  Lens.Family2.LensLike' f s a+vec'value = Data.ProtoLens.Field.field @"vec'value"+vec'weakDependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'weakDependency" a) =>+  Lens.Family2.LensLike' f s a+vec'weakDependency+  = Data.ProtoLens.Field.field @"vec'weakDependency"+verification ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "verification" a) =>+  Lens.Family2.LensLike' f s a+verification = Data.ProtoLens.Field.field @"verification"+weak ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "weak" a) =>+  Lens.Family2.LensLike' f s a+weak = Data.ProtoLens.Field.field @"weak"+weakDependency ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "weakDependency" a) =>+  Lens.Family2.LensLike' f s a+weakDependency = Data.ProtoLens.Field.field @"weakDependency"
+ app/protoc-gen-haskell.hs view
@@ -0,0 +1,117 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Main where++import Control.Monad.IO.Class (liftIO)+import qualified Data.ByteString as B+import Data.Map.Strict ((!))+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif+import qualified Data.Set as Set+import qualified Data.Text as T+import Data.Text (Text, pack)+import Data.Bits+import Data.ProtoLens (defMessage, decodeMessage, encodeMessage)+-- Force the use of the Reflected API when decoding DescriptorProto+-- so that we can run the test suite against the Generated API.+-- TODO: switch back to Data.ProtoLens.Encoding once the Generated encoding is+-- good enough.+import Lens.Family2+import Proto.Google.Protobuf.Compiler.Plugin+    ( CodeGeneratorRequest+    , CodeGeneratorResponse+    , CodeGeneratorResponse'Feature(..)+    )+import Proto.Google.Protobuf.Descriptor (FileDescriptorProto, Edition(..))+import System.Environment (getProgName)+import System.Exit (exitWith, ExitCode(..))+import System.IO as IO++import Data.ProtoLens.Compiler.Generate.Commented (getModuleName)+import Data.ProtoLens.Compiler.Generate+import Data.ProtoLens.Compiler.Plugin++#if MIN_VERSION_ghc(9,0,0)+import GHC.Driver.Session (DynFlags, getDynFlags)+#else+import DynFlags (DynFlags, getDynFlags)+#endif+import GHC (runGhc)+import GHC.Paths (libdir)+import GHC.SourceGen.Pretty (showPpr)++main :: IO ()+main = do+    contents <- B.getContents+    progName <- getProgName+    case decodeMessage contents of+        Left e -> IO.hPutStrLn stderr e >> exitWith (ExitFailure 1)+        Right x -> runGhc (Just libdir) $ do+                      dflags <- getDynFlags+                      liftIO $ B.putStr $ encodeMessage $+                        makeResponse dflags progName x++makeResponse :: DynFlags -> String -> CodeGeneratorRequest -> CodeGeneratorResponse+makeResponse dflags prog request = let+    outputFiles = generateFiles dflags header+                      (request ^. #protoFile)+                      (request ^. #fileToGenerate)+    header :: FileDescriptorProto -> Text+    header f = "{- This file was auto-generated from "+                <> (f ^. #name)+                <> " by the " <> pack prog <> " program. -}\n"+    features = [ CodeGeneratorResponse'FEATURE_PROTO3_OPTIONAL+               , CodeGeneratorResponse'FEATURE_SUPPORTS_EDITIONS+               ]+    preamble = defMessage+               & #supportedFeatures .~+                 foldl (.|.) zeroBits (fmap (toEnum . fromEnum) features)+               -- Do not process actual Protobuf Editions files yet.+               & #minimumEdition .~ fromIntegral (fromEnum EDITION_PROTO2)+               & #maximumEdition .~ fromIntegral (fromEnum EDITION_2024)+    in case outputFiles of+         Right fs -> preamble & #file .~+           [ defMessage+             & #name .~ outputName+             & #content .~ outputContent+           | (outputName, outputContent) <- fs+           ]+         Left e -> preamble & #error .~ e++generateFiles :: DynFlags -> (FileDescriptorProto -> Text)+              -> [FileDescriptorProto] -> [ProtoFileName]+              -> Either Text [(Text, Text)]+generateFiles dflags header files toGenerate = do+  filesByName <- analyzeProtoFiles files++  let modulesToBuild f =+        generateModule (haskellModule f) (descriptor f) imports+            (publicImports f)+            (definitions f)+            (collectEnvFromDeps deps filesByName)+            (services f)+        where+          deps = descriptor f ^. #dependency+          imports = Set.toAscList $ Set.fromList+                    $ map (haskellModule . (filesByName !)) deps+++  -- The contents of the generated Haskell file for a given .proto file.+  return [ ( moduleFilePath $ pack $ showPpr dflags (getModuleName modul)+           , header (descriptor f) <> pack (showPpr dflags modul)+           )+         | fileName <- toGenerate+         , let f = filesByName ! fileName+         , modul <- modulesToBuild f+         ]++moduleFilePath :: Text -> Text+moduleFilePath n = T.replace "." "/" n <> ".hs"
proto-lens-protoc.cabal view
@@ -1,90 +1,73 @@-name:                proto-lens-protoc-version:             0.1.0.5-synopsis:            Protocol buffer compiler for the proto-lens library.-description:-  Turn protocol buffer files (.proto) into Haskell files (.hs) which-  can be used with the proto-lens package.+cabal-version: 1.12 -  The library component of this package contains compiler code (namely-  Data.ProtoLens.Compiler.*) that is not guaranteed to have stable APIs.-license:             BSD3-license-file:        LICENSE-author:              Judah Jacobson-maintainer:          judahjacobson@google.com-copyright:           Google Inc.-category:            Data-build-type:          Simple-cabal-version:       >=1.21+-- This file has been generated from package.yaml by hpack version 0.39.1.+--+-- see: https://github.com/sol/hpack --- Work around stack bug, since we don't want to build the library--- during bootstrapping:--- https://github.com/commercialhaskell/stack/issues/1406-flag only-executable-    Description: Only build the executable.  Used for bootstrapping.-    Default: False+name:           proto-lens-protoc+version:        0.9.0.1+synopsis:       Protocol buffer compiler for the proto-lens library.+description:    Turn protocol buffer files (.proto) into Haskell files (.hs) which can be used with the proto-lens package.+                The library component of this package contains compiler code (namely Data.ProtoLens.Compiler.*) is not guaranteed to have stable APIs.'+category:       Data+homepage:       https://github.com/google/proto-lens#readme+bug-reports:    https://github.com/google/proto-lens/issues+author:         Judah Jacobson+maintainer:     proto-lens@googlegroups.com+copyright:      Google Inc.+license:        BSD3+license-file:   LICENSE+build-type:     Simple+extra-source-files:+    Changelog.md +source-repository head+  type: git+  location: https://github.com/google/proto-lens+  subdir: proto-lens-protoc+ library-  if flag(only-executable) {-      buildable: False-  } else {-    exposed-modules:-        Data.ProtoLens.Compiler.Combinators-        Data.ProtoLens.Compiler.Definitions-        Data.ProtoLens.Compiler.Generate-        Data.ProtoLens.Compiler.Plugin-        Data.ProtoLens.Setup-    default-language:  Haskell2010-    hs-source-dirs:    src-    build-depends:-          Cabal >= 1.22 && < 1.25-        , base >= 4.8 && < 4.10-        , bytestring == 0.10.*-        , containers == 0.5.*-        , data-default-class >= 0.0 && < 0.2-        , directory == 1.2.*-        , filepath == 1.4.*-        , haskell-src-exts == 1.17.*-        , lens-family == 1.2.*-        , process >= 1.2 && < 1.5-        , proto-lens == 0.1.0.5-        , proto-lens-descriptors == 0.1.0.5-        , text == 1.2.*-    reexported-modules:-        -- Modules that are needed by the generated Haskell files.-        -- For forwards compatibility, reexport them as new module names so that-        -- other packages don't accidentally write non-generated code that-        -- relies on these modules being reexported by proto-lens-protoc.-          Data.ByteString as Data.ProtoLens.Reexport.Data.ByteString-        , Data.Default.Class as Data.ProtoLens.Reexport.Data.Default.Class-        , Data.Map as Data.ProtoLens.Reexport.Data.Map-        , Data.ProtoLens as Data.ProtoLens.Reexport.Data.ProtoLens-        , Data.ProtoLens.Message.Enum as Data.ProtoLens.Reexport.Data.ProtoLens.Message.Enum-        , Data.Text as Data.ProtoLens.Reexport.Data.Text-        , Lens.Family2 as Data.ProtoLens.Reexport.Lens.Family2-        , Lens.Family2.Unchecked as Data.ProtoLens.Reexport.Lens.Family2.Unchecked-    }+  exposed-modules:+      Data.ProtoLens.Compiler.ModuleName+  other-modules:+      Paths_proto_lens_protoc+  hs-source-dirs:+      src+  build-depends:+      base >=4.10 && <4.23+    , filepath >=1.4 && <1.6+  default-language: Haskell2010  executable proto-lens-protoc-  main-is:  protoc-gen-haskell.hs--  build-depends:-        base >= 4.8 && < 4.10-      , bytestring == 0.10.*-      , containers == 0.5.*-      , data-default-class >= 0.0 && < 0.2-      , filepath == 1.4.*-      , haskell-src-exts == 1.17.*-      , lens-family == 1.2.*-      -- Specify an exact version of `proto-lens`, since it's tied closely-      -- to the generated code.-      , proto-lens == 0.1.0.5-      , proto-lens-descriptors == 0.1.0.5-      , text == 1.2.*-  hs-source-dirs:      src+  main-is: protoc-gen-haskell.hs   other-modules:-      Data.ProtoLens.Compiler.Combinators       Data.ProtoLens.Compiler.Definitions+      Data.ProtoLens.Compiler.Editions.Defaults+      Data.ProtoLens.Compiler.Editions.Features       Data.ProtoLens.Compiler.Generate+      Data.ProtoLens.Compiler.Generate.Commented+      Data.ProtoLens.Compiler.Generate.Encoding+      Data.ProtoLens.Compiler.Generate.Field       Data.ProtoLens.Compiler.Plugin--  default-language:    Haskell2010+      Proto.Google.Protobuf.Compiler.Plugin+      Proto.Google.Protobuf.Compiler.Plugin_Fields+      Proto.Google.Protobuf.Descriptor+      Proto.Google.Protobuf.Descriptor_Fields+      Paths_proto_lens_protoc+  hs-source-dirs:+      app+  build-depends:+      base >=4.10 && <4.23+    , bytestring >=0.10 && <0.14+    , containers >=0.5 && <0.9+    , filepath >=1.4 && <1.6+    , ghc >=8.2 && <9.15+    , ghc-paths ==0.1.*+    , ghc-source-gen ==0.4.*+    , lens-family >=1.2 && <2.2+    , pretty ==1.1.*+    , proto-lens ==0.7.*+    , proto-lens-protoc+    , proto-lens-runtime ==0.7.*+    , text >=1.2 && <2.2+  default-language: Haskell2010
− src/Data/ProtoLens/Compiler/Combinators.hs
@@ -1,98 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd--{-# OPTIONS_GHC -fno-warn-orphans #-}--- | Some utility functions, classes and instances for nicer code generation--- with haskell-src-exts.------ In particular, we define orphan instances of IsString for various syntax--- datatypes, with some intelligence about Haskell names.  For example, @"foo"--- :: Exp@ is treated as a variable and @"Foo" :: Exp@ is treated as a--- constructor.-module Data.ProtoLens.Compiler.Combinators where--import Data.Char (isAlphaNum, isUpper)-import Data.String (IsString(..))-import Language.Haskell.Exts.SrcLoc (noLoc)-import Language.Haskell.Exts.Syntax as Syntax---- | Application of a Haskell type or expression to an argument.--- For example, to represent @f x y@, you can write------ > "f" @@ "x" @@ "y"-class App a where-    (@@) :: a -> a -> a-    infixl 2 @@--instance App Type where-    (@@) = TyApp--instance App Exp where-    (@@) = App--instance IsString Name where-    fromString s-        -- TODO: better handle the case of mixed ident and symbol characters.-        | all isIdentChar s = Ident s-        | otherwise = Symbol s---- | Whether this character belongs to an Ident (e.g., "foo") or a symbol--- (e.g., "<$>").-isIdentChar :: Char -> Bool-isIdentChar c = isAlphaNum c || c `elem` "_'"--instance IsString ModuleName where-    fromString = ModuleName--instance IsString QName where-    fromString f-      -- TODO: support qualified operators (e.g., "Control.Applicative.<$>")-      -- Currently we ignore them due to edge-cases-      -- like the composition operator "Prelude.."-      | isIdentChar (last f), '.' `elem` f-      -- Split "Foo.Bar.baz" into ("Foo.Bar", "baz")-      , (f', '.':f'') <- span (/='.') (reverse f)-            = Qual (fromString $ reverse f'') (fromString $ reverse f')-      | otherwise = UnQual $ fromString f--instance IsString Type where-  fromString fs@(f:_)-      | isUpper f = TyCon $ fromString fs-  fromString fs = TyVar $ fromString fs--instance IsString Exp where-    fromString fs@(f:_)-        | isUpper f = Con $ fromString fs-    fromString fs = Var $ fromString fs--instance IsString Pat where-    fromString = PVar . fromString--instance IsString TyVarBind where-    fromString = UnkindedVar . fromString----- Helper functions for literal numbers, since haskell-src-exts doesn't--- put parentheses around negative numbers automatically.--litInt :: Integer -> Exp-litInt n-    | n >= 0 = Lit $ Int n-    | otherwise = NegApp $ Lit $ Int $ negate n--litFrac :: Rational -> Exp-litFrac x-    | x >= 0 = Lit $ Frac x-    | otherwise = NegApp $ Lit $ Frac $ negate x--pLitInt :: Integer -> Pat-pLitInt n-    | n >= 0 = PLit Signless $ Int n-    | otherwise = PLit Negative $ Int $ negate n---- | A simple clause of a function binding.-match :: Name -> [Pat] -> Exp -> Match-match n ps e = Match noLoc n ps Nothing (UnGuardedRhs e) Nothing
− src/Data/ProtoLens/Compiler/Definitions.hs
@@ -1,261 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd---- | This module takes care of collecting all the definitions in a .proto file--- and assigning Haskell names to all of the defined things (messages, enums--- and field names).-{-# LANGUAGE DeriveFunctor, OverloadedStrings #-}-module Data.ProtoLens.Compiler.Definitions-    ( Env-    , Definition(..)-    , MessageInfo(..)-    , FieldInfo(..)-    , EnumInfo(..)-    , EnumValueInfo(..)-    , qualifyEnv-    , unqualifyEnv-    , collectDefinitions-    , definedFieldType-    ) where--import Data.Char (toUpper)-import Data.Int (Int32)-import Data.List (mapAccumL)-import qualified Data.Map as Map-import Data.Maybe (fromMaybe)-import Data.Monoid-import qualified Data.Set as Set-import Data.Text (Text, cons, splitOn, toLower, uncons, unpack)-import qualified Data.Text as T-import Language.Haskell.Exts.Syntax (Name(..), QName(..), ModuleName(..))-import Lens.Family2 ((^.))-import Proto.Google.Protobuf.Descriptor-    ( DescriptorProto-    , EnumDescriptorProto-    , EnumValueDescriptorProto-    , FieldDescriptorProto-    , FileDescriptorProto-    , enumType-    , field-    , messageType-    , name-    , nestedType-    , number-    , package-    , typeName-    , value-    )---- | 'Env' contains a mapping of proto names (as specified in the .proto file)--- to Haskell names.  The keys are fully-qualified names, for example,--- ".package.Message.Submessage".  (The protocol_compiler tool emits all--- message field types in this form, even if they refer to local definitions.)------ The type 'n' can be either a 'Name' (when talking about definitions within--- the current file) or a (qualified) 'QName' (when talking about definitions--- either from this or another file).-type Env n = Map.Map Text (Definition n)--data Definition n = Message (MessageInfo n) | Enum (EnumInfo n)-    deriving Functor---- | All the information needed to define or use a proto message type.-data MessageInfo n = MessageInfo-    { messageName :: n  -- ^ Haskell type name-    , messageDescriptor :: DescriptorProto-    , messageFields :: [FieldInfo]-      -- ^ The Haskell names for each field.-      -- This list corresponds 1-1 with "field" in messageDescriptor.-    } deriving Functor---- | Information about a single field of a proto message.-data FieldInfo = FieldInfo-    { overloadedField :: String-      -- ^ The Haskell overloaded name of this field; may be shared between two-      -- different message data types.-    , recordFieldName :: Name-      -- ^ The Haskell name of this internal record field.  Unique within each-      -- module.-    , fieldDescriptor :: FieldDescriptorProto-    }---- | All the information needed to define or use a proto enum type.-data EnumInfo n = EnumInfo-    { enumName :: n-    , enumDescriptor :: EnumDescriptorProto-    , enumValues :: [EnumValueInfo n]-    } deriving Functor---- | Information about a single value case of a proto enum.-data EnumValueInfo n = EnumValueInfo-    { enumValueName :: n-    , enumValueDescriptor :: EnumValueDescriptorProto-    , enumAliasOf :: Maybe Name-        -- ^ If 'Nothing', we turn value into a normal constructor of the enum.-        -- If @'Just' n@, we're treating it as an alias of the constructor @n@-        -- (a PatternSynonym in Haskell).  This mirrors the behavior of the-        -- Java API.-    } deriving Functor--mapEnv :: (n -> n') -> Env n -> Env n'-mapEnv f = fmap $ fmap f---- Lift a set of local definitions into references to a specific module.-qualifyEnv :: ModuleName -> Env Name -> Env QName-qualifyEnv m = mapEnv (Qual m)---- Lift a set of local definitions into references to the current module.-unqualifyEnv :: Env Name -> Env QName-unqualifyEnv = mapEnv UnQual---- | Look up the type definition for a given field.-definedFieldType :: FieldDescriptorProto -> Env QName -> Definition QName-definedFieldType fd env = fromMaybe err $ Map.lookup (fd ^. typeName) env-  where-    err = error $ "definedFieldType: Field type " ++ unpack (fd ^. typeName)-                  ++ " not found in environment."---- | Collect all the definitions in the given file (including definitions--- nested in other messages), and assign Haskell names to them.-collectDefinitions :: FileDescriptorProto -> Env Name-collectDefinitions fd = let-    protoPrefix = case fd ^. package of-        "" -> "."-        p -> "." <> p <> "."-    hsPrefix = ""-    in Map.fromList $ messageAndEnumDefs protoPrefix hsPrefix-                          (fd ^. messageType) (fd ^. enumType)--messageAndEnumDefs :: Text -> String -> [DescriptorProto]-                   -> [EnumDescriptorProto] -> [(Text, Definition Name)]-messageAndEnumDefs protoPrefix hsPrefix messages enums-    = concatMap (messageDefs protoPrefix hsPrefix) messages-        ++ map (enumDef protoPrefix hsPrefix) enums---- | Generate the definitions for a message and its nested types (if any).-messageDefs :: Text -> String -> DescriptorProto-            -> [(Text, Definition Name)]-messageDefs protoPrefix hsPrefix d-    = thisDef : subDefs-  where-    protoName = d ^. name-    hsName = unpack $ capitalize $ d ^. name-    thisDef = (protoPrefix <> protoName-              , Message MessageInfo-                  { messageName = Ident $ hsPrefix ++ hsName-                  , messageDescriptor = d-                  , messageFields =-                      [ FieldInfo-                          { overloadedField = n-                          , recordFieldName = Ident $ "_" ++ hsPrefix' ++ n-                          , fieldDescriptor = f-                          }-                      | f <- d ^. field-                      , let n = fieldName (f ^. name)-                      ]-                  })-    subDefs = messageAndEnumDefs protoPrefix' hsPrefix'-                  (d ^. nestedType) (d ^. enumType)-    protoPrefix' = protoPrefix <> protoName <> "."-    hsPrefix' = hsPrefix ++ hsName ++ "'"---- | Get the name in Haskell of a proto field, taking care of camel casing and--- clashes with language keywords.-fieldName :: Text -> String-fieldName = unpack . disambiguate . camelCase-  where-    disambiguate s-        -- TODO: use a more comprehensive blacklist of Haskell keywords.-        | s `Set.member` reservedKeywords = s <> "'"-        | otherwise = s-    camelCase s-        -- Preserve any initial underlines (e.g., "_foo_bar" -> "_fooBar").-        | (underlines, rest) <- T.span (== '_') s-            = case splitOn "_" rest of-                -- splitOn always returns a list with at least one element.-                [] -> error $ "camelCase: splitOn returned empty list: "-                                ++ show rest-                [""] -> error "camelCase: name consists only of underscores"-                s':ss -> T.concat $ underlines : toLower s' : map capitalize ss---- | A list of reserved keywords that aren't valid as variable names.-reservedKeywords :: Set.Set Text-reservedKeywords = Set.fromList $-    -- Haskell2010 keywords:-    -- https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4-    -- We don't include keywords that are allowed to be variable names,-    -- in particular: "as", "forall", and "hiding".-    [ "case"-    , "class"-    , "data"-    , "default"-    , "deriving"-    , "do"-    , "else"-    , "foreign"-    , "if"-    , "import"-    , "in"-    , "infix"-    , "infixl"-    , "infixr"-    , "instance"-    , "let"-    , "module"-    , "newtype"-    , "of"-    , "then"-    , "type"-    , "where"-    ]-    ++  -- Nonstandard extensions-    [ "mdo"   -- RecursiveDo-    , "rec"   -- Arrows, RecursiveDo-    , "pattern"  -- PatternSynonyms-    , "proc"  -- Arrows-    ]---- | Generate the definition for an enum type.-enumDef :: Text -> String -> EnumDescriptorProto-          -> (Text, Definition Name)-enumDef protoPrefix hsPrefix d = let-    mkText n = protoPrefix <> n-    mkHsName n = Ident $ hsPrefix ++ unpack n-    in (mkText (d ^. name)-       , Enum EnumInfo-            { enumName = mkHsName (d ^. name)-            , enumDescriptor = d-            , enumValues = collectEnumValues mkHsName $ d ^. value-            })---- | Generate the definitions for each enum value.  In particular, decide--- whether it's a true constructor or a PatternSynonym to another--- constructor.------ Like Java, we treat the first case of each numeric value as the "real"--- constructor, and subsequent cases as synonyms.-collectEnumValues :: (Text -> Name) -> [EnumValueDescriptorProto]-                  -> [EnumValueInfo Name]-collectEnumValues mkHsName = snd . mapAccumL helper Map.empty-  where-    helper :: Map.Map Int32 Name -> EnumValueDescriptorProto-           -> (Map.Map Int32 Name, EnumValueInfo Name)-    helper seenNames v-        | Just n' <- Map.lookup k seenNames = (seenNames, mkValue (Just n'))-        | otherwise = (Map.insert k hsName seenNames, mkValue Nothing)-      where-        mkValue = EnumValueInfo hsName v-        hsName = mkHsName n-        n = v ^. name-        k = v ^. number---- Haskell types must start with an uppercase letter, so we capitalize message--- and enum names.--- Name collisions will show up as build errors in the generated haskell file.-capitalize :: Text -> Text-capitalize s-    | Just (c, s') <- uncons s = cons (toUpper c) s'-    | otherwise = s
− src/Data/ProtoLens/Compiler/Generate.hs
@@ -1,697 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd---- | This module builds the actual, generated Haskell file--- for a given input .proto file.-{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Generate(-    generateModule,-    fileSyntaxType,-    ModifyImports,-    reexported,-    ) where---import Control.Applicative ((<$>))-import Control.Arrow (second)-import qualified Data.Foldable as F-import qualified Data.List as List-import qualified Data.Map as Map-import Data.Maybe (isNothing)-import Data.Ord (comparing)-import qualified Data.Set as Set-import Data.String (fromString)-import Data.Text (unpack)-import qualified Data.Text as T-import Data.Tuple (swap)-import Language.Haskell.Exts.Syntax as Syntax-import Language.Haskell.Exts.SrcLoc (noLoc)-import Lens.Family2 ((^.))-import Proto.Google.Protobuf.Descriptor-    ( EnumValueDescriptorProto-    , FieldDescriptorProto-    , FieldDescriptorProto'Label(..)-    , FieldDescriptorProto'Type(..)-    , FileDescriptorProto-    , FieldOptions-    , defaultValue-    , label-    , mapEntry-    , maybe'oneofIndex-    , maybe'packed-    , name-    , number-    , options-    , syntax-    , type'-    , typeName-    )--import Data.ProtoLens.Compiler.Combinators-import Data.ProtoLens.Compiler.Definitions--data SyntaxType = Proto2 | Proto3-    deriving Eq--fileSyntaxType :: FileDescriptorProto -> SyntaxType-fileSyntaxType f = case f ^. syntax of-    "proto2" -> Proto2-    "proto3" -> Proto3-    "" -> Proto2  -- The proto compiler doesn't set syntax for proto2 files.-    s -> error $ "Unknown syntax type " ++ show s---- Whether to import the "Reexport" modules or the originals;--- e.g., Data.ProtoLens.Reexport.Data.Map vs Data.Map.-data UseReexport = UseReexport | UseOriginal-    deriving (Eq, Read)---- | Generate a Haskell module for the given input file(s).--- input contains all defined names, incl. those in this module-generateModule :: ModuleName-               -> [ModuleName]  -- ^ The imported modules-               -> SyntaxType-               -> ModifyImports-               -> Env Name      -- ^ Definitions in this file-               -> Env QName     -- ^ Definitions in the imported modules-               -> Module-generateModule modName imports syntaxType modifyImport definitions importedEnv-    = Module noLoc modName-          [ LanguagePragma noLoc $ map Ident-              ["ScopedTypeVariables", "DataKinds", "TypeFamilies",-               "MultiParamTypeClasses", "FlexibleContexts", "FlexibleInstances",-               "PatternSynonyms"]-              -- Allow unused imports in case we don't import anything from-              -- Data.Text, Data.Int, etc.-          , OptionsPragma noLoc (Just GHC) "-fno-warn-unused-imports"-          ]-          Nothing  -- no warning text-          Nothing  -- no explicit exports; we export everything.-                   -- TODO: Also export public imports, taking care not to-                   -- cause a name conflict between field accessors.-          (map importSimple-              -- Note: we import Prelude explicitly to make it qualified.-              [ "Prelude", "Data.Int", "Data.Word"]-            ++ map (modifyImport . importSimple)-                [ "Data.ProtoLens", "Data.ProtoLens.Message.Enum"-                , "Lens.Family2", "Lens.Family2.Unchecked", "Data.Default.Class"-                , "Data.Text",  "Data.Map" , "Data.ByteString"-                ]-            ++ map importSimple imports)-          (concatMap generateDecls (Map.elems definitions)-           ++ concatMap generateFieldDecls allFieldNames)-  where-    env = Map.union (unqualifyEnv definitions) importedEnv-    generateDecls (Message m) = generateMessageDecls syntaxType env m-    generateDecls (Enum e) = generateEnumDecls e-    allFieldNames = F.toList $ Set.fromList-        [ fieldSymbol i-        | Message m <- Map.elems definitions-        , f <- messageFields m-        , i <- fieldInstances (lensInfo syntaxType env f)-        ]--importSimple :: ModuleName -> ImportDecl-importSimple m = ImportDecl-    { importLoc = noLoc-    , importModule = m-    -- Import qualified to avoid clashes with names defined in this module.-    , importQualified = True-    , importSrc = False-    , importSafe = False-    , importPkg = Nothing-    , importAs = Nothing-    , importSpecs = Nothing-    }--type ModifyImports = ImportDecl -> ImportDecl--reexported :: ModifyImports-reexported imp@ImportDecl {importModule = m@(ModuleName s)}-    = imp { importAs = Just m, importModule = m' }-  where-    m' = ModuleName $ "Data.ProtoLens.Reexport." ++ s--generateMessageDecls :: SyntaxType -> Env QName -> MessageInfo Name -> [Decl]-generateMessageDecls syntaxType env info =-    -- data Bar = Bar {-    --    foo :: Baz-    -- }-    [ DataDecl noLoc DataType [] dataName []-        [QualConDecl noLoc [] [] $ RecDecl dataName-                  [([recordFieldName f],-                        TyBang BangedTy $ internalType (lensInfo syntaxType env f))-                  | f <- fields-                  ]-        ]-        [("Prelude.Show", []), ("Prelude.Eq", [])]-    ]-    ++-    -- type instance Field.Field "foo" Bar = Baz-    -- instance Field.HasField "foo" Bar where-    --   field _ = ...-    -- Note: for optional fields, this generates an instance both for "foo" and-    -- for "maybe'foo" (see lensInfo below).-    concat-        [ [ TypeInsDecl noLoc-              ("Data.ProtoLens.Field" @@ sym @@ dataType)-              (fieldTypeInstance i)-          , InstDecl noLoc Nothing [] [] "Data.ProtoLens.HasField"-              [sym, dataType, dataType]-              [InsDecl $ FunBind [match "field" [PWildCard] $ fieldAccessor i]]-          ]-        | f <- fields-        , i <- fieldInstances (lensInfo syntaxType env f)-        , let sym = TyPromoted $ PromotedString $ fieldSymbol i-        ]-    ++-    -- instance Data.Default.Class.Default Bar where-    [ InstDecl noLoc Nothing [] [] "Data.Default.Class.Default" [dataType]-        -- def = Bar { _Bar_foo = 0 }-        [ InsDecl $ FunBind-            [ match "def" []-                $ RecConstr (UnQual dataName)-                      [ FieldUpdate (UnQual $ recordFieldName f)-                            (hsFieldDefault syntaxType env (fieldDescriptor f))-                      | f <- fields-                      ]-            ]-        ]-    -- instance Message.Message Bar where-    , InstDecl noLoc Nothing [] [] "Data.ProtoLens.Message" [dataType]-        [ InsDecl $ FunBind-            [ match "descriptor" [] $ descriptorExpr syntaxType env info]-        ]-    ]-  where-    dataType = TyCon $ UnQual dataName-    MessageInfo { messageName = dataName, messageFields = fields} = info--generateEnumDecls :: EnumInfo Name -> [Decl]-generateEnumDecls info =-    [ DataDecl noLoc DataType [] dataName []-        [QualConDecl noLoc [] [] $ ConDecl n [] | n <- constructorNames]-        [(c, []) | c <- ["Prelude.Show", "Prelude.Eq"]]-    -- instance Data.Default.Class.Default Foo where-    --   def = FirstEnumValue-    , InstDecl noLoc Nothing [] [] "Data.Default.Class.Default" [dataType]-        [ InsDecl $ FunBind [match "def" [] defaultCon]-        ]-    -- instance Data.ProtoLens.FieldDefault Foo where-    --   fieldDefault = FirstEnumValue-    , InstDecl noLoc Nothing [] [] "Data.ProtoLens.FieldDefault" [dataType]-        [ InsDecl $ FunBind [match "fieldDefault" [] defaultCon]-        ]-    -- instance MessageEnum Foo where-    --    maybeToEnum 1 = Just Foo1-    --    maybeToEnum 2 = Just Foo2-    --    ...-    --    maybeToEnum _ = Nothing-    --    showEnum Foo1 = "Foo1"-    --    showEnum Foo2 = "Foo2"-    --    ...-    --    readEnum "Foo1" = Just Foo1-    --    readEnum "Foo2" = Just Foo2-    --    ...-    --    readEnum _ = Nothing-    , InstDecl noLoc Nothing [] [] "Data.ProtoLens.MessageEnum" [dataType]-        [ InsDecl $ FunBind $-            [ match "maybeToEnum" [pLitInt k]-                $ "Prelude.Just" @@ Con (UnQual n)-            | (n, k) <- constructorNumbers-            ]-            ++-            [ match "maybeToEnum" [PWildCard] "Prelude.Nothing"-            ]-            ++-            [ match "showEnum" [PVar n] $ Lit $ Syntax.String $ T.unpack pn-            | (n, pn) <- constructorProtoNames-            ]-            ++-            [ match "readEnum"-                [PLit Signless . Syntax.String $ T.unpack pn]-                $ "Prelude.Just" @@ Con (UnQual n)-            | (n, pn) <- constructorProtoNames-            ]-            ++-            [ match "readEnum" [PWildCard] "Prelude.Nothing"-            ]-        ]-    -- instance Enum Foo where-    --    toEnum k = maybe (error ("Foo.toEnum: unknown argument for enum Foo: "-    --                                ++ show k))-    --                  id (maybeToEnum k)-    --    fromEnum Foo1 = 1-    --    fromEnum Foo2 = 2-    --    ..-    --    succ FooN = error "Foo.succ: bad argument FooN."-    --    succ Foo1 = Foo2-    --    succ Foo2 = Foo3-    --    ..-    --    pred Foo1 = error "Foo.succ: bad argument Foo1."-    --    pred Foo2 = Foo1-    --    pred Foo3 = Foo2-    --    ..-    --    enumFrom = messageEnumFrom-    --    enumFromTo = messageEnumFromTo-    --    enumFromThen = messageEnumFromThen-    --    enumFromThenTo = messageEnumFromThenTo-    , InstDecl noLoc Nothing [] [] "Prelude.Enum" [dataType]-        [ InsDecl $ FunBind-            [ match "toEnum" ["k__"]-                  $ "Prelude.maybe" @@ errorMessageExpr @@ "Prelude.id"-                        @@ ("Data.ProtoLens.maybeToEnum" @@ "k__")-            ]-        , InsDecl $ FunBind-            [ match "fromEnum" [PApp (UnQual c) []] $ litInt k-            | (c, k) <- constructorNumbers-            ]-        , succDecl "succ" maxBoundName succPairs-        , succDecl "pred" minBoundName $ map swap succPairs-        , alias "enumFrom" "Data.ProtoLens.Message.Enum.messageEnumFrom"-        , alias "enumFromTo" "Data.ProtoLens.Message.Enum.messageEnumFromTo"-        , alias "enumFromThen" "Data.ProtoLens.Message.Enum.messageEnumFromThen"-        , alias "enumFromThenTo"-            "Data.ProtoLens.Message.Enum.messageEnumFromThenTo"-        ]-    -- instance Bounded Foo where-    --    minBound = Foo1-    --    maxBound = FooN-    , InstDecl noLoc Nothing [] [] "Prelude.Bounded" [dataType]-        [ InsDecl $ FunBind-            [ match "minBound" [] $ Con $ UnQual minBoundName-            , match "maxBound" [] $ Con $ UnQual maxBoundName-            ]-        ]-    ]-    ++-    -- pattern FooAlias :: Foo-    -- pattern FooAlias = FooConstructor-    concat-        [ [ PatSynSig noLoc aliasName Nothing [] [] dataType-          , PatSyn noLoc (PVar aliasName) (PVar originalName)-                ImplicitBidirectional-          ]-        | EnumValueInfo-            { enumValueName = aliasName-            , enumAliasOf = Just originalName-            } <- enumValues info-        ]-  where-    dataType = TyCon $ UnQual dataName-    EnumInfo { enumName = dataName, enumDescriptor = ed } = info-    constructors :: [(Name, EnumValueDescriptorProto)]-    constructors = List.sortBy (comparing ((^. number) . snd))-                            [(n, d) | EnumValueInfo-                                { enumValueName = n-                                , enumValueDescriptor = d-                                , enumAliasOf = Nothing-                                } <- enumValues info-                            ]-    constructorNames = map fst constructors-    minBoundName = head constructorNames-    maxBoundName = last constructorNames--    constructorProtoNames = map (second (^. name)) constructors-    constructorNumbers = map (second (fromIntegral . (^. number)))-                          constructors--    succPairs = zip constructorNames $ tail constructorNames-    succDecl funName boundName thePairs = InsDecl $ FunBind $-        match funName [PApp (UnQual boundName) []] (-            "Prelude.error" @@ Lit (Syntax.String $ concat-                [ show dataName, ".", show funName, ": bad argument "-                , show boundName, ". This value would be out of bounds."-                ]))-        :-        [ match funName [PApp (UnQual from) []] $ Con $ UnQual to-        | (from, to) <- thePairs-        ]-    alias funName implName = InsDecl $ FunBind [match funName [] implName]--    defaultCon = Con $ UnQual $ head constructorNames-    errorMessageExpr = "Prelude.error"-                          @@ ("Prelude.++" @@ Lit (Syntax.String errorMessage)-                              @@ ("Prelude.show" @@ "k__"))-    errorMessage = "toEnum: unknown value for enum " ++ unpack (ed ^. name)-                      ++ ": "--generateFieldDecls :: String -> [Decl]-generateFieldDecls fStr =-    -- foo :: forall msg msg' . Field.HasField "foo" msg msg'-    --        => Lens.Lens msg msg' (Field.Field "foo" msg)-    --                              (Field.Field "foo" msg')-    -- foo = Field.field (Field.ProxySym :: Field.Proxy "foo")-    [ TypeSig noLoc [f]-          $ TyForall (Just ["msg", "msg'"])-                  [ClassA "Data.ProtoLens.HasField" [fSym, "msg", "msg'"]]-                  $ "Lens.Family2.Lens" @@ "msg" @@ "msg'"-                    @@ ("Data.ProtoLens.Field" @@ fSym @@ "msg")-                    @@ ("Data.ProtoLens.Field" @@ fSym @@ "msg'")-    , FunBind [match f []-                  $ "Data.ProtoLens.field"-                      @@ ExpTypeSig noLoc "Data.ProtoLens.ProxySym"-                          ("Data.ProtoLens.ProxySym" @@ fSym)-              ]-    ]-  where-    f = Ident fStr-    fSym = TyPromoted $ PromotedString fStr------------------------------------------------ | The Haskell types and lenses for an individual field of a message.--- This is used to generate both the data record Decl and the instances of--- HasField.-data LensInfo = LensInfo-    { internalType :: Type  -- ^ Internal type in the record-    , fieldInstances :: [FieldInstanceInfo]  -- ^ All instances of Field/HasField-    }--data FieldInstanceInfo = FieldInstanceInfo-    { fieldSymbol :: String      -- ^ The name of the Symbol corresponding to-                                 --   this field.-    , fieldTypeInstance :: Type  -- ^ The type instance for Field, i.e.,-                                 --     type instance Field "foo" Bar = ...-    , fieldAccessor :: Exp       -- ^ The value of the "field" lens for this-                                 --   field, i.e.,-                                 --     field _ = ...-    }---- | Compile information about the record field type and type/class instances--- for this particular field.-lensInfo :: SyntaxType -> Env QName -> FieldInfo -> LensInfo-lensInfo syntaxType env f = case fd ^. label of-    -- data Foo = Foo { _Foo_bar :: Bar }-    -- type instance Field "bar" Foo = Bar-    FieldDescriptorProto'LABEL_REQUIRED -> LensInfo baseType-                  [FieldInstanceInfo-                      { fieldSymbol = baseName-                      , fieldTypeInstance = baseType-                      , fieldAccessor = rawAccessor-                      }]-    FieldDescriptorProto'LABEL_OPTIONAL-        | isDefaultingOptional syntaxType fd-              -> LensInfo baseType-                    [FieldInstanceInfo-                      { fieldSymbol = baseName-                      , fieldTypeInstance = baseType-                      , fieldAccessor = rawAccessor-                      }]-    FieldDescriptorProto'LABEL_REPEATED-        -- data Foo = Foo { _Foo_bar :: Map Bar Baz }-        -- type instance Field "foo" Foo = Map Bar Baz-        | Just (k,v) <- getMapFields env fd -> let-            mapType = "Data.Map.Map" @@ hsFieldType env (fieldDescriptor k)-                                     @@ hsFieldType env (fieldDescriptor v)-            in LensInfo mapType-                  [FieldInstanceInfo-                       { fieldSymbol = baseName-                       , fieldTypeInstance = mapType-                       , fieldAccessor = rawAccessor-                       }]-        -- data Foo = Foo { _Foo_bar :: [Bar] }-        -- type instance Field "bar" Foo = [Bar]-        | otherwise -> LensInfo listType-                  [FieldInstanceInfo-                      { fieldSymbol = baseName-                      , fieldTypeInstance = listType-                      , fieldAccessor = rawAccessor-                      }]-    -- data Foo = Foo { _Foo_bar :: Maybe Bar }-    -- type instance Field "bar" Foo = Bar-    -- type instance Field "maybe'bar" Foo = Maybe Bar-    FieldDescriptorProto'LABEL_OPTIONAL -> LensInfo maybeType-                  [FieldInstanceInfo-                      { fieldSymbol = baseName-                      , fieldTypeInstance = baseType-                      , fieldAccessor = maybeAccessor-                      }-                  , FieldInstanceInfo-                      { fieldSymbol = maybeName-                      , fieldTypeInstance = "Prelude.Maybe" @@ baseType-                      , fieldAccessor = rawAccessor-                      }-                  ]-  where-    baseName = overloadedField f-    fd = fieldDescriptor f-    baseType = hsFieldType env fd-    listType = TyList baseType-    maybeType = "Prelude.Maybe" @@ baseType-    maybeName = "maybe'" ++ baseName-    maybeAccessor = "Prelude.." @@ fromString maybeName-                        @@ ("Data.ProtoLens.maybeLens"-                                @@ hsFieldValueDefault env fd)-    rawAccessor = rawFieldAccessor $ UnQual $ recordFieldName f---- Get the key/value types of this type, if it is really a map.-getMapFields :: Env QName -> FieldDescriptorProto-             -> Maybe (FieldInfo, FieldInfo)-getMapFields env f-    | f ^. type' == FieldDescriptorProto'TYPE_MESSAGE-    , Message m@MessageInfo { messageDescriptor = d } <- definedFieldType f env-    , d ^. options.mapEntry-    , [f1, f2] <- messageFields m = Just (f1, f2)-    | otherwise = Nothing--hsFieldType :: Env QName -> FieldDescriptorProto -> Type-hsFieldType env fd = case fd ^. type' of-    FieldDescriptorProto'TYPE_DOUBLE -> "Prelude.Double"-    FieldDescriptorProto'TYPE_FLOAT -> "Prelude.Float"-    FieldDescriptorProto'TYPE_INT64 -> "Data.Int.Int64"-    FieldDescriptorProto'TYPE_UINT64 -> "Data.Word.Word64"-    FieldDescriptorProto'TYPE_INT32 -> "Data.Int.Int32"-    FieldDescriptorProto'TYPE_FIXED64 -> "Data.Word.Word64"-    FieldDescriptorProto'TYPE_FIXED32 -> "Data.Word.Word32"-    FieldDescriptorProto'TYPE_BOOL -> "Prelude.Bool"-    FieldDescriptorProto'TYPE_STRING -> "Data.Text.Text"-    FieldDescriptorProto'TYPE_GROUP-        | Message m <- definedFieldType fd env -> TyCon $ messageName m-        | otherwise -> error $ "expected TYPE_GROUP for type name"-                              ++ unpack (fd ^. typeName)-    FieldDescriptorProto'TYPE_MESSAGE-        | Message m <- definedFieldType fd env -> TyCon $ messageName m-        | otherwise -> error $ "expected TYPE_MESSAGE for type name"-                              ++ unpack (fd ^. typeName)-    FieldDescriptorProto'TYPE_BYTES -> "Data.ByteString.ByteString"-    FieldDescriptorProto'TYPE_UINT32 -> "Data.Word.Word32"-    FieldDescriptorProto'TYPE_ENUM-        | Enum e <- definedFieldType fd env -> TyCon $ enumName e-        | otherwise -> error $ "expected TYPE_ENUM for type name"-                              ++ unpack (fd ^. typeName)-    FieldDescriptorProto'TYPE_SFIXED32 -> "Data.Int.Int32"-    FieldDescriptorProto'TYPE_SFIXED64 -> "Data.Int.Int64"-    FieldDescriptorProto'TYPE_SINT32 -> "Data.Int.Int32"-    FieldDescriptorProto'TYPE_SINT64 -> "Data.Int.Int64"--hsFieldDefault :: SyntaxType -> Env QName -> FieldDescriptorProto -> Exp-hsFieldDefault syntaxType env fd-    = case fd ^. label of-          FieldDescriptorProto'LABEL_OPTIONAL-              | isDefaultingOptional syntaxType fd -> hsFieldValueDefault env fd-              | otherwise -> "Prelude.Nothing"-          FieldDescriptorProto'LABEL_REPEATED-              | Just _ <- getMapFields env fd -> "Data.Map.empty"-              | otherwise -> List []-          -- TODO: More sensible initialization of required fields.-          FieldDescriptorProto'LABEL_REQUIRED -> hsFieldValueDefault env fd--hsFieldValueDefault :: Env QName -> FieldDescriptorProto -> Exp-hsFieldValueDefault env fd = case fd ^. type' of-    FieldDescriptorProto'TYPE_MESSAGE -> "Data.Default.Class.def"-    FieldDescriptorProto'TYPE_GROUP -> "Data.Default.Class.def"-    FieldDescriptorProto'TYPE_ENUM-        | T.null def -> "Data.Default.Class.def"-        | Enum e <- definedFieldType fd env-        , Just v <- List.lookup def [ (enumValueDescriptor v ^. name, enumValueName v)-                                    | v <- enumValues e-                                    ]-            -> Con v-        | otherwise -> errorMessage "enum"-    -- The rest of the cases are for scalar fields that have a fieldDefault-    -- instance.-    _ | T.null def -> "Data.ProtoLens.fieldDefault"-    FieldDescriptorProto'TYPE_BOOL-        | def == "true" -> "Prelude.True"-        | def == "false" -> "Prelude.False"-        | otherwise -> errorMessage "bool"-    FieldDescriptorProto'TYPE_STRING-        -> "Data.Text.pack" @@ Lit (String $ T.unpack def)-    FieldDescriptorProto'TYPE_BYTES-        -> "Data.ByteString.pack"-                @@ List ((mkByte . fromEnum) <$> T.unpack def)-      where mkByte c-              | c > 0 && c < 255 = litInt $ fromIntegral c-              | otherwise = errorMessage "bytes"-    FieldDescriptorProto'TYPE_FLOAT -> defaultFrac $ T.unpack def-    FieldDescriptorProto'TYPE_DOUBLE -> defaultFrac $ T.unpack def-    -- Otherwise, assume it's an integral field:-    _ -> defaultInt $ T.unpack def-  where-    def = fd ^. defaultValue-    errorMessage fieldType-        = error $ "Bad default value " ++ show (T.unpack def)-                    ++ " in default value for " ++ fieldType ++ " field "-                    ++ unpack (fd ^. name)-    -- float/double fields can use nan, inf and -inf as default values.-    -- The Prelude doesn't provide names for them, so we implement-    -- them as division by zero.-    defaultFrac "nan" = "Prelude./" @@ litFrac 0 @@ litFrac 0-    defaultFrac "inf" = "Prelude./" @@ litFrac 1 @@ litFrac 0-    defaultFrac "-inf" = "Prelude./" @@ litFrac (negate 1) @@ litFrac 0-    defaultFrac s = case reads s of-        [(x, "")] -> litFrac $ toRational (x :: Double)-        _ -> errorMessage "fractional"-    defaultInt s = case reads s of-        [(x, "")] -> litInt x-        _ -> errorMessage "integral"---- | A lens to access an internal field.------   lens _Foo_bar (\x__ y__ -> x__ { _Foo_bar = y__ })-rawFieldAccessor :: QName -> Exp-rawFieldAccessor f = "Lens.Family2.Unchecked.lens" @@ getter @@ setter-  where-    getter = Var f-    setter = Lambda noLoc ["x__", "y__"]-                    $ RecUpdate "x__" [FieldUpdate f "y__"]--descriptorExpr :: SyntaxType -> Env QName -> MessageInfo Name -> Exp-descriptorExpr syntaxType env m-    -- let foo__field_descriptor = ...-    --     ...-    -- in Message.MessageDescriptor-    --      (Data.Map.fromList [(Tag 1, foo__field_descriptor),...])-    --      (Data.Map.fromList [("foo", foo__field_descriptor),...])-    ---    -- (Note that the two maps have the same elements but different keys.  We-    -- use the "let" expression to share elements between the two maps.)-    = Let (BDecls $ map fieldDescriptorVarBind $ messageFields m)-        $ "Data.ProtoLens.MessageDescriptor"-          @@ ("Data.Map.fromList" @@ List fieldsByTag)-          @@ ("Data.Map.fromList" @@ List fieldsByTextFormatName)-  where-    fieldsByTag =-        [Tuple Boxed-              [ t, fieldDescriptorVar f ]-              | f <- messageFields m-              , let t = "Data.ProtoLens.Tag"-                          @@ litInt (fromIntegral-                                      $ fieldDescriptor f ^. number)-              ]-    fieldsByTextFormatName =-        [Tuple Boxed-              [ t, fieldDescriptorVar f ]-              | f <- messageFields m-              , let t = Lit $ Syntax.String $ T.unpack-                            $ textFormatFieldName env (fieldDescriptor f)-              ]-    fieldDescriptorVar = fromString . fieldDescriptorName-    fieldDescriptorName f-        = fromString $ overloadedField f ++ "__field_descriptor"-    fieldDescriptorVarBind f-        = FunBind-              [match (fromString $ fieldDescriptorName f) []-                  $ fieldDescriptorExpr syntaxType env f-              ]---- | Get the name of the field when used in a text format proto. Groups are--- special because their text format field name is the name of their type,--- not the name of the field in the descriptor (e.g. "Foo", not "foo").-textFormatFieldName :: Env QName -> FieldDescriptorProto -> T.Text-textFormatFieldName env descr = case descr ^. type' of-    FieldDescriptorProto'TYPE_GROUP-        | Message msg <- definedFieldType descr env-              -> messageDescriptor msg ^. name-        | otherwise -> error $ "expected TYPE_GROUP for type name"-                           ++ T.unpack (descr ^. typeName)-    _ -> descr ^. name--fieldDescriptorExpr :: SyntaxType -> Env QName -> FieldInfo-                    -> Exp-fieldDescriptorExpr syntaxType env f-    = "Data.ProtoLens.FieldDescriptor"-        -- Record the .proto field name as used in text format-        @@ Lit (Syntax.String $ T.unpack $ textFormatFieldName env fd)-        -- Force the type signature since it can't be inferred for Map entry-        -- types.-        @@ ExpTypeSig noLoc (fieldTypeDescriptorExpr (fd ^. type'))-                      ("Data.ProtoLens.FieldTypeDescriptor"-                          @@ hsFieldType env fd)-        @@ fieldAccessorExpr syntaxType env f-  where-    fd = fieldDescriptor f--fieldAccessorExpr :: SyntaxType -> Env QName -> FieldInfo -> Exp--- (PlainField Required foo), (OptionalField foo), etc...-fieldAccessorExpr syntaxType env f = accessorCon @@ Var (UnQual hsFieldName)-  where-    fd = fieldDescriptor f-    accessorCon = case fd ^. label of-          FieldDescriptorProto'LABEL_REQUIRED-              -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Required"-          FieldDescriptorProto'LABEL_OPTIONAL-              | isDefaultingOptional syntaxType fd-                  -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Optional"-              | otherwise -> "Data.ProtoLens.OptionalField"-          FieldDescriptorProto'LABEL_REPEATED-              | Just (k, v) <- getMapFields env fd-                  -> "Data.ProtoLens.MapField"-                         @@ fromString (overloadedField k)-                         @@ fromString (overloadedField v)-              | otherwise -> "Data.ProtoLens.RepeatedField"-                  @@ if isPackedField syntaxType fd-                        then "Data.ProtoLens.Packed"-                        else "Data.ProtoLens.Unpacked"-    hsFieldName-        = Ident $ case fd ^. label of-              FieldDescriptorProto'LABEL_OPTIONAL-                  | not (isDefaultingOptional syntaxType fd)-                      -> "maybe'" ++ overloadedField f-              _ -> overloadedField f--isDefaultingOptional :: SyntaxType -> FieldDescriptorProto -> Bool-isDefaultingOptional syntaxType f-    = f ^. label == FieldDescriptorProto'LABEL_OPTIONAL-          && syntaxType == Proto3-          && f ^. type' /= FieldDescriptorProto'TYPE_MESSAGE-          -- For now, we treat oneof's like proto2 optional fields.-          && isNothing (f ^. maybe'oneofIndex)--isPackedField :: SyntaxType -> FieldDescriptorProto -> Bool-isPackedField s f = case f ^. options . maybe'packed of-    Just t -> t-    -- proto3 fields are packed by default.  Annoyingly, we need to-    -- implement this logic manually rather than relying on protoc.-    Nothing -> s == Proto3-                && f ^. type' `notElem`-                      [ FieldDescriptorProto'TYPE_MESSAGE-                      , FieldDescriptorProto'TYPE_GROUP-                      , FieldDescriptorProto'TYPE_STRING-                      , FieldDescriptorProto'TYPE_BYTES-                      ]--fieldTypeDescriptorExpr :: FieldDescriptorProto'Type -> Exp-fieldTypeDescriptorExpr =-    (\n -> fromString $ "Data.ProtoLens." ++ n ++ "Field") . \t -> case t of-    FieldDescriptorProto'TYPE_DOUBLE -> "Double"-    FieldDescriptorProto'TYPE_FLOAT -> "Float"-    FieldDescriptorProto'TYPE_INT64 -> "Int64"-    FieldDescriptorProto'TYPE_UINT64 -> "UInt64"-    FieldDescriptorProto'TYPE_INT32 -> "Int32"-    FieldDescriptorProto'TYPE_FIXED64 -> "Fixed64"-    FieldDescriptorProto'TYPE_FIXED32 -> "Fixed32"-    FieldDescriptorProto'TYPE_BOOL -> "Bool"-    FieldDescriptorProto'TYPE_STRING -> "String"-    FieldDescriptorProto'TYPE_GROUP -> "Group"-    FieldDescriptorProto'TYPE_MESSAGE -> "Message"-    FieldDescriptorProto'TYPE_BYTES -> "Bytes"-    FieldDescriptorProto'TYPE_UINT32 -> "UInt32"-    FieldDescriptorProto'TYPE_ENUM -> "Enum"-    FieldDescriptorProto'TYPE_SFIXED32 -> "SFixed32"-    FieldDescriptorProto'TYPE_SFIXED64 -> "SFixed64"-    FieldDescriptorProto'TYPE_SINT32 -> "SInt32"-    FieldDescriptorProto'TYPE_SINT64 -> "SInt64"
+ src/Data/ProtoLens/Compiler/ModuleName.hs view
@@ -0,0 +1,23 @@+module Data.ProtoLens.Compiler.ModuleName+    ( protoModuleName ) where++import Data.Char (toUpper)+import Data.List (intercalate)+import System.FilePath++-- | Get the Haskell module name corresponding to a given .proto file.+protoModuleName :: FilePath -> String+protoModuleName path = fixModuleName rawModuleName+  where+    fixModuleName "" = ""+    -- Characters allowed in Bazel filenames but not in module names:+    fixModuleName ('.':c:cs) = '.' : toUpper c : fixModuleName cs+    fixModuleName ('_':c:cs) = toUpper c : fixModuleName cs+    fixModuleName ('-':c:cs) = toUpper c : fixModuleName cs+    fixModuleName (c:cs) = c : fixModuleName cs+    rawModuleName = intercalate "."+                        . (prefix :)+                        . splitDirectories $ dropExtension path++prefix :: String+prefix = "Proto"
− src/Data/ProtoLens/Compiler/Plugin.hs
@@ -1,125 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd------ Code for writing protocol compiler plugins.--{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Plugin-    ( ProtoFileName-    , ProtoFile(..)-    , analyzeProtoFiles-    , collectEnvFromDeps-    , outputFilePath-    , moduleName-    , moduleNameStr-    ) where--import Data.Char (toUpper)-import Data.List (foldl', intercalate)-import qualified Data.Map.Strict as Map-import Data.Map.Strict (Map, unions, (!))-import Data.Monoid ((<>))-import qualified Data.Text as T-import Data.Text (Text)-import Language.Haskell.Exts.Syntax (ModuleName(..), Name(..), QName(..))-import Lens.Family2-import Proto.Google.Protobuf.Descriptor-    (FileDescriptorProto, name, dependency, publicDependency)-import System.FilePath (dropExtension, splitDirectories)---import Data.ProtoLens.Compiler.Definitions---- | The filename of an input .proto file.-type ProtoFileName = Text--data ProtoFile = ProtoFile-    { descriptor :: FileDescriptorProto-    , haskellModule :: ModuleName-    , definitions :: Env Name-    -- | The names of proto files exported (transitively, via "import public"-    -- decl) by this file.-    , exports :: [ProtoFileName]-    , exportedEnv :: Env QName-    }---- Given a list of FileDescriptorProtos, collect information about each file--- into a map of 'ProtoFile's keyed by 'ProtoFileName'.-analyzeProtoFiles :: Text -> [FileDescriptorProto] -> Map ProtoFileName ProtoFile-analyzeProtoFiles modulePrefix files =-    Map.fromList [ (f ^. name, ingestFile f) | f <- files ]-  where-    filesByName = Map.fromList [(f ^. name, f) | f <- files]-    moduleNames = fmap (moduleName modulePrefix) filesByName-    -- The definitions in each input proto file, indexed by filename.-    definitionsByName = fmap collectDefinitions filesByName-    -- The exports from each .proto file (including any "public import"-    -- dependencies), as they appear to other modules that are importing them;-    -- i.e., qualified by module name.-    exportsByName = transitiveExports files-    localExports = Map.intersectionWith qualifyEnv moduleNames definitionsByName-    exportedEnvs = fmap (\es -> unions [localExports ! e | e <- es]) exportsByName--    ingestFile f = ProtoFile-        { descriptor = f-        , haskellModule = moduleNames ! n-        , definitions = definitionsByName ! n-        , exports = exportsByName ! n-        , exportedEnv = exportedEnvs ! n-        }-      where-        n = f ^. name--collectEnvFromDeps :: [ProtoFileName] -> Map ProtoFileName ProtoFile -> Env QName-collectEnvFromDeps deps filesByName =-    unions $ fmap (exportedEnv . (filesByName !)) deps---- | Get the output file path (for CodeGeneratorResponse.File) for a Haskell--- ModuleName.-outputFilePath :: String -> Text-outputFilePath n = T.replace "." "/" (T.pack n) <> ".hs"---- | Get the Haskell 'ModuleName' corresponding to a given .proto file.-moduleName :: Text -> FileDescriptorProto -> ModuleName-moduleName modulePrefix fd = ModuleName (moduleNameStr modulePrefix fd)---- | Get the Haskell module name corresponding to a given .proto file.-moduleNameStr :: Text -> FileDescriptorProto -> String-moduleNameStr prefix fd = fixModuleName rawModuleName-  where-    path = fd ^. name-    fixModuleName "" = ""-    -- Characters allowed in Bazel filenames but not in module names:-    fixModuleName ('.':c:cs) = '.' : toUpper c : fixModuleName cs-    fixModuleName ('_':c:cs) = toUpper c : fixModuleName cs-    fixModuleName ('-':c:cs) = toUpper c : fixModuleName cs-    fixModuleName (c:cs) = c : fixModuleName cs-    rawModuleName = intercalate "." $ (T.unpack prefix :)-                        $ splitDirectories $ dropExtension-                        $ T.unpack path---- | Given a list of .proto files (topologically sorted), determine which--- files' definitions are exported by which files.------ Files only export their own definitions, along with the definitions exported--- by any "import public" declarations.-transitiveExports :: [FileDescriptorProto] -> Map ProtoFileName [ProtoFileName]--- Accumulate the transitive dependencies by folding over the files in--- topological order.-transitiveExports = foldl' setExportsFromFile Map.empty-  where-    setExportsFromFile :: Map ProtoFileName [ProtoFileName]-                       -> FileDescriptorProto-                       -> Map ProtoFileName [ProtoFileName]-    setExportsFromFile prevExports fd-        = flip (Map.insert n) prevExports $-            n : concat [ prevExports ! ((fd ^. dependency) !! fromIntegral i)-                       -- Note that publicDependency is a list of indices into-                       -- the dependency list.-                       | i <- fd ^. publicDependency-                       ]-      where n = fd ^. name-
− src/Data/ProtoLens/Setup.hs
@@ -1,195 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd---- | Helper functions to generate proto files as part of a @Setup.hs@ script.------ These functions assume that the @proto-lens-protoc@ executable is on the--- PATH, and throw an exception otherwise.  That executable will be installed--- automatically as part of installing this package; in particular, it should--- be enough to just list `proto-lens-protoc` in a user package's--- `build-dependencies`.------ See @README.md@ for instructions on how to use proto-lens with Cabal.-{-# LANGUAGE CPP #-}-module Data.ProtoLens.Setup-    ( defaultMainGeneratingProtos-    , defaultMainGeneratingSpecificProtos-    , generatingProtos-    , generatingSpecificProtos-    , generateProtos-    ) where--#if __GLASGOW_HASKELL__ < 709-import Data.Functor ((<$>))-#endif--import Distribution.PackageDescription-    ( PackageDescription(..)-    , benchmarkBuildInfo-    , buildInfo-    , extraSrcFiles-    , hsSourceDirs-    , libBuildInfo-    , testBuildInfo-    )-import Distribution.Simple.BuildPaths (autogenModulesDir)-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)-import Distribution.Simple.Utils (matchFileGlob)-import Distribution.Simple-    ( defaultMainWithHooks-    , simpleUserHooks-    , UserHooks(..)-    )-import System.FilePath-    ( (</>)-    , equalFilePath-    , isRelative-    , makeRelative-    , takeExtension-    )-import System.Directory (createDirectoryIfMissing, findExecutable)-import System.Process (callProcess)---- | This behaves the same as 'Distribution.Simple.defaultMain', but--- auto-generates Haskell files from the .proto files listed in--- the @.cabal@ file under @extra-source-files@ which are located under the--- given root directory.------ Writes the generated files to the autogen directory (@dist\/build\/autogen@--- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).------ Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.-defaultMainGeneratingProtos-    :: FilePath -- ^ The root directory under which .proto files can be found.-    -> IO ()-defaultMainGeneratingProtos root-    = defaultMainWithHooks $ generatingProtos root simpleUserHooks---- | This behaves the same as 'Distribution.Simple.defaultMain', but--- auto-generates Haskell files from the .proto files listed. The given .proto--- files should be under the given root directory.------ Writes the generated files to the autogen directory (@dist\/build\/autogen@--- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).------ Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.-defaultMainGeneratingSpecificProtos-    :: FilePath -- ^ The root directory under which .proto files can be found.-    -> (PackageDescription -> IO [FilePath])-    -- ^ A function to return a list of .proto files. Takes the Cabal package-    -- description as input. Non-absolute paths are treated as relative to the-    -- provided root directory.-    -> IO ()-defaultMainGeneratingSpecificProtos root getProtos-    = defaultMainWithHooks-    $ generatingSpecificProtos root getProtos simpleUserHooks---- | Augment the given 'UserHooks' to auto-generate Haskell files from the--- .proto files listed in the @.cabal@ file under @extra-source-files@ which--- are located under the given root directory.------ Writes the generated files to the autogen directory (@dist\/build\/autogen@--- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).------ Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.-generatingProtos-    :: FilePath -- ^ The root directory under which .proto files can be found.-    -> UserHooks -> UserHooks-generatingProtos root = generatingSpecificProtos root getProtos-  where-    getProtos p = do-      -- Replicate Cabal's own logic for parsing file globs.-      files <- concat <$> mapM matchFileGlob (extraSrcFiles p)-      pure $ map (makeRelative root)-           $ filter (isSubdirectoryOf root)-           $ filter (\f -> takeExtension f == ".proto")-               files---- | Augment the given 'UserHooks' to auto-generate Haskell files from the--- .proto files returned by a function @getProtos@.------ Writes the generated files to the autogen directory (@dist\/build\/autogen@--- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).------ Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.-generatingSpecificProtos-    :: FilePath -- ^ The root directory under which .proto files can be found.-    -> (PackageDescription -> IO [FilePath])-    -- ^ A function to return a list of .proto files. Takes the Cabal package-    -- description as input. Non-absolute paths are treated as relative to the-    -- provided root directory.-    -> UserHooks -> UserHooks-generatingSpecificProtos root getProtos hooks = hooks-    { buildHook = \p l h f -> generateSources p l >> buildHook hooks p l h f-    , haddockHook = \p l h f -> generateSources p l >> haddockHook hooks p l h f-    , replHook = \p l h f args -> generateSources p l-                                        >> replHook hooks p l h f args-    , sDistHook = \p maybe_l h f -> case maybe_l of-            Nothing -> error "Can't run protoc; run 'cabal configure' first."-            Just l -> do-                        generateSources p l-                        sDistHook hooks (fudgePackageDesc l p) maybe_l h f-    }-  where-    generateSources p l = do-        -- Applying 'root </>' does nothing if the path is already absolute.-        files <- map (root </>) <$> getProtos p-        generateProtos root (autogenModulesDir l) files---- | Add the autogen directory to the hs-source-dirs of all the targets in the--- .cabal file.  Used to fool 'sdist' by pointing it to the generated source--- files.-fudgePackageDesc :: LocalBuildInfo -> PackageDescription -> PackageDescription-fudgePackageDesc lbi p = p-    { library =-        (\lib -> lib { libBuildInfo = fudgeBuildInfo (libBuildInfo lib) })-            <$> library p-    , executables =-        (\exe -> exe { buildInfo = fudgeBuildInfo (buildInfo exe) })-            <$> executables p-    , testSuites =-        (\test -> test { testBuildInfo = fudgeBuildInfo (testBuildInfo test) })-            <$> testSuites p-    , benchmarks =-        (\bench -> bench { benchmarkBuildInfo =-                              fudgeBuildInfo (benchmarkBuildInfo bench) })-            <$> benchmarks p-    }-  where-    fudgeBuildInfo bi =-        bi { hsSourceDirs = autogenModulesDir lbi : hsSourceDirs bi }---- | Returns whether the @root@ is a parent folder of @f@.-isSubdirectoryOf :: FilePath -> FilePath -> Bool-isSubdirectoryOf root f-    = isRelative f-      -- Note: `makeRelative root f` returns `f` when f doesn't live under the-      -- root.-      && equalFilePath f (root </> makeRelative root f)---- | Run the proto compiler to generate Haskell files from the given .proto files.------ Writes the generated files to the autogen directory (@dist\/build\/autogen@--- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).------ Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.-generateProtos-    :: FilePath -- ^ The root directory under which .proto files can be found.-    -> FilePath -- ^ The output directory for the generated Haskell files.-    -> [FilePath] -- ^ The .proto files to process.-    -> IO ()-generateProtos root output files = do-    maybeProtoLensProtoc <- findExecutable "proto-lens-protoc"-    case maybeProtoLensProtoc of-        Nothing -> error "Couldn't find executable proto-lens-protoc."-        Just protoLensProtoc -> do-            createDirectoryIfMissing True output-            callProcess "protoc" $-                [ "--plugin=protoc-gen-haskell=" ++ protoLensProtoc-                , "--haskell_out=" ++ output-                , "--proto_path=" ++ root-                ]-                ++ files
− src/protoc-gen-haskell.hs
@@ -1,96 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd--{-# LANGUAGE OverloadedStrings #-}-module Main where--import qualified Data.ByteString as B-import Data.Char (toUpper)-import Data.List (foldl', intercalate)-import qualified Data.Map.Strict as Map-import Data.Map.Strict (Map, unions, (!))-import Data.Monoid ((<>))-import qualified Data.Set as Set-import qualified Data.Text as T-import Data.Text (Text, pack)-import Data.ProtoLens (decodeMessage, def, encodeMessage)-import Language.Haskell.Exts.Pretty (prettyPrint)-import Language.Haskell.Exts.Syntax (ModuleName(..), Name(..), QName(..))-import Lens.Family2-import Proto.Google.Protobuf.Compiler.Plugin-    ( CodeGeneratorRequest-    , CodeGeneratorResponse-    , content-    , file-    , fileToGenerate-    , parameter-    , protoFile-    )-import Proto.Google.Protobuf.Descriptor-    (FileDescriptorProto, name, dependency, publicDependency)-import System.Environment (getProgName)-import System.Exit (exitWith, ExitCode(..))-import System.IO as IO-import System.FilePath (dropExtension, replaceExtension, splitDirectories)-import Text.Read (readEither)--import Data.ProtoLens.Compiler.Definitions-import Data.ProtoLens.Compiler.Generate-import Data.ProtoLens.Compiler.Plugin-import System.Environment (getArgs)--main = do-    contents <- B.getContents-    progName <- getProgName-    args <- getArgs-    case decodeMessage contents of-        Left e -> IO.hPutStrLn stderr e >> exitWith (ExitFailure 1)-        Right x -> B.putStr $ encodeMessage $ makeResponse progName x--makeResponse :: String -> CodeGeneratorRequest -> CodeGeneratorResponse-makeResponse prog request = let-    useReexport = case T.unpack $ request ^. parameter of-                    "" -> reexported-                    "no-reexports" -> id-                    p -> error $ "Error reading parameter: " ++ show p-    outputFiles = generateFiles useReexport header-                      (request ^. protoFile)-                      (request ^. fileToGenerate)-    header :: FileDescriptorProto -> Text-    header f = "{- This file was auto-generated from "-                <> (f ^. name)-                <> " by the " <> pack prog <> " program. -}\n"-    in def & file .~ [ def & name .~ outputName-                           & content .~ outputContent-                     | (outputName, outputContent) <- outputFiles-                     ]---generateFiles :: ModifyImports -> (FileDescriptorProto -> Text)-              -> [FileDescriptorProto] -> [ProtoFileName] -> [(Text, Text)]-generateFiles modifyImports header files toGenerate = let-  modulePrefix = "Proto"-  filesByName = analyzeProtoFiles modulePrefix files-  -- The contents of the generated Haskell file for a given .proto file.-  buildFile file = let-      deps = descriptor file ^. dependency-      imports = Set.toAscList $ Set.fromList-                  [ haskellModule (filesByName ! exportName)-                  | dep <- deps-                  , exportName <- exports (filesByName ! dep)-                  ]-      in generateModule (haskellModule file) imports-             (fileSyntaxType (descriptor file))-             modifyImports-             (definitions file)-             (collectEnvFromDeps deps filesByName)-  in [ ( outputFilePath . (\(ModuleName n) -> n) . haskellModule $ file-       , header (descriptor file) <> pack (prettyPrint $ buildFile file)-       )-     | fileName <- toGenerate-     , let file = filesByName ! fileName-     ]-