/* Generated by Cython 3.1.1 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "define_macros": [
            [
                "_WIN32_WINNT",
                1536
            ],
            [
                "GRPC_XDS_USER_AGENT_NAME_SUFFIX",
                "\"Python\""
            ],
            [
                "GRPC_XDS_USER_AGENT_VERSION_SUFFIX",
                "\"1.73.1\""
            ],
            [
                "HAVE_CONFIG_H",
                1
            ],
            [
                "GRPC_ENABLE_FORK_SUPPORT",
                1
            ],
            [
                "GRPC_DO_NOT_INSTANTIATE_POSIX_POLLER",
                1
            ],
            [
                "__STDC_FORMAT_MACROS",
                null
            ],
            [
                "PyMODINIT_FUNC",
                "extern \"C\" __attribute__((visibility (\"default\"))) PyObject*"
            ],
            [
                "GRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK",
                1
            ]
        ],
        "depends": [
            "include/grpc/byte_buffer_reader.h",
            "include/grpc/compression.h",
            "include/grpc/credentials.h",
            "include/grpc/grpc.h",
            "include/grpc/grpc_security.h",
            "include/grpc/grpc_security_constants.h",
            "include/grpc/impl/codegen/compression_types.h",
            "include/grpc/impl/codegen/grpc_types.h",
            "include/grpc/impl/propagation_bits.h",
            "include/grpc/support/alloc.h",
            "src/core/config/config_vars.h",
            "src/core/lib/iomgr/iomgr_internal.h",
            "src/core/lib/iomgr/timer_manager.h",
            "src/core/lib/surface/call.h",
            "src/core/telemetry/call_tracer.h"
        ],
        "extra_compile_args": [
            "-std=c++17",
            "-fvisibility=hidden",
            "-fno-wrapv",
            "-fno-exceptions",
            "-msse2"
        ],
        "extra_link_args": [
            "-lpthread",
            "-static-libgcc",
            "-static-libstdc++"
        ],
        "include_dirs": [
            "src/python/grpcio",
            "include",
            ".",
            "third_party/abseil-cpp",
            "third_party/address_sorting/include",
            "third_party/cares/cares/include",
            "third_party/cares",
            "third_party/cares/cares",
            "third_party/cares/config_linux",
            "third_party/re2",
            "third_party/boringssl-with-bazel/src/include",
            "third_party/upb",
            "src/core/ext/upb-gen",
            "src/core/ext/upbdefs-gen",
            "third_party/utf8_range",
            "third_party/xxhash",
            "third_party/zlib"
        ],
        "language": "c++",
        "libraries": [
            "rt",
            "m"
        ],
        "name": "grpc._cython.cygrpc",
        "sources": [
            "src/python/grpcio/grpc/_cython/cygrpc.pyx",
            "src/core/call/call_arena_allocator.cc",
            "src/core/call/call_filters.cc",
            "src/core/call/call_spine.cc",
            "src/core/call/call_state.cc",
            "src/core/call/client_call.cc",
            "src/core/call/interception_chain.cc",
            "src/core/call/message.cc",
            "src/core/call/metadata.cc",
            "src/core/call/metadata_batch.cc",
            "src/core/call/metadata_info.cc",
            "src/core/call/parsed_metadata.cc",
            "src/core/call/request_buffer.cc",
            "src/core/call/security_context.cc",
            "src/core/call/server_call.cc",
            "src/core/call/status_util.cc",
            "src/core/channelz/channel_trace.cc",
            "src/core/channelz/channelz.cc",
            "src/core/channelz/channelz_registry.cc",
            "src/core/client_channel/backup_poller.cc",
            "src/core/client_channel/client_channel.cc",
            "src/core/client_channel/client_channel_factory.cc",
            "src/core/client_channel/client_channel_filter.cc",
            "src/core/client_channel/client_channel_plugin.cc",
            "src/core/client_channel/client_channel_service_config.cc",
            "src/core/client_channel/direct_channel.cc",
            "src/core/client_channel/dynamic_filters.cc",
            "src/core/client_channel/global_subchannel_pool.cc",
            "src/core/client_channel/lb_metadata.cc",
            "src/core/client_channel/load_balanced_call_destination.cc",
            "src/core/client_channel/local_subchannel_pool.cc",
            "src/core/client_channel/retry_filter.cc",
            "src/core/client_channel/retry_filter_legacy_call_data.cc",
            "src/core/client_channel/retry_interceptor.cc",
            "src/core/client_channel/retry_service_config.cc",
            "src/core/client_channel/retry_throttle.cc",
            "src/core/client_channel/subchannel.cc",
            "src/core/client_channel/subchannel_pool_interface.cc",
            "src/core/client_channel/subchannel_stream_client.cc",
            "src/core/config/config_vars.cc",
            "src/core/config/config_vars_non_generated.cc",
            "src/core/config/core_configuration.cc",
            "src/core/config/load_config.cc",
            "src/core/credentials/call/call_creds_util.cc",
            "src/core/credentials/call/composite/composite_call_credentials.cc",
            "src/core/credentials/call/external/aws_external_account_credentials.cc",
            "src/core/credentials/call/external/aws_request_signer.cc",
            "src/core/credentials/call/external/external_account_credentials.cc",
            "src/core/credentials/call/external/file_external_account_credentials.cc",
            "src/core/credentials/call/external/url_external_account_credentials.cc",
            "src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc",
            "src/core/credentials/call/iam/iam_credentials.cc",
            "src/core/credentials/call/json_util.cc",
            "src/core/credentials/call/jwt/json_token.cc",
            "src/core/credentials/call/jwt/jwt_credentials.cc",
            "src/core/credentials/call/jwt/jwt_verifier.cc",
            "src/core/credentials/call/oauth2/oauth2_credentials.cc",
            "src/core/credentials/call/plugin/plugin_credentials.cc",
            "src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc",
            "src/core/credentials/transport/alts/alts_credentials.cc",
            "src/core/credentials/transport/alts/alts_security_connector.cc",
            "src/core/credentials/transport/alts/check_gcp_environment.cc",
            "src/core/credentials/transport/alts/check_gcp_environment_linux.cc",
            "src/core/credentials/transport/alts/check_gcp_environment_no_op.cc",
            "src/core/credentials/transport/alts/check_gcp_environment_windows.cc",
            "src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc",
            "src/core/credentials/transport/alts/grpc_alts_credentials_options.cc",
            "src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc",
            "src/core/credentials/transport/channel_creds_registry_init.cc",
            "src/core/credentials/transport/composite/composite_channel_credentials.cc",
            "src/core/credentials/transport/fake/fake_credentials.cc",
            "src/core/credentials/transport/fake/fake_security_connector.cc",
            "src/core/credentials/transport/google_default/credentials_generic.cc",
            "src/core/credentials/transport/google_default/google_default_credentials.cc",
            "src/core/credentials/transport/insecure/insecure_credentials.cc",
            "src/core/credentials/transport/insecure/insecure_security_connector.cc",
            "src/core/credentials/transport/local/local_credentials.cc",
            "src/core/credentials/transport/local/local_security_connector.cc",
            "src/core/credentials/transport/security_connector.cc",
            "src/core/credentials/transport/ssl/ssl_credentials.cc",
            "src/core/credentials/transport/ssl/ssl_security_connector.cc",
            "src/core/credentials/transport/tls/certificate_provider_registry.cc",
            "src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc",
            "src/core/credentials/transport/tls/grpc_tls_certificate_match.cc",
            "src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc",
            "src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc",
            "src/core/credentials/transport/tls/grpc_tls_credentials_options.cc",
            "src/core/credentials/transport/tls/grpc_tls_crl_provider.cc",
            "src/core/credentials/transport/tls/load_system_roots_fallback.cc",
            "src/core/credentials/transport/tls/load_system_roots_supported.cc",
            "src/core/credentials/transport/tls/load_system_roots_windows.cc",
            "src/core/credentials/transport/tls/ssl_utils.cc",
            "src/core/credentials/transport/tls/tls_credentials.cc",
            "src/core/credentials/transport/tls/tls_security_connector.cc",
            "src/core/credentials/transport/tls/tls_utils.cc",
            "src/core/credentials/transport/transport_credentials.cc",
            "src/core/credentials/transport/xds/xds_credentials.cc",
            "src/core/ext/filters/backend_metrics/backend_metric_filter.cc",
            "src/core/ext/filters/census/grpc_context.cc",
            "src/core/ext/filters/channel_idle/idle_filter_state.cc",
            "src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc",
            "src/core/ext/filters/fault_injection/fault_injection_filter.cc",
            "src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc",
            "src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc",
            "src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc",
            "src/core/ext/filters/http/client/http_client_filter.cc",
            "src/core/ext/filters/http/client_authority_filter.cc",
            "src/core/ext/filters/http/http_filters_plugin.cc",
            "src/core/ext/filters/http/message_compress/compression_filter.cc",
            "src/core/ext/filters/http/server/http_server_filter.cc",
            "src/core/ext/filters/message_size/message_size_filter.cc",
            "src/core/ext/filters/rbac/rbac_filter.cc",
            "src/core/ext/filters/rbac/rbac_service_config_parser.cc",
            "src/core/ext/filters/stateful_session/stateful_session_filter.cc",
            "src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc",
            "src/core/ext/transport/chttp2/alpn/alpn.cc",
            "src/core/ext/transport/chttp2/chttp2_plugin.cc",
            "src/core/ext/transport/chttp2/client/chttp2_connector.cc",
            "src/core/ext/transport/chttp2/server/chttp2_server.cc",
            "src/core/ext/transport/chttp2/transport/bin_decoder.cc",
            "src/core/ext/transport/chttp2/transport/bin_encoder.cc",
            "src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc",
            "src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
            "src/core/ext/transport/chttp2/transport/decode_huff.cc",
            "src/core/ext/transport/chttp2/transport/flow_control.cc",
            "src/core/ext/transport/chttp2/transport/frame.cc",
            "src/core/ext/transport/chttp2/transport/frame_data.cc",
            "src/core/ext/transport/chttp2/transport/frame_goaway.cc",
            "src/core/ext/transport/chttp2/transport/frame_ping.cc",
            "src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
            "src/core/ext/transport/chttp2/transport/frame_security.cc",
            "src/core/ext/transport/chttp2/transport/frame_settings.cc",
            "src/core/ext/transport/chttp2/transport/frame_window_update.cc",
            "src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
            "src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parse_result.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parser.cc",
            "src/core/ext/transport/chttp2/transport/hpack_parser_table.cc",
            "src/core/ext/transport/chttp2/transport/http2_settings.cc",
            "src/core/ext/transport/chttp2/transport/huffsyms.cc",
            "src/core/ext/transport/chttp2/transport/parsing.cc",
            "src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc",
            "src/core/ext/transport/chttp2/transport/ping_callbacks.cc",
            "src/core/ext/transport/chttp2/transport/ping_rate_policy.cc",
            "src/core/ext/transport/chttp2/transport/stream_lists.cc",
            "src/core/ext/transport/chttp2/transport/varint.cc",
            "src/core/ext/transport/chttp2/transport/write_size_policy.cc",
            "src/core/ext/transport/chttp2/transport/writing.cc",
            "src/core/ext/transport/inproc/inproc_transport.cc",
            "src/core/ext/transport/inproc/legacy_inproc_transport.cc",
            "src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c",
            "src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/annotations.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/http.upb_minitable.c",
            "src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c",
            "src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c",
            "src/core/ext/upb-gen/google/rpc/status.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c",
            "src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c",
            "src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c",
            "src/core/ext/upb-gen/validate/validate.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c",
            "src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c",
            "src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c",
            "src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c",
            "src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c",
            "src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c",
            "src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/http.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c",
            "src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c",
            "src/core/ext/upbdefs-gen/validate/validate.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c",
            "src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c",
            "src/core/filter/auth/client_auth_filter.cc",
            "src/core/filter/auth/server_auth_filter.cc",
            "src/core/filter/blackboard.cc",
            "src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc",
            "src/core/handshaker/handshaker.cc",
            "src/core/handshaker/handshaker_registry.cc",
            "src/core/handshaker/http_connect/http_connect_handshaker.cc",
            "src/core/handshaker/http_connect/http_proxy_mapper.cc",
            "src/core/handshaker/http_connect/xds_http_proxy_mapper.cc",
            "src/core/handshaker/proxy_mapper_registry.cc",
            "src/core/handshaker/security/legacy_secure_endpoint.cc",
            "src/core/handshaker/security/secure_endpoint.cc",
            "src/core/handshaker/security/security_handshaker.cc",
            "src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc",
            "src/core/lib/address_utils/parse_address.cc",
            "src/core/lib/address_utils/sockaddr_utils.cc",
            "src/core/lib/channel/channel_args.cc",
            "src/core/lib/channel/channel_args_preconditioning.cc",
            "src/core/lib/channel/channel_stack.cc",
            "src/core/lib/channel/channel_stack_builder.cc",
            "src/core/lib/channel/channel_stack_builder_impl.cc",
            "src/core/lib/channel/connected_channel.cc",
            "src/core/lib/channel/promise_based_filter.cc",
            "src/core/lib/compression/compression.cc",
            "src/core/lib/compression/compression_internal.cc",
            "src/core/lib/compression/message_compress.cc",
            "src/core/lib/debug/trace.cc",
            "src/core/lib/debug/trace_flags.cc",
            "src/core/lib/event_engine/ares_resolver.cc",
            "src/core/lib/event_engine/cf_engine/cf_engine.cc",
            "src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc",
            "src/core/lib/event_engine/cf_engine/dns_service_resolver.cc",
            "src/core/lib/event_engine/channel_args_endpoint_config.cc",
            "src/core/lib/event_engine/default_event_engine.cc",
            "src/core/lib/event_engine/default_event_engine_factory.cc",
            "src/core/lib/event_engine/event_engine.cc",
            "src/core/lib/event_engine/forkable.cc",
            "src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc",
            "src/core/lib/event_engine/posix_engine/ev_poll_posix.cc",
            "src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc",
            "src/core/lib/event_engine/posix_engine/internal_errqueue.cc",
            "src/core/lib/event_engine/posix_engine/lockfree_event.cc",
            "src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc",
            "src/core/lib/event_engine/posix_engine/posix_endpoint.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine_listener.cc",
            "src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc",
            "src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc",
            "src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc",
            "src/core/lib/event_engine/posix_engine/timer.cc",
            "src/core/lib/event_engine/posix_engine/timer_heap.cc",
            "src/core/lib/event_engine/posix_engine/timer_manager.cc",
            "src/core/lib/event_engine/posix_engine/traced_buffer_list.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc",
            "src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc",
            "src/core/lib/event_engine/resolved_address.cc",
            "src/core/lib/event_engine/shim.cc",
            "src/core/lib/event_engine/slice.cc",
            "src/core/lib/event_engine/slice_buffer.cc",
            "src/core/lib/event_engine/tcp_socket_utils.cc",
            "src/core/lib/event_engine/thread_local.cc",
            "src/core/lib/event_engine/thread_pool/thread_count.cc",
            "src/core/lib/event_engine/thread_pool/thread_pool_factory.cc",
            "src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc",
            "src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc",
            "src/core/lib/event_engine/time_util.cc",
            "src/core/lib/event_engine/utils.cc",
            "src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc",
            "src/core/lib/event_engine/windows/iocp.cc",
            "src/core/lib/event_engine/windows/native_windows_dns_resolver.cc",
            "src/core/lib/event_engine/windows/win_socket.cc",
            "src/core/lib/event_engine/windows/windows_endpoint.cc",
            "src/core/lib/event_engine/windows/windows_engine.cc",
            "src/core/lib/event_engine/windows/windows_listener.cc",
            "src/core/lib/event_engine/work_queue/basic_work_queue.cc",
            "src/core/lib/experiments/config.cc",
            "src/core/lib/experiments/experiments.cc",
            "src/core/lib/iomgr/buffer_list.cc",
            "src/core/lib/iomgr/call_combiner.cc",
            "src/core/lib/iomgr/cfstream_handle.cc",
            "src/core/lib/iomgr/closure.cc",
            "src/core/lib/iomgr/combiner.cc",
            "src/core/lib/iomgr/dualstack_socket_posix.cc",
            "src/core/lib/iomgr/endpoint.cc",
            "src/core/lib/iomgr/endpoint_cfstream.cc",
            "src/core/lib/iomgr/endpoint_pair_posix.cc",
            "src/core/lib/iomgr/endpoint_pair_windows.cc",
            "src/core/lib/iomgr/error.cc",
            "src/core/lib/iomgr/error_cfstream.cc",
            "src/core/lib/iomgr/ev_apple.cc",
            "src/core/lib/iomgr/ev_epoll1_linux.cc",
            "src/core/lib/iomgr/ev_poll_posix.cc",
            "src/core/lib/iomgr/ev_posix.cc",
            "src/core/lib/iomgr/event_engine_shims/closure.cc",
            "src/core/lib/iomgr/event_engine_shims/endpoint.cc",
            "src/core/lib/iomgr/event_engine_shims/tcp_client.cc",
            "src/core/lib/iomgr/exec_ctx.cc",
            "src/core/lib/iomgr/fork_posix.cc",
            "src/core/lib/iomgr/fork_windows.cc",
            "src/core/lib/iomgr/internal_errqueue.cc",
            "src/core/lib/iomgr/iocp_windows.cc",
            "src/core/lib/iomgr/iomgr.cc",
            "src/core/lib/iomgr/iomgr_internal.cc",
            "src/core/lib/iomgr/iomgr_posix.cc",
            "src/core/lib/iomgr/iomgr_posix_cfstream.cc",
            "src/core/lib/iomgr/iomgr_windows.cc",
            "src/core/lib/iomgr/lockfree_event.cc",
            "src/core/lib/iomgr/polling_entity.cc",
            "src/core/lib/iomgr/pollset.cc",
            "src/core/lib/iomgr/pollset_set.cc",
            "src/core/lib/iomgr/pollset_set_windows.cc",
            "src/core/lib/iomgr/pollset_windows.cc",
            "src/core/lib/iomgr/resolve_address.cc",
            "src/core/lib/iomgr/resolve_address_posix.cc",
            "src/core/lib/iomgr/resolve_address_windows.cc",
            "src/core/lib/iomgr/sockaddr_utils_posix.cc",
            "src/core/lib/iomgr/socket_factory_posix.cc",
            "src/core/lib/iomgr/socket_mutator.cc",
            "src/core/lib/iomgr/socket_utils_common_posix.cc",
            "src/core/lib/iomgr/socket_utils_linux.cc",
            "src/core/lib/iomgr/socket_utils_posix.cc",
            "src/core/lib/iomgr/socket_utils_windows.cc",
            "src/core/lib/iomgr/socket_windows.cc",
            "src/core/lib/iomgr/systemd_utils.cc",
            "src/core/lib/iomgr/tcp_client.cc",
            "src/core/lib/iomgr/tcp_client_cfstream.cc",
            "src/core/lib/iomgr/tcp_client_posix.cc",
            "src/core/lib/iomgr/tcp_client_windows.cc",
            "src/core/lib/iomgr/tcp_posix.cc",
            "src/core/lib/iomgr/tcp_server.cc",
            "src/core/lib/iomgr/tcp_server_posix.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
            "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
            "src/core/lib/iomgr/tcp_server_windows.cc",
            "src/core/lib/iomgr/tcp_windows.cc",
            "src/core/lib/iomgr/timer.cc",
            "src/core/lib/iomgr/timer_generic.cc",
            "src/core/lib/iomgr/timer_heap.cc",
            "src/core/lib/iomgr/timer_manager.cc",
            "src/core/lib/iomgr/unix_sockets_posix.cc",
            "src/core/lib/iomgr/unix_sockets_posix_noop.cc",
            "src/core/lib/iomgr/vsock.cc",
            "src/core/lib/iomgr/wakeup_fd_eventfd.cc",
            "src/core/lib/iomgr/wakeup_fd_nospecial.cc",
            "src/core/lib/iomgr/wakeup_fd_pipe.cc",
            "src/core/lib/iomgr/wakeup_fd_posix.cc",
            "src/core/lib/promise/activity.cc",
            "src/core/lib/promise/party.cc",
            "src/core/lib/promise/sleep.cc",
            "src/core/lib/resource_quota/api.cc",
            "src/core/lib/resource_quota/arena.cc",
            "src/core/lib/resource_quota/connection_quota.cc",
            "src/core/lib/resource_quota/memory_quota.cc",
            "src/core/lib/resource_quota/periodic_update.cc",
            "src/core/lib/resource_quota/resource_quota.cc",
            "src/core/lib/resource_quota/thread_quota.cc",
            "src/core/lib/security/authorization/audit_logging.cc",
            "src/core/lib/security/authorization/authorization_policy_provider_vtable.cc",
            "src/core/lib/security/authorization/evaluate_args.cc",
            "src/core/lib/security/authorization/grpc_authorization_engine.cc",
            "src/core/lib/security/authorization/grpc_server_authz_filter.cc",
            "src/core/lib/security/authorization/matchers.cc",
            "src/core/lib/security/authorization/rbac_policy.cc",
            "src/core/lib/security/authorization/stdout_logger.cc",
            "src/core/lib/slice/percent_encoding.cc",
            "src/core/lib/slice/slice.cc",
            "src/core/lib/slice/slice_buffer.cc",
            "src/core/lib/slice/slice_string_helpers.cc",
            "src/core/lib/surface/byte_buffer.cc",
            "src/core/lib/surface/byte_buffer_reader.cc",
            "src/core/lib/surface/call.cc",
            "src/core/lib/surface/call_details.cc",
            "src/core/lib/surface/call_log_batch.cc",
            "src/core/lib/surface/call_utils.cc",
            "src/core/lib/surface/channel.cc",
            "src/core/lib/surface/channel_create.cc",
            "src/core/lib/surface/channel_init.cc",
            "src/core/lib/surface/channel_stack_type.cc",
            "src/core/lib/surface/completion_queue.cc",
            "src/core/lib/surface/completion_queue_factory.cc",
            "src/core/lib/surface/connection_context.cc",
            "src/core/lib/surface/event_string.cc",
            "src/core/lib/surface/filter_stack_call.cc",
            "src/core/lib/surface/init.cc",
            "src/core/lib/surface/init_internally.cc",
            "src/core/lib/surface/lame_client.cc",
            "src/core/lib/surface/legacy_channel.cc",
            "src/core/lib/surface/metadata_array.cc",
            "src/core/lib/surface/validate_metadata.cc",
            "src/core/lib/surface/version.cc",
            "src/core/lib/transport/bdp_estimator.cc",
            "src/core/lib/transport/call_final_info.cc",
            "src/core/lib/transport/connectivity_state.cc",
            "src/core/lib/transport/error_utils.cc",
            "src/core/lib/transport/status_conversion.cc",
            "src/core/lib/transport/timeout_encoding.cc",
            "src/core/lib/transport/transport.cc",
            "src/core/lib/transport/transport_op_string.cc",
            "src/core/load_balancing/address_filtering.cc",
            "src/core/load_balancing/backend_metric_parser.cc",
            "src/core/load_balancing/child_policy_handler.cc",
            "src/core/load_balancing/endpoint_list.cc",
            "src/core/load_balancing/grpclb/client_load_reporting_filter.cc",
            "src/core/load_balancing/grpclb/grpclb.cc",
            "src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc",
            "src/core/load_balancing/grpclb/grpclb_client_stats.cc",
            "src/core/load_balancing/grpclb/load_balancer_api.cc",
            "src/core/load_balancing/health_check_client.cc",
            "src/core/load_balancing/lb_policy.cc",
            "src/core/load_balancing/lb_policy_registry.cc",
            "src/core/load_balancing/oob_backend_metric.cc",
            "src/core/load_balancing/outlier_detection/outlier_detection.cc",
            "src/core/load_balancing/pick_first/pick_first.cc",
            "src/core/load_balancing/priority/priority.cc",
            "src/core/load_balancing/ring_hash/ring_hash.cc",
            "src/core/load_balancing/rls/rls.cc",
            "src/core/load_balancing/round_robin/round_robin.cc",
            "src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc",
            "src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc",
            "src/core/load_balancing/weighted_target/weighted_target.cc",
            "src/core/load_balancing/xds/cds.cc",
            "src/core/load_balancing/xds/xds_cluster_impl.cc",
            "src/core/load_balancing/xds/xds_cluster_manager.cc",
            "src/core/load_balancing/xds/xds_override_host.cc",
            "src/core/load_balancing/xds/xds_wrr_locality.cc",
            "src/core/plugin_registry/grpc_plugin_registry.cc",
            "src/core/plugin_registry/grpc_plugin_registry_extra.cc",
            "src/core/resolver/dns/c_ares/dns_resolver_ares.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
            "src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
            "src/core/resolver/dns/dns_resolver_plugin.cc",
            "src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc",
            "src/core/resolver/dns/event_engine/service_config_helper.cc",
            "src/core/resolver/dns/native/dns_resolver.cc",
            "src/core/resolver/endpoint_addresses.cc",
            "src/core/resolver/fake/fake_resolver.cc",
            "src/core/resolver/google_c2p/google_c2p_resolver.cc",
            "src/core/resolver/polling_resolver.cc",
            "src/core/resolver/resolver.cc",
            "src/core/resolver/resolver_registry.cc",
            "src/core/resolver/sockaddr/sockaddr_resolver.cc",
            "src/core/resolver/xds/xds_config.cc",
            "src/core/resolver/xds/xds_dependency_manager.cc",
            "src/core/resolver/xds/xds_resolver.cc",
            "src/core/server/add_port.cc",
            "src/core/server/server.cc",
            "src/core/server/server_call_tracer_filter.cc",
            "src/core/server/server_config_selector_filter.cc",
            "src/core/server/xds_channel_stack_modifier.cc",
            "src/core/server/xds_server_config_fetcher.cc",
            "src/core/service_config/service_config_channel_arg_filter.cc",
            "src/core/service_config/service_config_impl.cc",
            "src/core/service_config/service_config_parser.cc",
            "src/core/telemetry/call_tracer.cc",
            "src/core/telemetry/default_tcp_tracer.cc",
            "src/core/telemetry/histogram_view.cc",
            "src/core/telemetry/metrics.cc",
            "src/core/telemetry/stats.cc",
            "src/core/telemetry/stats_data.cc",
            "src/core/telemetry/tcp_tracer.cc",
            "src/core/transport/auth_context.cc",
            "src/core/transport/endpoint_transport_client_channel_factory.cc",
            "src/core/tsi/alts/crypt/aes_gcm.cc",
            "src/core/tsi/alts/crypt/gsec.cc",
            "src/core/tsi/alts/frame_protector/alts_counter.cc",
            "src/core/tsi/alts/frame_protector/alts_crypter.cc",
            "src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
            "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
            "src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
            "src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
            "src/core/tsi/alts/frame_protector/frame_handler.cc",
            "src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
            "src/core/tsi/alts/handshaker/alts_shared_resource.cc",
            "src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
            "src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
            "src/core/tsi/alts/handshaker/transport_security_common_api.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
            "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
            "src/core/tsi/fake_transport_security.cc",
            "src/core/tsi/local_transport_security.cc",
            "src/core/tsi/ssl/key_logging/ssl_key_logging.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
            "src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
            "src/core/tsi/ssl_transport_security.cc",
            "src/core/tsi/ssl_transport_security_utils.cc",
            "src/core/tsi/transport_security.cc",
            "src/core/tsi/transport_security_grpc.cc",
            "src/core/util/alloc.cc",
            "src/core/util/backoff.cc",
            "src/core/util/crash.cc",
            "src/core/util/dump_args.cc",
            "src/core/util/event_log.cc",
            "src/core/util/examine_stack.cc",
            "src/core/util/fork.cc",
            "src/core/util/gcp_metadata_query.cc",
            "src/core/util/gethostname_fallback.cc",
            "src/core/util/gethostname_host_name_max.cc",
            "src/core/util/gethostname_sysconf.cc",
            "src/core/util/glob.cc",
            "src/core/util/gpr_time.cc",
            "src/core/util/grpc_if_nametoindex_posix.cc",
            "src/core/util/grpc_if_nametoindex_unsupported.cc",
            "src/core/util/host_port.cc",
            "src/core/util/http_client/format_request.cc",
            "src/core/util/http_client/httpcli.cc",
            "src/core/util/http_client/httpcli_security_connector.cc",
            "src/core/util/http_client/parser.cc",
            "src/core/util/iphone/cpu.cc",
            "src/core/util/json/json_object_loader.cc",
            "src/core/util/json/json_reader.cc",
            "src/core/util/json/json_util.cc",
            "src/core/util/json/json_writer.cc",
            "src/core/util/latent_see.cc",
            "src/core/util/linux/cpu.cc",
            "src/core/util/linux/env.cc",
            "src/core/util/load_file.cc",
            "src/core/util/log.cc",
            "src/core/util/matchers.cc",
            "src/core/util/mpscq.cc",
            "src/core/util/msys/tmpfile.cc",
            "src/core/util/per_cpu.cc",
            "src/core/util/posix/cpu.cc",
            "src/core/util/posix/directory_reader.cc",
            "src/core/util/posix/env.cc",
            "src/core/util/posix/stat.cc",
            "src/core/util/posix/string.cc",
            "src/core/util/posix/sync.cc",
            "src/core/util/posix/thd.cc",
            "src/core/util/posix/time.cc",
            "src/core/util/posix/tmpfile.cc",
            "src/core/util/random_early_detection.cc",
            "src/core/util/ref_counted_string.cc",
            "src/core/util/shared_bit_gen.cc",
            "src/core/util/status_helper.cc",
            "src/core/util/strerror.cc",
            "src/core/util/string.cc",
            "src/core/util/sync.cc",
            "src/core/util/sync_abseil.cc",
            "src/core/util/tchar.cc",
            "src/core/util/time.cc",
            "src/core/util/time_averaged_stats.cc",
            "src/core/util/time_precise.cc",
            "src/core/util/time_util.cc",
            "src/core/util/uri.cc",
            "src/core/util/uuid_v4.cc",
            "src/core/util/validation_errors.cc",
            "src/core/util/windows/cpu.cc",
            "src/core/util/windows/directory_reader.cc",
            "src/core/util/windows/env.cc",
            "src/core/util/windows/stat.cc",
            "src/core/util/windows/string.cc",
            "src/core/util/windows/string_util.cc",
            "src/core/util/windows/sync.cc",
            "src/core/util/windows/thd.cc",
            "src/core/util/windows/time.cc",
            "src/core/util/windows/tmpfile.cc",
            "src/core/util/work_serializer.cc",
            "src/core/xds/grpc/certificate_provider_store.cc",
            "src/core/xds/grpc/file_watcher_certificate_provider_factory.cc",
            "src/core/xds/grpc/xds_audit_logger_registry.cc",
            "src/core/xds/grpc/xds_bootstrap_grpc.cc",
            "src/core/xds/grpc/xds_certificate_provider.cc",
            "src/core/xds/grpc/xds_client_grpc.cc",
            "src/core/xds/grpc/xds_cluster.cc",
            "src/core/xds/grpc/xds_cluster_parser.cc",
            "src/core/xds/grpc/xds_cluster_specifier_plugin.cc",
            "src/core/xds/grpc/xds_common_types.cc",
            "src/core/xds/grpc/xds_common_types_parser.cc",
            "src/core/xds/grpc/xds_endpoint.cc",
            "src/core/xds/grpc/xds_endpoint_parser.cc",
            "src/core/xds/grpc/xds_health_status.cc",
            "src/core/xds/grpc/xds_http_fault_filter.cc",
            "src/core/xds/grpc/xds_http_filter_registry.cc",
            "src/core/xds/grpc/xds_http_gcp_authn_filter.cc",
            "src/core/xds/grpc/xds_http_rbac_filter.cc",
            "src/core/xds/grpc/xds_http_stateful_session_filter.cc",
            "src/core/xds/grpc/xds_lb_policy_registry.cc",
            "src/core/xds/grpc/xds_listener.cc",
            "src/core/xds/grpc/xds_listener_parser.cc",
            "src/core/xds/grpc/xds_metadata.cc",
            "src/core/xds/grpc/xds_metadata_parser.cc",
            "src/core/xds/grpc/xds_route_config.cc",
            "src/core/xds/grpc/xds_route_config_parser.cc",
            "src/core/xds/grpc/xds_routing.cc",
            "src/core/xds/grpc/xds_server_grpc.cc",
            "src/core/xds/grpc/xds_transport_grpc.cc",
            "src/core/xds/xds_client/lrs_client.cc",
            "src/core/xds/xds_client/xds_api.cc",
            "src/core/xds/xds_client/xds_backend_metric_propagation.cc",
            "src/core/xds/xds_client/xds_bootstrap.cc",
            "src/core/xds/xds_client/xds_client.cc",
            "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
            "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
            "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
            "third_party/abseil-cpp/absl/base/internal/spinlock.cc",
            "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
            "third_party/abseil-cpp/absl/base/internal/strerror.cc",
            "third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
            "third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
            "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
            "third_party/abseil-cpp/absl/base/internal/tracing.cc",
            "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
            "third_party/abseil-cpp/absl/base/log_severity.cc",
            "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
            "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
            "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
            "third_party/abseil-cpp/absl/crc/crc32c.cc",
            "third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc",
            "third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc",
            "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
            "third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc",
            "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
            "third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc",
            "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
            "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
            "third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc",
            "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
            "third_party/abseil-cpp/absl/debugging/leak_check.cc",
            "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
            "third_party/abseil-cpp/absl/debugging/symbolize.cc",
            "third_party/abseil-cpp/absl/flags/commandlineflag.cc",
            "third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc",
            "third_party/abseil-cpp/absl/flags/internal/flag.cc",
            "third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
            "third_party/abseil-cpp/absl/flags/internal/program_name.cc",
            "third_party/abseil-cpp/absl/flags/marshalling.cc",
            "third_party/abseil-cpp/absl/flags/reflection.cc",
            "third_party/abseil-cpp/absl/flags/usage_config.cc",
            "third_party/abseil-cpp/absl/hash/internal/city.cc",
            "third_party/abseil-cpp/absl/hash/internal/hash.cc",
            "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
            "third_party/abseil-cpp/absl/log/globals.cc",
            "third_party/abseil-cpp/absl/log/internal/check_op.cc",
            "third_party/abseil-cpp/absl/log/internal/conditions.cc",
            "third_party/abseil-cpp/absl/log/internal/fnmatch.cc",
            "third_party/abseil-cpp/absl/log/internal/globals.cc",
            "third_party/abseil-cpp/absl/log/internal/log_format.cc",
            "third_party/abseil-cpp/absl/log/internal/log_message.cc",
            "third_party/abseil-cpp/absl/log/internal/log_sink_set.cc",
            "third_party/abseil-cpp/absl/log/internal/nullguard.cc",
            "third_party/abseil-cpp/absl/log/internal/proto.cc",
            "third_party/abseil-cpp/absl/log/internal/structured_proto.cc",
            "third_party/abseil-cpp/absl/log/internal/vlog_config.cc",
            "third_party/abseil-cpp/absl/log/log_entry.cc",
            "third_party/abseil-cpp/absl/log/log_sink.cc",
            "third_party/abseil-cpp/absl/numeric/int128.cc",
            "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
            "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
            "third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
            "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
            "third_party/abseil-cpp/absl/random/internal/randen.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
            "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
            "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
            "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
            "third_party/abseil-cpp/absl/random/seed_sequences.cc",
            "third_party/abseil-cpp/absl/status/internal/status_internal.cc",
            "third_party/abseil-cpp/absl/status/status.cc",
            "third_party/abseil-cpp/absl/status/status_payload_printer.cc",
            "third_party/abseil-cpp/absl/status/statusor.cc",
            "third_party/abseil-cpp/absl/strings/ascii.cc",
            "third_party/abseil-cpp/absl/strings/charconv.cc",
            "third_party/abseil-cpp/absl/strings/cord.cc",
            "third_party/abseil-cpp/absl/strings/cord_analysis.cc",
            "third_party/abseil-cpp/absl/strings/cord_buffer.cc",
            "third_party/abseil-cpp/absl/strings/escaping.cc",
            "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
            "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
            "third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
            "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
            "third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc",
            "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
            "third_party/abseil-cpp/absl/strings/internal/memutil.cc",
            "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
            "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
            "third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc",
            "third_party/abseil-cpp/absl/strings/internal/utf8.cc",
            "third_party/abseil-cpp/absl/strings/match.cc",
            "third_party/abseil-cpp/absl/strings/numbers.cc",
            "third_party/abseil-cpp/absl/strings/str_cat.cc",
            "third_party/abseil-cpp/absl/strings/str_replace.cc",
            "third_party/abseil-cpp/absl/strings/str_split.cc",
            "third_party/abseil-cpp/absl/strings/string_view.cc",
            "third_party/abseil-cpp/absl/strings/substitute.cc",
            "third_party/abseil-cpp/absl/synchronization/barrier.cc",
            "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc",
            "third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc",
            "third_party/abseil-cpp/absl/synchronization/mutex.cc",
            "third_party/abseil-cpp/absl/synchronization/notification.cc",
            "third_party/abseil-cpp/absl/time/civil_time.cc",
            "third_party/abseil-cpp/absl/time/clock.cc",
            "third_party/abseil-cpp/absl/time/duration.cc",
            "third_party/abseil-cpp/absl/time/format.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
            "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
            "third_party/abseil-cpp/absl/time/time.cc",
            "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
            "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
            "third_party/address_sorting/address_sorting.c",
            "third_party/address_sorting/address_sorting_posix.c",
            "third_party/address_sorting/address_sorting_windows.c",
            "third_party/boringssl-with-bazel/src/crypto/aes/aes.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc",
            "third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc",
            "third_party/boringssl-with-bazel/src/crypto/base64/base64.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/bio.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/connect.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/errno.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/fd.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/file.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/pair.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/printf.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/socket.cc",
            "third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc",
            "third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc",
            "third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/bn/convert.cc",
            "third_party/boringssl-with-bazel/src/crypto/bn/div.cc",
            "third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc",
            "third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc",
            "third_party/boringssl-with-bazel/src/crypto/buf/buf.cc",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc",
            "third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc",
            "third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc",
            "third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc",
            "third_party/boringssl-with-bazel/src/crypto/cms/cms.cc",
            "third_party/boringssl-with-bazel/src/crypto/conf/conf.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc",
            "third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc",
            "third_party/boringssl-with-bazel/src/crypto/crypto.cc",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc",
            "third_party/boringssl-with-bazel/src/crypto/des/des.cc",
            "third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/dh/params.cc",
            "third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc",
            "third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc",
            "third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc",
            "third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc",
            "third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc",
            "third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/engine/engine.cc",
            "third_party/boringssl-with-bazel/src/crypto/err/err.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/print.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc",
            "third_party/boringssl-with-bazel/src/crypto/evp/sign.cc",
            "third_party/boringssl-with-bazel/src/crypto/ex_data.cc",
            "third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc",
            "third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc",
            "third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc",
            "third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc",
            "third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc",
            "third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc",
            "third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc",
            "third_party/boringssl-with-bazel/src/crypto/md4/md4.cc",
            "third_party/boringssl-with-bazel/src/crypto/md5/md5.cc",
            "third_party/boringssl-with-bazel/src/crypto/mem.cc",
            "third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc",
            "third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc",
            "third_party/boringssl-with-bazel/src/crypto/obj/obj.cc",
            "third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc",
            "third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc",
            "third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc",
            "third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc",
            "third_party/boringssl-with-bazel/src/crypto/pool/pool.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/ios.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/passive.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/rand.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc",
            "third_party/boringssl-with-bazel/src/crypto/rand/windows.cc",
            "third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc",
            "third_party/boringssl-with-bazel/src/crypto/refcount.cc",
            "third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc",
            "third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc",
            "third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc",
            "third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc",
            "third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc",
            "third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc",
            "third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc",
            "third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc",
            "third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc",
            "third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc",
            "third_party/boringssl-with-bazel/src/crypto/stack/stack.cc",
            "third_party/boringssl-with-bazel/src/crypto/thread.cc",
            "third_party/boringssl-with-bazel/src/crypto/thread_none.cc",
            "third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc",
            "third_party/boringssl-with-bazel/src/crypto/thread_win.cc",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc",
            "third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/policy.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc",
            "third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc",
            "third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc",
            "third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc",
            "third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc",
            "third_party/boringssl-with-bazel/src/ssl/dtls_method.cc",
            "third_party/boringssl-with-bazel/src/ssl/dtls_record.cc",
            "third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc",
            "third_party/boringssl-with-bazel/src/ssl/extensions.cc",
            "third_party/boringssl-with-bazel/src/ssl/handoff.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake_client.cc",
            "third_party/boringssl-with-bazel/src/ssl/handshake_server.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_file.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_session.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc",
            "third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc",
            "third_party/boringssl-with-bazel/src/ssl/t1_enc.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_both.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_client.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls13_server.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls_method.cc",
            "third_party/boringssl-with-bazel/src/ssl/tls_record.cc",
            "third_party/cares/cares/src/lib/ares__addrinfo2hostent.c",
            "third_party/cares/cares/src/lib/ares__addrinfo_localhost.c",
            "third_party/cares/cares/src/lib/ares__close_sockets.c",
            "third_party/cares/cares/src/lib/ares__get_hostent.c",
            "third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c",
            "third_party/cares/cares/src/lib/ares__read_line.c",
            "third_party/cares/cares/src/lib/ares__readaddrinfo.c",
            "third_party/cares/cares/src/lib/ares__sortaddrinfo.c",
            "third_party/cares/cares/src/lib/ares__timeval.c",
            "third_party/cares/cares/src/lib/ares_android.c",
            "third_party/cares/cares/src/lib/ares_cancel.c",
            "third_party/cares/cares/src/lib/ares_create_query.c",
            "third_party/cares/cares/src/lib/ares_data.c",
            "third_party/cares/cares/src/lib/ares_destroy.c",
            "third_party/cares/cares/src/lib/ares_expand_name.c",
            "third_party/cares/cares/src/lib/ares_expand_string.c",
            "third_party/cares/cares/src/lib/ares_fds.c",
            "third_party/cares/cares/src/lib/ares_free_hostent.c",
            "third_party/cares/cares/src/lib/ares_free_string.c",
            "third_party/cares/cares/src/lib/ares_freeaddrinfo.c",
            "third_party/cares/cares/src/lib/ares_getaddrinfo.c",
            "third_party/cares/cares/src/lib/ares_getenv.c",
            "third_party/cares/cares/src/lib/ares_gethostbyaddr.c",
            "third_party/cares/cares/src/lib/ares_gethostbyname.c",
            "third_party/cares/cares/src/lib/ares_getnameinfo.c",
            "third_party/cares/cares/src/lib/ares_getsock.c",
            "third_party/cares/cares/src/lib/ares_init.c",
            "third_party/cares/cares/src/lib/ares_library_init.c",
            "third_party/cares/cares/src/lib/ares_llist.c",
            "third_party/cares/cares/src/lib/ares_mkquery.c",
            "third_party/cares/cares/src/lib/ares_nowarn.c",
            "third_party/cares/cares/src/lib/ares_options.c",
            "third_party/cares/cares/src/lib/ares_parse_a_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_caa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_mx_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_naptr_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_ns_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_ptr_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_soa_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_srv_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_txt_reply.c",
            "third_party/cares/cares/src/lib/ares_parse_uri_reply.c",
            "third_party/cares/cares/src/lib/ares_platform.c",
            "third_party/cares/cares/src/lib/ares_process.c",
            "third_party/cares/cares/src/lib/ares_query.c",
            "third_party/cares/cares/src/lib/ares_rand.c",
            "third_party/cares/cares/src/lib/ares_search.c",
            "third_party/cares/cares/src/lib/ares_send.c",
            "third_party/cares/cares/src/lib/ares_strcasecmp.c",
            "third_party/cares/cares/src/lib/ares_strdup.c",
            "third_party/cares/cares/src/lib/ares_strerror.c",
            "third_party/cares/cares/src/lib/ares_strsplit.c",
            "third_party/cares/cares/src/lib/ares_timeout.c",
            "third_party/cares/cares/src/lib/ares_version.c",
            "third_party/cares/cares/src/lib/ares_writev.c",
            "third_party/cares/cares/src/lib/bitncmp.c",
            "third_party/cares/cares/src/lib/inet_net_pton.c",
            "third_party/cares/cares/src/lib/inet_ntop.c",
            "third_party/cares/cares/src/lib/windows_port.c",
            "third_party/re2/re2/bitstate.cc",
            "third_party/re2/re2/compile.cc",
            "third_party/re2/re2/dfa.cc",
            "third_party/re2/re2/filtered_re2.cc",
            "third_party/re2/re2/mimics_pcre.cc",
            "third_party/re2/re2/nfa.cc",
            "third_party/re2/re2/onepass.cc",
            "third_party/re2/re2/parse.cc",
            "third_party/re2/re2/perl_groups.cc",
            "third_party/re2/re2/prefilter.cc",
            "third_party/re2/re2/prefilter_tree.cc",
            "third_party/re2/re2/prog.cc",
            "third_party/re2/re2/re2.cc",
            "third_party/re2/re2/regexp.cc",
            "third_party/re2/re2/set.cc",
            "third_party/re2/re2/simplify.cc",
            "third_party/re2/re2/stringpiece.cc",
            "third_party/re2/re2/tostring.cc",
            "third_party/re2/re2/unicode_casefold.cc",
            "third_party/re2/re2/unicode_groups.cc",
            "third_party/re2/util/rune.cc",
            "third_party/re2/util/strutil.cc",
            "third_party/upb/upb/base/status.c",
            "third_party/upb/upb/hash/common.c",
            "third_party/upb/upb/json/decode.c",
            "third_party/upb/upb/json/encode.c",
            "third_party/upb/upb/lex/atoi.c",
            "third_party/upb/upb/lex/round_trip.c",
            "third_party/upb/upb/lex/strtod.c",
            "third_party/upb/upb/lex/unicode.c",
            "third_party/upb/upb/mem/alloc.c",
            "third_party/upb/upb/mem/arena.c",
            "third_party/upb/upb/message/accessors.c",
            "third_party/upb/upb/message/array.c",
            "third_party/upb/upb/message/compat.c",
            "third_party/upb/upb/message/copy.c",
            "third_party/upb/upb/message/internal/extension.c",
            "third_party/upb/upb/message/internal/iterator.c",
            "third_party/upb/upb/message/internal/message.c",
            "third_party/upb/upb/message/map.c",
            "third_party/upb/upb/message/map_sorter.c",
            "third_party/upb/upb/message/merge.c",
            "third_party/upb/upb/message/message.c",
            "third_party/upb/upb/mini_descriptor/build_enum.c",
            "third_party/upb/upb/mini_descriptor/decode.c",
            "third_party/upb/upb/mini_descriptor/internal/base92.c",
            "third_party/upb/upb/mini_descriptor/internal/encode.c",
            "third_party/upb/upb/mini_descriptor/link.c",
            "third_party/upb/upb/mini_table/extension_registry.c",
            "third_party/upb/upb/mini_table/internal/message.c",
            "third_party/upb/upb/mini_table/message.c",
            "third_party/upb/upb/reflection/def_pool.c",
            "third_party/upb/upb/reflection/def_type.c",
            "third_party/upb/upb/reflection/desc_state.c",
            "third_party/upb/upb/reflection/enum_def.c",
            "third_party/upb/upb/reflection/enum_reserved_range.c",
            "third_party/upb/upb/reflection/enum_value_def.c",
            "third_party/upb/upb/reflection/extension_range.c",
            "third_party/upb/upb/reflection/field_def.c",
            "third_party/upb/upb/reflection/file_def.c",
            "third_party/upb/upb/reflection/internal/def_builder.c",
            "third_party/upb/upb/reflection/internal/strdup2.c",
            "third_party/upb/upb/reflection/message.c",
            "third_party/upb/upb/reflection/message_def.c",
            "third_party/upb/upb/reflection/message_reserved_range.c",
            "third_party/upb/upb/reflection/method_def.c",
            "third_party/upb/upb/reflection/oneof_def.c",
            "third_party/upb/upb/reflection/service_def.c",
            "third_party/upb/upb/text/encode.c",
            "third_party/upb/upb/text/internal/encode.c",
            "third_party/upb/upb/wire/decode.c",
            "third_party/upb/upb/wire/encode.c",
            "third_party/upb/upb/wire/eps_copy_input_stream.c",
            "third_party/upb/upb/wire/internal/decode_fast.c",
            "third_party/upb/upb/wire/reader.c",
            "third_party/utf8_range/utf8_range.c",
            "third_party/zlib/adler32.c",
            "third_party/zlib/compress.c",
            "third_party/zlib/crc32.c",
            "third_party/zlib/deflate.c",
            "third_party/zlib/infback.c",
            "third_party/zlib/inffast.c",
            "third_party/zlib/inflate.c",
            "third_party/zlib/inftrees.c",
            "third_party/zlib/trees.c",
            "third_party/zlib/uncompr.c",
            "third_party/zlib/zutil.c",
            "third_party/boringssl-with-bazel/src/crypto/curve25519/asm/x25519-asm-arm.S",
            "third_party/boringssl-with-bazel/src/crypto/hrss/asm/poly_rq_mul.S",
            "third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm_asm.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx2-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx2-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx512-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aes-gcm-avx512-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv4-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/bsaes-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/co-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/co-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv4-large-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv7-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-linux.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-apple.S",
            "third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/md5-586-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/md5-586-linux.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/md5-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/crypto/md5-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv4-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-win.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-linux.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-apple.S",
            "third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-linux.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_mul.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_square.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_mul.S",
            "third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_sqr.S"
        ]
    },
    "module_name": "grpc._cython.cygrpc"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
/* InitLimitedAPI */
#if defined(Py_LIMITED_API) && !defined(CYTHON_LIMITED_API)
  #define CYTHON_LIMITED_API 1
#endif

#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x03080000
    #error Cython requires Python 3.8+.
#else
#define __PYX_ABI_VERSION "3_1_1"
#define CYTHON_HEX_VERSION 0x030101F0
#define CYTHON_FUTURE_DIVISION 1
/* CModulePreamble */
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #define HAVE_LONG_LONG
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 1
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 1
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
  #endif
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_CLINE_IN_TRACEBACK
  #define CYTHON_CLINE_IN_TRACEBACK 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #ifdef Py_GIL_DISABLED
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
  #else
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #endif
  #if PY_VERSION_HEX < 0x030A0000
    #undef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #elif !defined(CYTHON_USE_TYPE_SLOTS)
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL 0
  #elif !defined(CYTHON_FAST_GIL)
    #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #ifndef CYTHON_USE_SYS_MONITORING
    #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
#endif
#ifndef CYTHON_FAST_PYCCALL
#define CYTHON_FAST_PYCCALL  CYTHON_FAST_PYCALL
#endif
#ifndef CYTHON_VECTORCALL
#if CYTHON_COMPILING_IN_LIMITED_API
#define CYTHON_VECTORCALL  (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
#else
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
#endif
#endif
#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
#if CYTHON_USE_PYLONG_INTERNALS
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
            typedef unsigned char     uint8_t;
            typedef unsigned short    uint16_t;
            typedef unsigned int      uint32_t;
        #else
            typedef unsigned __int8   uint8_t;
            typedef unsigned __int16  uint16_t;
            typedef unsigned __int32  uint32_t;
        #endif
    #endif
    #if _MSC_VER < 1300
        #ifdef _WIN64
            typedef unsigned long long  __pyx_uintptr_t;
        #else
            typedef unsigned int        __pyx_uintptr_t;
        #endif
    #else
        #ifdef _WIN64
            typedef unsigned __int64    __pyx_uintptr_t;
        #else
            typedef unsigned __int32    __pyx_uintptr_t;
        #endif
    #endif
#else
    #include <stdint.h>
    typedef uintptr_t  __pyx_uintptr_t;
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifndef Py_UNREACHABLE
  #define Py_UNREACHABLE()  assert(0); abort()
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

/* CppInitCode */
#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(const U& other) const { return *ptr == other; }
    template<typename U> bool operator !=(const U& other) const { return *ptr != other; }
    template<typename U> bool operator==(const __Pyx_FakeReference<U>& other) const { return *ptr == *other.ptr; }
    template<typename U> bool operator!=(const __Pyx_FakeReference<U>& other) const { return *ptr != *other.ptr; }
  private:
    T *ptr;
};

/* PythonCompatibility */
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
#define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    #ifndef CO_OPTIMIZED
    static int CO_OPTIMIZED;
    #endif
    #ifndef CO_NEWLOCALS
    static int CO_NEWLOCALS;
    #endif
    #ifndef CO_VARARGS
    static int CO_VARARGS;
    #endif
    #ifndef CO_VARKEYWORDS
    static int CO_VARKEYWORDS;
    #endif
    #ifndef CO_ASYNC_GENERATOR
    static int CO_ASYNC_GENERATOR;
    #endif
    #ifndef CO_GENERATOR
    static int CO_GENERATOR;
    #endif
    #ifndef CO_COROUTINE
    static int CO_COROUTINE;
    #endif
#else
    #ifndef CO_COROUTINE
      #define CO_COROUTINE 0x80
    #endif
    #ifndef CO_ASYNC_GENERATOR
      #define CO_ASYNC_GENERATOR 0x200
    #endif
#endif
static int __Pyx_init_co_variables(void);
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#ifndef METH_FASTCALL
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #if PY_VERSION_HEX >= 0x030d00A4
  #  define __Pyx_PyCFunctionFast PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
  #else
  #  define __Pyx_PyCFunctionFast _PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
  #endif
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#elif CYTHON_BACKPORT_VECTORCALL
  typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
                                            size_t nargsf, PyObject *kwnames);
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  ((size_t)1 << (8 * sizeof(size_t) - 1))
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_VERSION_HEX >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if __PYX_LIMITED_VERSION_HEX < 0x03090000
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#elif CYTHON_COMPILING_IN_GRAAL
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#endif
#if CYTHON_USE_MODULE_STATE
static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
#else
#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
  #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
  #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
    ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
     (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
     __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
  #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
  #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
#endif
#define __Pyx_PyObject_GetIterNextFunc(iterator)  __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#else
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains)
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #else
    #define __Pyx_PyList_GetItemRef(o, i) PySequence_GetItem(o, i)
  #endif
#else
  #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyObject_GetItem(dict, key);
  if (*result == NULL) {
    if (PyErr_ExceptionMatches(PyExc_KeyError)) {
      PyErr_Clear();
      return 0;
    }
    return -1;
  }
  return 1;
}
#else
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyDict_GetItemWithError(dict, key);
  if (*result == NULL) {
    return PyErr_Occurred() ? -1 : 0;
  }
  Py_INCREF(*result);
  return 1;
}
#endif
#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
  #define __Pyx_VISIT_CONST(obj)  Py_VISIT(obj)
#else
  #define __Pyx_VISIT_CONST(obj)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
#endif
#if CYTHON_ASSUME_SAFE_SIZE
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
#else
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
#endif
#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
#define __Pyx_PyLong_AsHash_t   __Pyx_PyIndex_AsSsize_t
#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
    #define __Pyx_PySendResult PySendResult
#else
    typedef enum {
        PYGEN_RETURN = 0,
        PYGEN_ERROR = -1,
        PYGEN_NEXT = 1,
    } __Pyx_PySendResult;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
  typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
#else
  #define __Pyx_pyiter_sendfunc sendfunc
#endif
#if !CYTHON_USE_AM_SEND
#define __PYX_HAS_PY_AM_SEND 0
#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
#define __PYX_HAS_PY_AM_SEND 1
#else
#define __PYX_HAS_PY_AM_SEND 2  // our own backported implementation
#endif
#if __PYX_HAS_PY_AM_SEND < 2
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
#else
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
        __Pyx_pyiter_sendfunc am_send;
    } __Pyx_PyAsyncMethodsStruct;
    #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
#endif
#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
#else
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
#endif
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get()
#else
#define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
#ifdef __cplusplus
extern "C"
#endif
PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
    int value;
    PyObject *py_value = PyObject_GetAttrString(inspect, name);
    if (!py_value) return 0;
    value = (int) PyLong_AsLong(py_value);
    Py_DECREF(py_value);
    *write_to = value;
    return value != -1 || !PyErr_Occurred();
}
static int __Pyx_init_co_variables(void) {
    PyObject *inspect;
    int result;
    inspect = PyImport_ImportModule("inspect");
    result =
#if !defined(CO_OPTIMIZED)
        __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
#endif
#if !defined(CO_NEWLOCALS)
        __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
#endif
#if !defined(CO_VARARGS)
        __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
#endif
#if !defined(CO_VARKEYWORDS)
        __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
#endif
#if !defined(CO_ASYNC_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
#endif
#if !defined(CO_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
#endif
#if !defined(CO_COROUTINE)
        __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
#endif
        1;
    Py_DECREF(inspect);
    return result ? 0 : -1;
}
#else
static int __Pyx_init_co_variables(void) {
    return 0;  // It's a limited API-only feature
}
#endif

/* MathInitCode */
#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #ifndef _USE_MATH_DEFINES
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0
#endif
#ifndef CYTHON_CLINE_IN_TRACEBACK
#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#endif
#if CYTHON_CLINE_IN_TRACEBACK
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }
#else
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }
#endif
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
    #define __PYX_EXTERN_C extern "C++"
#endif

#define __PYX_HAVE__grpc___cython__cygrpc
#define __PYX_HAVE_API__grpc___cython__cygrpc
/* Early includes */
#include <string.h>
#include <stdio.h>

    #if PY_MAJOR_VERSION >= 3
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj)
    #else
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj, NULL)
    #endif
    
#include <stddef.h>

    #if PY_MAJOR_VERSION <= 2
    #define PyDict_GetItemWithError _PyDict_GetItemWithError
    #endif
    

    #if PY_VERSION_HEX < 0x030d0000
    static CYTHON_INLINE int __Pyx_PyWeakref_GetRef(PyObject *ref, PyObject **pobj)
    {
        PyObject *obj = PyWeakref_GetObject(ref);
        if (obj == NULL) {
            // SystemError if ref is NULL
            *pobj = NULL;
            return -1;
        }
        if (obj == Py_None) {
            *pobj = NULL;
            return 0;
        }
        Py_INCREF(obj);
        *pobj = obj;
        return 1;
    }
    #else
    #define __Pyx_PyWeakref_GetRef PyWeakref_GetRef
    #endif
    
#include "pythread.h"

    #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030600) && !defined(PyContextVar_Get)
    #define PyContextVar_Get(var, d, v)         ((d) ?             ((void)(var), Py_INCREF(d), (v)[0] = (d), 0) :             ((v)[0] = NULL, 0)         )
    #endif
    
#include <string_view>
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <string>
#include <time.h>
#include <queue>
#include <mutex>
#include <condition_variable>
#include "src/core/telemetry/call_tracer.h"
#include "src/core/lib/surface/call.h"
#include "grpc/support/alloc.h"
#include "grpc/byte_buffer_reader.h"
#include "grpc/impl/codegen/grpc_types.h"
#include "grpc/grpc.h"
#include "grpc/grpc_security_constants.h"
#include "grpc/credentials.h"
#include "grpc/grpc_security.h"
#include "grpc/compression.h"
#include "grpc/impl/codegen/compression_types.h"
#include "src/core/config/config_vars.h"
#include "grpc/impl/propagation_bits.h"
#include "src/core/lib/iomgr/timer_manager.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include <sys/types.h>
#include <unistd.h>
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
#else
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
#endif
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
    return Py_NewRef(obj);
#else
    Py_INCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
    return Py_XNewRef(obj);
#else
    Py_XINCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
#else
#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
#endif
#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
#else
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
/* PretendToInitialize */
#ifdef __cplusplus
#include <type_traits>
template <typename T>
static void __Pyx_pretend_to_initialize(T* ptr) {
#if __cplusplus > 201103L
    if ((std::is_trivially_default_constructible<T>::value))
#endif
        *ptr = T();
    (void)ptr;
}
#else
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
#endif


#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * const __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* #### Code section: filename_table ### */

static const char* const __pyx_f[] = {
  "src/python/grpcio/grpc/_cython/cygrpc.pyx",
  "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi",
  "<stringsource>",
  "cpython/contextvars.pxd",
  "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi",
  "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi",
  "cpython/type.pxd",
  "cpython/bool.pxd",
  "cpython/complex.pxd",
  "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi",
};
/* #### Code section: utility_code_proto_before_types ### */
/* IncludeStructmemberH.proto */
#include <structmember.h>

/* CriticalSections.proto */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection void*
#define __Pyx_PyCriticalSection2 void*
#define __Pyx_PyCriticalSection_Begin1(cs, arg) (void)cs
#define __Pyx_PyCriticalSection_Begin2(cs, arg1, arg2) (void)cs
#define __Pyx_PyCriticalSection_End1(cs)
#define __Pyx_PyCriticalSection_End2(cs)
#else
#define __Pyx_PyCriticalSection PyCriticalSection
#define __Pyx_PyCriticalSection2 PyCriticalSection2
#define __Pyx_PyCriticalSection_Begin1 PyCriticalSection_Begin
#define __Pyx_PyCriticalSection_Begin2 PyCriticalSection2_Begin
#define __Pyx_PyCriticalSection_End1 PyCriticalSection_End
#define __Pyx_PyCriticalSection_End2 PyCriticalSection2_End
#endif
#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
#define __Pyx_END_CRITICAL_SECTION() }
#else
#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
#endif

/* Atomics.proto */
#include <pythread.h>
#ifndef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 1
#endif
#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __pyx_atomic_int_type int
#define __pyx_nonatomic_int_type int
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__))
    #include <stdatomic.h>
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)))
    #include <atomic>
#endif
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__) &&\
                       ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type atomic_int
    #define __pyx_atomic_ptr_type atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) atomic_load(value)
    #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C atomics"
    #endif
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
                    ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type std::atomic_int
    #define __pyx_atomic_ptr_type std::atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) std::atomic_load(value)
    #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C++ atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C++ atomics"
    #endif
#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
                    (__GNUC_MINOR__ > 1 ||\
                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    #define __pyx_atomic_ptr_type void*
    #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
    #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Using GNU atomics"
    #endif
#elif CYTHON_ATOMICS && defined(_MSC_VER)
    #include <intrin.h>
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type long
    #define __pyx_atomic_ptr_type void*
    #undef __pyx_nonatomic_int_type
    #define __pyx_nonatomic_int_type long
    #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
    #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
    #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
    #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
    #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
    #ifdef __PYX_DEBUG_ATOMICS
        #pragma message ("Using MSVC atomics")
    #endif
#else
    #undef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 0
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Not using atomics"
    #endif
#endif
#if CYTHON_ATOMICS
    #define __pyx_add_acquisition_count(memview)\
             __pyx_atomic_incr_relaxed(__pyx_get_slice_count_pointer(memview))
    #define __pyx_sub_acquisition_count(memview)\
            __pyx_atomic_decr_acq_rel(__pyx_get_slice_count_pointer(memview))
#else
    #define __pyx_add_acquisition_count(memview)\
            __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
    #define __pyx_sub_acquisition_count(memview)\
            __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
#endif

/* NoFastGil.proto */
#define __Pyx_PyGILState_Ensure PyGILState_Ensure
#define __Pyx_PyGILState_Release PyGILState_Release
#define __Pyx_FastGIL_Remember()
#define __Pyx_FastGIL_Forget()
#define __Pyx_FastGilFuncInit()

/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* #### Code section: numeric_typedefs ### */

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":19
 * cimport libc.time
 * 
 * ctypedef          ssize_t   intptr_t             # <<<<<<<<<<<<<<
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t
*/
typedef Py_ssize_t __pyx_t_4grpc_7_cython_6cygrpc_intptr_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":20
 * 
 * ctypedef          ssize_t   intptr_t
 * ctypedef          size_t    uintptr_t             # <<<<<<<<<<<<<<
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t
*/
typedef size_t __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":21
 * ctypedef          ssize_t   intptr_t
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t             # <<<<<<<<<<<<<<
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t
*/
typedef signed char __pyx_t_4grpc_7_cython_6cygrpc_int8_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":22
 * ctypedef          size_t    uintptr_t
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t             # <<<<<<<<<<<<<<
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t
*/
typedef short __pyx_t_4grpc_7_cython_6cygrpc_int16_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":23
 * ctypedef   signed char      int8_t
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t             # <<<<<<<<<<<<<<
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t
*/
typedef int __pyx_t_4grpc_7_cython_6cygrpc_int32_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":24
 * ctypedef   signed short     int16_t
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t
*/
typedef PY_LONG_LONG __pyx_t_4grpc_7_cython_6cygrpc_int64_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":25
 * ctypedef   signed int       int32_t
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t
*/
typedef unsigned char __pyx_t_4grpc_7_cython_6cygrpc_uint8_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":26
 * ctypedef   signed long long int64_t
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned int       uint32_t
 * ctypedef unsigned long long uint64_t
*/
typedef unsigned short __pyx_t_4grpc_7_cython_6cygrpc_uint16_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":27
 * ctypedef unsigned char      uint8_t
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t             # <<<<<<<<<<<<<<
 * ctypedef unsigned long long uint64_t
 * 
*/
typedef unsigned int __pyx_t_4grpc_7_cython_6cygrpc_uint32_t;

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi":28
 * ctypedef unsigned short     uint16_t
 * ctypedef unsigned int       uint32_t
 * ctypedef unsigned long long uint64_t             # <<<<<<<<<<<<<<
 * 
 * # C++ Utilities
*/
typedef unsigned PY_LONG_LONG __pyx_t_4grpc_7_cython_6cygrpc_uint64_t;
/* #### Code section: complex_type_declarations ### */
/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Call;
struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState;
struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails;
struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions;
struct __pyx_obj_4grpc_7_cython_6cygrpc_Server;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod;
struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag;
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop;
struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus;
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel;
struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails;
struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver;
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer;
struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
struct __pyx_opt_args_7cpython_11contextvars_get_value;
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default;

/* "cpython/contextvars.pxd":116
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
*/
struct __pyx_opt_args_7cpython_11contextvars_get_value {
  int __pyx_n;
  PyObject *default_value;
};

/* "cpython/contextvars.pxd":134
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
*/
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default {
  int __pyx_n;
  PyObject *default_value;
};
struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext;

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef enum AioChannelStatus:             # <<<<<<<<<<<<<<
 *     AIO_CHANNEL_STATUS_UNKNOWN
 *     AIO_CHANNEL_STATUS_READY
*/
enum __pyx_t_4grpc_7_cython_6cygrpc_AioChannelStatus {
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_UNKNOWN,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_READY,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":64
 * 
 * 
 * cdef enum AioServerStatus:             # <<<<<<<<<<<<<<
 *     AIO_SERVER_STATUS_UNKNOWN
 *     AIO_SERVER_STATUS_READY
*/
enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus {
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_UNKNOWN,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED,
  __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":16
 * 
 * 
 * ctypedef queue[grpc_event] cpp_event_queue             # <<<<<<<<<<<<<<
 * 
 * 
*/
typedef std::queue<grpc_event>  __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue;

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":24
 * 
 * 
 * cdef struct CallbackContext:             # <<<<<<<<<<<<<<
 *     # C struct to store callback context in the form of pointers.
 *     #
*/
struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext {
  grpc_completion_queue_functor functor;
  PyObject *waiter;
  PyObject *loop;
  PyObject *failure_handler;
  PyObject *callback_wrapper;
};

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":22
 * 
 * 
 * cdef class _ChannelArg:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_arg c_argument
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_vtab;
  grpc_arg c_argument;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":29
 * 
 * 
 * cdef class _ChannelArgs:             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _arguments
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_vtab;
  PyObject *_arguments;
  PyObject *_channel_args;
  PyObject *_references;
  grpc_channel_args _c_arguments;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pxd.pxi":16
 * 
 * 
 * cdef class Call:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call *c_call
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_Call {
  PyObject_HEAD
  grpc_call *c_call;
  PyObject *references;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":25
 * 
 * 
 * cdef class _CallState:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call *c_call
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *__pyx_vtab;
  grpc_call *c_call;
  PyObject *due;
  PyObject *call_tracer_capsule;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":36
 * 
 * 
 * cdef class _ChannelState:             # <<<<<<<<<<<<<<
 * 
 *   cdef bytes target
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState {
  PyObject_HEAD
  PyObject *target;
  PyObject *condition;
  grpc_channel *c_channel;
  PyObject *open;
  PyObject *closed_reason;
  PyObject *integrated_call_states;
  grpc_completion_queue *c_call_completion_queue;
  PyObject *segregated_call_states;
  PyObject *connectivity_due;
  grpc_completion_queue *c_connectivity_completion_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":62
 * 
 * 
 * cdef class IntegratedCall:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _channel_state
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_channel_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *_call_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":68
 * 
 * 
 * cdef class SegregatedCall:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _channel_state
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_channel_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *_call_state;
  grpc_completion_queue *_c_completion_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":75
 * 
 * 
 * cdef class Channel:             # <<<<<<<<<<<<<<
 * 
 *   cdef _ChannelState _state
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *_state;
  PyObject *_registered_call_handles;
  PyObject *_arguments;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi":84
 * 
 * 
 * cdef class CallHandle:             # <<<<<<<<<<<<<<
 * 
 *   cdef void *c_call_handle
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle {
  PyObject_HEAD
  void *c_call_handle;
  PyObject *method;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":16
 * 
 * 
 * cdef class CallCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_vtab;
  grpc_call_credentials *c_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":34
 * 
 * 
 * cdef class MetadataPluginCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _metadata_plugin
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
  PyObject *_metadata_plugin;
  PyObject *_name;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":45
 * 
 * 
 * cdef class CompositeCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _call_credentialses
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
  PyObject *_call_credentialses;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":52
 * 
 * 
 * cdef class ChannelCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_vtab;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":57
 * 
 * 
 * cdef class SSLSessionCacheLRU:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_session_cache *_cache
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU {
  PyObject_HEAD
  grpc_ssl_session_cache *_cache;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":62
 * 
 * 
 * cdef class SSLChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _pem_root_certificates
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  PyObject *_pem_root_certificates;
  PyObject *_private_key;
  PyObject *_certificate_chain;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":71
 * 
 * 
 * cdef class CompositeChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly tuple _call_credentialses
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  PyObject *_call_credentialses;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *_channel_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":79
 * 
 * 
 * cdef class XDSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly ChannelCredentials _fallback_credentials
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *_fallback_credentials;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":86
 * 
 * 
 * cdef class ServerCertificateConfig:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_server_certificate_config *c_cert_config
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig {
  PyObject_HEAD
  grpc_ssl_server_certificate_config *c_cert_config;
  char const *c_pem_root_certs;
  grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs;
  size_t c_ssl_pem_key_cert_pairs_count;
  PyObject *references;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":95
 * 
 * 
 * cdef class ServerCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_server_credentials *c_credentials
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials {
  PyObject_HEAD
  grpc_server_credentials *c_credentials;
  grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs;
  size_t c_ssl_pem_key_cert_pairs_count;
  PyObject *references;
  PyObject *initial_cert_config;
  PyObject *cert_config_fetcher;
  int initial_cert_config_fetched;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":109
 * 
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_local_connect_type _local_connect_type
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_local_connect_type _local_connect_type;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":114
 * 
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_alts_credentials_options *c_options
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_alts_credentials_options *c_options;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi":22
 * cdef _interpret_event(grpc_event c_event)
 * 
 * cdef class _LatentEventArg:             # <<<<<<<<<<<<<<
 *   cdef grpc_completion_queue *c_completion_queue
 *   cdef object deadline
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg {
  PyObject_HEAD
  grpc_completion_queue *c_completion_queue;
  PyObject *deadline;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi":26
 *   cdef object deadline
 * 
 * cdef class CompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_completion_queue *c_completion_queue
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_vtab;
  grpc_completion_queue *c_completion_queue;
  int is_shutting_down;
  int is_shutdown;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class BaseEvent:             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent {
  PyObject_HEAD
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":18
 *   pass
 * 
 * cdef class ConnectivityEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":25
 * 
 * 
 * cdef class RequestCallEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *call;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *call_details;
  PyObject *invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":35
 * 
 * 
 * cdef class BatchOperationEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
  PyObject *batch_operations;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":43
 * 
 * 
 * cdef class ServerShutdownEvent(BaseEvent):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly grpc_completion_type completion_type
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent __pyx_base;
  grpc_completion_type completion_type;
  int success;
  PyObject *tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":16
 * 
 * 
 * cdef class Operation:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *__pyx_vtab;
  grpc_op c_op;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":25
 * 
 * 
 * cdef class SendInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _initial_metadata;
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_initial_metadata;
  int _flags;
  grpc_metadata *_c_initial_metadata;
  size_t _c_initial_metadata_count;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":36
 * 
 * 
 * cdef class SendMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly bytes _message
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_message;
  int _flags;
  grpc_byte_buffer *_c_message_byte_buffer;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":46
 * 
 * 
 * cdef class SendCloseFromClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":54
 * 
 * 
 * cdef class SendStatusFromServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _trailing_metadata
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  PyObject *_trailing_metadata;
  PyObject *_code;
  PyObject *_details;
  int _flags;
  grpc_metadata *_c_trailing_metadata;
  size_t _c_trailing_metadata_count;
  grpc_slice _c_details;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":68
 * 
 * 
 * cdef class ReceiveInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  PyObject *_initial_metadata;
  grpc_metadata_array _c_initial_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":78
 * 
 * 
 * cdef class ReceiveMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  grpc_byte_buffer *_c_message_byte_buffer;
  PyObject *_message;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":88
 * 
 * 
 * cdef class ReceiveStatusOnClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  grpc_metadata_array _c_trailing_metadata;
  grpc_status_code _c_code;
  grpc_slice _c_details;
  char const *_c_error_string;
  PyObject *_trailing_metadata;
  PyObject *_code;
  PyObject *_details;
  PyObject *_error_string;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":104
 * 
 * 
 * cdef class ReceiveCloseOnServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly int _flags
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation __pyx_base;
  int _flags;
  PyObject *_cancelled;
  int _c_cancelled;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":21
 * 
 * 
 * cdef class CallDetails:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_details c_details
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails {
  PyObject_HEAD
  grpc_call_details c_details;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":26
 * 
 * 
 * cdef class SslPemKeyCertPair:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_ssl_pem_key_cert_pair c_pair
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair {
  PyObject_HEAD
  grpc_ssl_pem_key_cert_pair c_pair;
  PyObject *private_key;
  PyObject *certificate_chain;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":32
 * 
 * 
 * cdef class CompressionOptions:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_compression_options c_options
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions {
  PyObject_HEAD
  grpc_compression_options c_options;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class Server:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_server *c_server
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_Server {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *__pyx_vtab;
  grpc_server *c_server;
  int is_started;
  int is_shutting_down;
  int is_shutdown;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *backup_shutdown_queue;
  PyObject *references;
  PyObject *registered_completion_queues;
  PyObject *registered_methods;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi":41
 *   cdef notify_shutdown_complete(self)
 * 
 * cdef class RegisteredMethod:             # <<<<<<<<<<<<<<
 * 
 *   cdef void *c_registered_method
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod {
  PyObject_HEAD
  void *c_registered_method;
  PyObject *method;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":16
 * 
 * 
 * cdef class _Tag:             # <<<<<<<<<<<<<<
 * 
 *   cdef BaseEvent event(self, grpc_event c_event)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *__pyx_vtab;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":21
 * 
 * 
 * cdef class _ConnectivityTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":28
 * 
 * 
 * cdef class _RequestCallTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *call;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *call_details;
  grpc_metadata_array c_invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":39
 * 
 * 
 * cdef class _BatchOperationTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef object _user_tag
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  PyObject *_operations;
  PyObject *_retained_call;
  grpc_op *c_ops;
  size_t c_nops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":51
 * 
 * 
 * cdef class _ServerShutdownTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   cdef readonly object _user_tag
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  PyObject *_user_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *_shutting_down_server;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":29
 * 
 * 
 * cdef class BaseCompletionQueue:             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue *_cq
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_vtab;
  grpc_completion_queue *_cq;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":35
 * 
 * 
 * cdef class _BoundEventLoop:             # <<<<<<<<<<<<<<
 *     cdef readonly object loop
 *     cdef readonly object read_socket  # socket.socket
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop {
  PyObject_HEAD
  PyObject *loop;
  PyObject *read_socket;
  int _has_reader;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":41
 * 
 * 
 * cdef class PollerCompletionQueue(BaseCompletionQueue):             # <<<<<<<<<<<<<<
 *     cdef bint _shutdown
 *     cdef cpp_event_queue _queue
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_base;
  int _shutdown;
  __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue _queue;
  std::mutex _queue_mutex;
  PyObject *_poller_thread;
  int _write_fd;
  PyObject *_read_socket;
  PyObject *_write_socket;
  PyObject *_loops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":17
 * 
 * 
 * cdef class AioRpcStatus(Exception):             # <<<<<<<<<<<<<<
 *     cdef readonly:
 *         grpc_status_code _code
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus {
  PyBaseExceptionObject __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_vtab;
  grpc_status_code _code;
  PyObject *_details;
  PyObject *_trailing_metadata;
  PyObject *_debug_error_string;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pxd.pxi":16
 * # distutils: language=c++
 * 
 * cdef class _AioState:             # <<<<<<<<<<<<<<
 *     cdef object lock  # threading.RLock
 *     cdef int refcount
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState {
  PyObject_HEAD
  PyObject *lock;
  int refcount;
  PyObject *engine;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *cq;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":16
 * 
 * 
 * cdef class CallbackFailureHandler:             # <<<<<<<<<<<<<<
 *     cdef str _core_function_name
 *     cdef object _error_details
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_vtab;
  PyObject *_core_function_name;
  PyObject *_error_details;
  PyObject *_exception_type;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":43
 * 
 * 
 * cdef class CallbackWrapper:             # <<<<<<<<<<<<<<
 *     cdef CallbackContext context
 *     cdef object _reference_of_future
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_vtab;
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext context;
  PyObject *_reference_of_future;
  PyObject *_reference_of_failure_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi":56
 * 
 * 
 * cdef class GrpcCallWrapper:             # <<<<<<<<<<<<<<
 *     cdef grpc_call* call
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper {
  PyObject_HEAD
  grpc_call *call;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":16
 * 
 * 
 * cdef class _AioCall(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 *     cdef:
 *         readonly AioChannel _channel
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *__pyx_vtab;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *_channel;
  PyObject *_references;
  PyObject *_deadline;
  PyObject *_done_callbacks;
  PyObject *_loop;
  int _is_locally_cancelled;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *_status;
  PyObject *_initial_metadata;
  PyObject *_waiters_status;
  PyObject *_waiters_initial_metadata;
  int _send_initial_metadata_flags;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pxd.pxi":21
 *     AIO_CHANNEL_STATUS_DESTROYED
 * 
 * cdef class AioChannel:             # <<<<<<<<<<<<<<
 *     cdef:
 *         grpc_channel * channel
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel {
  PyObject_HEAD
  grpc_channel *channel;
  PyObject *loop;
  PyObject *_target;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioChannelStatus _status;
  int _is_secure;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":15
 * # limitations under the License.
 * 
 * cdef class _HandlerCallDetails:             # <<<<<<<<<<<<<<
 *     cdef readonly str method
 *     cdef readonly tuple invocation_metadata
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails {
  PyObject_HEAD
  PyObject *method;
  PyObject *invocation_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":20
 * 
 * 
 * cdef class RPCState(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_details details
 *     cdef grpc_metadata_array request_metadata
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper __pyx_base;
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *__pyx_vtab;
  grpc_call_details details;
  grpc_metadata_array request_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *server;
  int client_closed;
  PyObject *abort_exception;
  int metadata_sent;
  int status_sent;
  grpc_status_code status_code;
  PyObject *py_status_code;
  PyObject *status_details;
  PyObject *trailing_metadata;
  PyObject *compression_algorithm;
  int disable_next_compression;
  PyObject *callbacks;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":46
 * 
 * 
 * cdef class _ServicerContext:             # <<<<<<<<<<<<<<
 *     cdef RPCState _rpc_state
 *     cdef object _loop  # asyncio.AbstractEventLoop
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *_rpc_state;
  PyObject *_loop;
  PyObject *_request_deserializer;
  PyObject *_response_serializer;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":53
 * 
 * 
 * cdef class _SyncServicerContext:             # <<<<<<<<<<<<<<
 *     cdef _ServicerContext _context
 *     cdef list _callbacks
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *_context;
  PyObject *_callbacks;
  PyObject *_loop;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":59
 * 
 * 
 * cdef class _MessageReceiver:             # <<<<<<<<<<<<<<
 *     cdef _ServicerContext _servicer_context
 *     cdef object _agen
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *_servicer_context;
  PyObject *_agen;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":72
 * 
 * 
 * cdef class _ConcurrentRpcLimiter:             # <<<<<<<<<<<<<<
 *     cdef int _maximum_concurrent_rpcs
 *     cdef int _active_rpcs
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter {
  PyObject_HEAD
  int _maximum_concurrent_rpcs;
  int _active_rpcs;
  int limiter_concurrency_exceeded;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":78
 * 
 * 
 * cdef class AioServer:             # <<<<<<<<<<<<<<
 *     cdef Server _server
 *     cdef list _generic_handlers
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer {
  PyObject_HEAD
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *__pyx_vtab;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *_server;
  PyObject *_generic_handlers;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus _status;
  PyObject *_loop;
  PyObject *_serving_task;
  PyObject *_shutdown_lock;
  PyObject *_shutdown_completed;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *_shutdown_callback_wrapper;
  PyObject *_crash_exception;
  PyObject *_interceptors;
  PyObject *_thread_pool;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *_limiter;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":16
 * 
 * 
 * cdef class _GrpcArgWrapper:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_arg arg
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper {
  PyObject_HEAD
  grpc_arg arg;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":423
 *   return LocalChannelCredentials(local_connect_type)
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":479
 * 
 * 
 * cdef class ComputeEngineChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_credentials* _c_creds
 *   cdef grpc_call_credentials* _call_creds
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
  grpc_channel_credentials *_c_creds;
  grpc_call_credentials *_call_creds;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":31
 *   pass
 * 
 * cdef class CensusContext:             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext {
  PyObject_HEAD
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":38
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata {
  PyObject_HEAD
  grpc_metadata *__pyx_v_c_metadata;
  grpc_credentials_plugin_metadata_cb __pyx_v_cb;
  size_t __pyx_v_metadata_count;
  void *__pyx_v_user_data;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata {
  PyObject_HEAD
  grpc_metadata_array *__pyx_v_c_metadata_array;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_outer_scope;
  size_t __pyx_genexpr_arg_0;
  size_t __pyx_v_index;
  size_t __pyx_t_0;
  size_t __pyx_t_1;
  size_t __pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context {
  PyObject_HEAD
  PyObject *__pyx_v_ctx;
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context {
  PyObject_HEAD
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ {
  PyObject_HEAD
  PyObject *__pyx_v_target;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator {
  PyObject_HEAD
  PyObject *__pyx_v_agen;
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_response;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_gen;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_queue;
  PyObject *__pyx_v_response;
  PyObject *__pyx_v_thread_pool;
  PyObject *__pyx_v_yield_to_queue;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_batch_operation_tag;
  grpc_event __pyx_v_c_event;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_v_future;
  PyObject *__pyx_v_grpc_call_error_string;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_operations;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrieves parsed messages from Core.
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message {
  PyObject_HEAD
  PyObject *__pyx_v_e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_op;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op;
  int __pyx_v_write_flag;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata {
  PyObject_HEAD
  int __pyx_v_flags;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op;
  PyObject *__pyx_v_trailing_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata {
  PyObject_HEAD
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_initial_metadata_op;
  PyObject *__pyx_v_ops;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_receive_initial_metadata_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_message_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_receive_status_on_client_op;
  PyObject *__pyx_v_request;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_send_close_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_send_message_op;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message {
  PyObject_HEAD
  PyObject *__pyx_v_received_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream {
  PyObject_HEAD
  PyObject *__pyx_v_batch_error;
  PyObject *__pyx_v_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_initial_metadata_op;
  PyObject *__pyx_v_outbound_initial_metadata;
  PyObject *__pyx_v_outbound_ops;
  PyObject *__pyx_v_request;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_close_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_message_op;
  PyObject *__pyx_v_status_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary {
  PyObject_HEAD
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_context;
  PyObject *__pyx_v_inbound_ops;
  PyObject *__pyx_v_metadata_sent_observer;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_receive_message_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_receive_status_on_client_op;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream {
  PyObject_HEAD
  PyObject *__pyx_v_batch_error;
  PyObject *__pyx_v_context;
  PyObject *__pyx_v_metadata_sent_observer;
  PyObject *__pyx_v_outbound_initial_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self;
  PyObject *__pyx_v_status_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state {
  PyObject_HEAD
  gpr_timespec __pyx_v_c_deadline;
  PyObject *__pyx_v_deadline;
  PyObject *__pyx_v_future;
  grpc_connectivity_state __pyx_v_last_observed_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read {
  PyObject_HEAD
  PyObject *__pyx_v_raw_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata {
  PyObject_HEAD
  PyObject *__pyx_v_metadata;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort {
  PyObject_HEAD
  grpc_status_code __pyx_v_actual_code;
  PyObject *__pyx_v_code;
  PyObject *__pyx_v_details;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
  PyObject *__pyx_v_trailing_metadata;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self;
  PyObject *__pyx_v_status;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor {
  PyObject_HEAD
  PyObject *__pyx_v_continuation;
  PyObject *__pyx_v_handler_call_details;
  PyObject *__pyx_v_interceptor;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_query_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler {
  PyObject_HEAD
  PyObject *__pyx_v_generic_handlers;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_handler_call_details;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_metadata;
  PyObject *__pyx_v_method;
  PyObject *__pyx_v_query_handlers;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response {
  PyObject_HEAD
  PyObject *__pyx_v_callback;
  PyObject *__pyx_v_finish_ops;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_request;
  PyObject *__pyx_v_response_message;
  PyObject *__pyx_v_response_raw;
  PyObject *__pyx_v_response_serializer;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_sync_servicer_context;
  PyObject *__pyx_v_unary_handler;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses {
  PyObject_HEAD
  PyObject *__pyx_v_async_response_generator;
  PyObject *__pyx_v_finish_ops;
  PyObject *__pyx_v_gen;
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_op;
  PyObject *__pyx_v_request;
  PyObject *__pyx_v_response_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
  PyObject *__pyx_v_stream_handler;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_sync_servicer_context;
  PyObject *__pyx_t_0;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_message;
  PyObject *__pyx_v_request_raw;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_message;
  PyObject *__pyx_v_request_raw;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver {
  PyObject_HEAD
  PyObject *__pyx_v_message;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_iterator;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  PyObject *__pyx_v_request_iterator;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions {
  PyObject_HEAD
  PyObject *__pyx_v_e;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_status_code;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
  PyObject *__pyx_t_6;
  PyObject *__pyx_t_7;
  PyObject *__pyx_t_8;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_op;
  PyObject *__pyx_v_ops;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro {
  PyObject_HEAD
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc {
  PyObject_HEAD
  int __pyx_v_concurrency_exceeded;
  PyObject *__pyx_v_generic_handlers;
  PyObject *__pyx_v_interceptors;
  PyObject *__pyx_v_loop;
  PyObject *__pyx_v_method_handler;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call {
  PyObject_HEAD
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_v_future;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_wrapper;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop {
  PyObject_HEAD
  int __pyx_v_concurrency_exceeded;
  PyObject *__pyx_v_rpc_coro;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state;
  PyObject *__pyx_v_rpc_task;
  PyObject *__pyx_v_rpc_tasks;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_server_started;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_server_started;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown {
  PyObject_HEAD
  PyObject *__pyx_v_grace;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
  PyObject *__pyx_t_3;
  PyObject *__pyx_t_4;
  PyObject *__pyx_t_5;
  PyObject *__pyx_t_6;
  PyObject *__pyx_t_7;
};


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
*/
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination {
  PyObject_HEAD
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self;
  PyObject *__pyx_v_timeout;
  PyObject *__pyx_t_0;
  PyObject *__pyx_t_1;
  PyObject *__pyx_t_2;
};


/* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():
*/
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ {
  PyObject_HEAD
  void (*__pyx_v_f)(void);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(void);
};

struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args {
  PyObject_HEAD
  PyObject *(*__pyx_v_f)(PyObject *, PyObject *);
};



/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":32
 * 
 * 
 * cdef class _ChannelArg:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self, argument, references) except *:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg {
  void (*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg;


/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":64
 * 
 * 
 * cdef class _ChannelArgs:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, arguments):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs {
  grpc_channel_args *(*c_args)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs;


/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":70
 * 
 * 
 * cdef class _CallState:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState {
  void (*maybe_save_registered_method)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *);
  void (*maybe_set_client_call_tracer_on_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *);
  void (*delete_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *__pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":32
 * 
 * 
 * cdef class CallCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials {
  grpc_call_credentials *(*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":122
 *     _LOGGER.error('Timed out waiting for C-core clean-up')
 * 
 * cdef class MetadataPluginCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, metadata_plugin, name):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":159
 * 
 * 
 * cdef class CompositeCallCredentials(CallCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, call_credentialses):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":168
 * 
 * 
 * cdef class ChannelCredentials:             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials {
  grpc_channel_credentials *(*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":189
 * 
 * 
 * cdef class SSLChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":223
 * 
 * 
 * cdef class CompositeChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":242
 * 
 * 
 * cdef class XDSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, fallback_credentials):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":410
 *   local_tcp = LOCAL_TCP
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":449
 *   return credentials
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, list service_accounts):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":99
 *       return _internal_latent_event(latent_event_arg)
 * 
 * cdef class CompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, shutdown_cq=False):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue {
  PyObject *(*_interpret_event)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":16
 * 
 * 
 * cdef class Operation:             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation {
  void (*c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *);
  void (*un_c)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":25
 * 
 * 
 * cdef class SendInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, initial_metadata, flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":49
 * 
 * 
 * cdef class SendMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, bytes message, int flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":75
 * 
 * 
 * cdef class SendCloseFromClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, int flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":91
 * 
 * 
 * cdef class SendStatusFromServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":122
 * 
 * 
 * cdef class ReceiveInitialMetadataOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":145
 * 
 * 
 * cdef class ReceiveMessageOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":187
 * 
 * 
 * cdef class ReceiveStatusOnClientOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":233
 * 
 * 
 * cdef class ReceiveCloseOnServerOperation(Operation):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, flags):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;


/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":38
 * 
 * 
 * cdef class Server:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, object arguments, bint xds):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server {
  PyObject *(*_c_shutdown)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *);
  PyObject *(*_c_request_unregistered_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *);
  PyObject *(*_c_request_registered_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *);
  PyObject *(*notify_shutdown_complete)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Server;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":16
 * 
 * 
 * cdef class _Tag:             # <<<<<<<<<<<<<<
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":22
 * 
 * 
 * cdef class _ConnectivityTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":31
 * 
 * 
 * cdef class _RequestCallTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  void (*prepare)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":51
 * 
 * 
 * cdef class _BatchOperationTag:             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag, operations, call):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  void (*prepare)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":80
 * 
 * 
 * cdef class _ServerShutdownTag(_Tag):             # <<<<<<<<<<<<<<
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_base;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *(*event)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *, grpc_event);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":38
 * 
 * 
 * cdef class BaseCompletionQueue:             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_completion_queue* c_ptr(self):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue {
  grpc_completion_queue *(*c_ptr)(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":72
 * 
 * 
 * cdef class PollerCompletionQueue(BaseCompletionQueue):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_base;
  void (*_poll)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *);
  PyObject *(*shutdown)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":17
 * 
 * 
 * cdef class AioRpcStatus(Exception):             # <<<<<<<<<<<<<<
 * 
 *     # The final status of gRPC is represented by three trailing metadata:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus {
  grpc_status_code (*code)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*details)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*trailing_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  PyObject *(*debug_error_string)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch);
  grpc_status_code (*c_code)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":16
 * 
 * 
 * cdef class CallbackFailureHandler:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self,
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler {
  PyObject *(*handle)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":33
 * 
 * 
 * cdef class CallbackWrapper:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper {
  void (*functor_run)(grpc_completion_queue_functor *, int);
  grpc_completion_queue_functor *(*c_functor)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":45
 * 
 * 
 * cdef class _AioCall(GrpcCallWrapper):             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall {
  void (*_create_grpc_call)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *);
  void (*_set_status)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *);
  void (*_set_initial_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *__pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":45
 * 
 * 
 * cdef class RPCState:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, AioServer server):
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState {
  PyObject *(*method)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  PyObject *(*invocation_metadata)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  void (*raise_for_termination)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  int (*get_write_flag)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *(*create_send_initial_metadata_op_if_not_sent)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *__pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState;


/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":894
 * 
 * 
 * cdef class AioServer:             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer {
  PyObject *(*thread_pool)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *);
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *__pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":423
 *   return LocalChannelCredentials(local_connect_type)
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;


/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":479
 * 
 * 
 * cdef class ComputeEngineChannelCredentials(ChannelCredentials):             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_credentials* _c_creds
 *   cdef grpc_call_credentials* _call_creds
*/

struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials {
  struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_base;
};
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* TupleAndListFromArray.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
#endif
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
#else
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
    #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
#else
    #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
#endif
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
#else
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* FixUpExtensionType.proto */
static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);

/* FetchSharedCythonModule.proto */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* dict_setdefault.proto */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value, int is_safe_type);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);

/* CallTypeTraverse.proto */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
#endif

/* PyMethodNew.proto */
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);

/* PyVectorcallFastCallDict.proto */
#if CYTHON_METH_FASTCALL && (CYTHON_VECTORCALL || CYTHON_BACKPORT_VECTORCALL)
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_BACKPORT_VECTORCALL ||\
        (CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL)
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    PyObject *defaults;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
                                                         PyTypeObject *defaults_type);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_BACKPORT_VECTORCALL || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static CYTHON_INLINE int __Pyx_ParseKeywords(
    PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
    PyObject *kwds2, PyObject *values[],
    Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* CallCFunction.proto */
#define __Pyx_CallCFunction(cfunc, self, args)\
    ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
    ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
    ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
    ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#if !CYTHON_VECTORCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject *const *args, Py_ssize_t nargs, PyObject *kwargs);
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if !CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03080000
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()
  #define __Pyx_PyFrame_GetLocalsplus(frame)  ((frame)->f_localsplus)
#else
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif
#endif
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs);

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
    __pyx_atomic_int_type initialized;
#endif
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
#if !CYTHON_ATOMICS
    return 1;
#else
    __pyx_nonatomic_int_type expected = 0;
    if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
        return 0;
    }
    return expected;
#endif
}
static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
#if CYTHON_ATOMICS
    __pyx_atomic_store(&cfunc->initialized, 2);
#endif
}
#else
#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
#endif

/* CallUnboundCMethod2.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* PyObjectFastCallMethod.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL)
#else
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf);
#endif

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* decode_c_string_utf16.proto */
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 0;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = -1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) {
    int byteorder = 1;
    return PyUnicode_DecodeUTF16(s, size, errors, &byteorder);
}

/* decode_c_bytes.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
         const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

/* decode_bytes.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_bytes(
         PyObject* string, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    char* as_c_string;
    Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    as_c_string = PyBytes_AS_STRING(string);
    size = PyBytes_GET_SIZE(string);
#else
    if (PyBytes_AsStringAndSize(string, &as_c_string, &size) < 0) {
        return NULL;
    }
#endif
    return __Pyx_decode_c_bytes(
        as_c_string, size,
        start, stop, encoding, errors, decode_func);
}

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* RejectKeywords.proto */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* HasAttr.proto */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyObjectLookupSpecial.proto */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* py_dict_pop.proto */
static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value);

/* CallUnboundCMethod1.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#else
#define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
#endif

/* PyObjectCallNoArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* pyfrozenset_new.proto */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it);

/* py_set_remove.proto */
static CYTHON_INLINE int __Pyx_PySet_Remove(PyObject *set, PyObject *key);

/* RaiseClosureNameError.proto */
static void __Pyx_RaiseClosureNameError(const char *varname);

/* set_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set);
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set);

/* py_dict_values.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* CallUnboundCMethod0.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_AddObjC(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* py_dict_keys.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d);

/* DictGetItem.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* PyObjectFormatAndDecref.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);

/* JoinPyUnicode.proto */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* PyObjectVectorCallKwBuilder.proto */
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#if CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall
#endif
#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n)
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict
#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n)
#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value)
#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value)
#endif

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* IterNextPlain.proto */
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator);
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void);
#endif

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* CallableCheck.proto */
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
#define __Pyx_PyCallable_Check(obj)   (Py_TYPE(obj)->tp_call != NULL)
#else
#define __Pyx_PyCallable_Check(obj)   PyCallable_Check(obj)
#endif

/* PyLongCompare.proto */
static CYTHON_INLINE int __Pyx_PyLong_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* pep479.proto */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen);

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* decode_c_string.proto */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

/* PyObjectVectorCallMethodKwBuilder.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_VectorcallMethod_CallFromBuilder PyObject_VectorcallMethod
#else
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#endif

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportDottedModule.proto */
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);

/* PyObjectDelAttr.proto */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)
#else
#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   __Pyx_PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_TrueDivideObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2))
#endif

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* PyLongBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE PyObject* __Pyx_PyLong_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyLong_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
    return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
}
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
#ifdef PyExceptionInstance_Check
  #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj)
#else
  #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException)
#endif

/* PyObject_Unicode.proto */
#define __Pyx_PyObject_Unicode(obj)\
    (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj))

/* PyUnicodeContains.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_ContainsTF(PyObject* substring, PyObject* text, int eq) {
    int result = PyUnicode_Contains(text, substring);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* ReturnWithStopIteration.proto */
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext);

/* CoroutineBase.proto */
struct __pyx_CoroutineObject;
typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct __pyx_CoroutineObject {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    __Pyx_pyiter_sendfunc yieldfrom_am_send;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    PyObject *gi_frame;
#if CYTHON_USE_SYS_MONITORING && (CYTHON_PROFILE || CYTHON_TRACE)
    PyMonitoringState __pyx_pymonitoring_state[__Pyx_MonitoringEventTypes_CyGen_count];
    uint64_t __pyx_pymonitoring_version;
#endif
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static __Pyx_PySendResult __Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static __Pyx_PySendResult __Pyx_Coroutine_Close(PyObject *self, PyObject **retval);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen);
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen);
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen);
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure);
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send);
#endif

/* Coroutine.proto */
#define __Pyx_Coroutine_USED
#define __Pyx_Coroutine_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CoroutineType)
#define __Pyx_Coroutine_Check(obj) __Pyx_Coroutine_CheckExact(obj)
#define __Pyx_CoroutineAwait_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CoroutineAwaitType)
#define __Pyx_Coroutine_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_mstate_global->__pyx_CoroutineType, body, code, closure, name, qualname, module_name)
static int __pyx_Coroutine_init(PyObject *module);
static PyObject *__Pyx__Coroutine_await(PyObject *coroutine);
typedef struct {
    PyObject_HEAD
    PyObject *coroutine;
} __pyx_CoroutineAwaitObject;
static __Pyx_PySendResult __Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self);

/* Coro_CheckExact.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_PyCoro_CheckExact(PyObject *o);
#else
#define __Pyx_PyCoro_CheckExact PyCoro_CheckExact
#endif

/* GetAwaitIter.proto */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o);
static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *o);

/* CoroutineYieldFrom.proto */
static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval);

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* ErrOccurredWithGIL.proto */
static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
static CYTHON_INLINE int __Pyx_unpack_tuple2(
    PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple);
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* dict_getitem_default.proto */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);

/* PyUnicode_Unicode.proto */
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj);

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_LIMITED_API  ||  (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000)
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* AsyncIter.proto */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAsyncIter(PyObject *o);
static CYTHON_INLINE PyObject *__Pyx_Coroutine_AsyncIterNext(PyObject *o);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00a2
    return PyList_Extend(L, v);
#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* DefaultPlacementNew.proto */
#include <new>
template<typename T>
void __Pyx_default_placement_construct(T* x) {
    new (static_cast<void*>(x)) T();
}

/* CallNextTpTraverse.proto */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);

/* CallNextTpClear.proto */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear);

/* ValidateBasesTuple.proto */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
static int __Pyx_MergeVtables(PyTypeObject *type);

/* LimitedApiGetTypeDict.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);
#endif

/* DelItemOnTypeDict.proto */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)

/* SetItemOnTypeDict.proto */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName
#else
static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
#endif
#else  // !LIMITED_API
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* ValidateExternBase.proto */
static int __Pyx_validate_extern_base(PyTypeObject *base);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_1_1
#define __PYX_HAVE_RT_ImportType_proto_3_1_1
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_1_1(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_1_1(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_1_1 {
   __Pyx_ImportType_CheckSize_Error_3_1_1 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_1_1 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_1_1 = 2
};
static PyTypeObject *__Pyx_ImportType_3_1_1(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_1 check_size);
#endif

/* ListPack.proto */
static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* CLineInTraceback.proto */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#else
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#endif

/* CodeObjectCache.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject __Pyx_CachedCodeObjectType;
#else
typedef PyCodeObject __Pyx_CachedCodeObjectType;
#endif
typedef struct {
    __Pyx_CachedCodeObjectType* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_int_type accessor_count;
  #endif
};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* GCCDiagnostics.proto */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus value);

/* CIntFromPy.proto */
static CYTHON_INLINE enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __Pyx_PyLong_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_status_code __Pyx_PyLong_As_grpc_status_code(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_status_code(grpc_status_code value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_connectivity_state __Pyx_PyLong_As_grpc_connectivity_state(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_local_connect_type(grpc_local_connect_type value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_local_connect_type __Pyx_PyLong_As_grpc_local_connect_type(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_completion_type __Pyx_PyLong_As_grpc_completion_type(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_connectivity_state(grpc_connectivity_state value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_call_error(grpc_call_error value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_completion_type(grpc_completion_type value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_op_type(grpc_op_type value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_compression_algorithm(grpc_compression_algorithm value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_compression_level(grpc_compression_level value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_compression_algorithm __Pyx_PyLong_As_grpc_compression_algorithm(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);

/* CIntFromPy.proto */
static CYTHON_INLINE grpc_call_error __Pyx_PyLong_As_grpc_call_error(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *);

/* Generator.proto */
#define __Pyx_Generator_USED
#define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_mstate_global->__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(PyObject *module);
static CYTHON_INLINE PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self);

/* AsyncGenerator.proto */
#define __Pyx_AsyncGen_USED
typedef struct {
    __pyx_CoroutineObject coro;
    PyObject *ag_finalizer;
    int ag_hooks_inited;
    int ag_closed;
    int ag_running_async;
} __pyx_PyAsyncGenObject;
#define __Pyx_AsyncGen_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_AsyncGenType)
#define __pyx_PyAsyncGenASend_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx_mstate_global->__pyx__PyAsyncGenASendType)
#define __pyx_PyAsyncGenAThrow_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx_mstate_global->__pyx__PyAsyncGenAThrowType)
static PyObject *__Pyx_async_gen_anext(PyObject *o);
static CYTHON_INLINE PyObject *__Pyx_async_gen_asend_iternext(PyObject *o);
static PyObject *__Pyx_async_gen_asend_send(PyObject *g, PyObject *arg);
static PyObject *__Pyx_async_gen_asend_close(PyObject *o, PyObject *args);
static PyObject *__Pyx_async_gen_athrow_close(PyObject *o, PyObject *args);
static PyObject *__Pyx__PyAsyncGenValueWrapperNew(PyObject *val);
static __pyx_CoroutineObject *__Pyx_AsyncGen_New(
            __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static int __pyx_AsyncGen_init(PyObject *module);
static void __Pyx_PyAsyncGen_Fini(void);
#if CYTHON_USE_FREELISTS && !defined(_PyAsyncGen_MAXFREELIST)
#define _PyAsyncGen_MAXFREELIST 80
#endif
struct __pyx__PyAsyncGenWrappedValue;
struct __pyx_PyAsyncGenASend;

/* GetRuntimeVersion.proto */
static unsigned long __Pyx_get_runtime_version(void);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* VoidPtrExport.proto */
static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);

/* MultiPhaseInitModuleState.proto */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
static PyObject *__Pyx_State_FindModule(void*);
static int __Pyx_State_AddModule(PyObject* module, void*);
static int __Pyx_State_RemoveModule(void*);
#elif CYTHON_USE_MODULE_STATE
#define __Pyx_State_FindModule PyState_FindModule
#define __Pyx_State_AddModule PyState_AddModule
#define __Pyx_State_RemoveModule PyState_RemoveModule
#endif

/* #### Code section: module_declarations ### */
/* CythonABIVersion.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
    #if CYTHON_METH_FASTCALL
        #define __PYX_FASTCALL_ABI_SUFFIX  "_fastcall"
    #else
        #define __PYX_FASTCALL_ABI_SUFFIX
    #endif
    #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#else
    #define __PYX_LIMITED_ABI_SUFFIX
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    #define __PYX_AM_SEND_ABI_SUFFIX
#elif __PYX_HAS_PY_AM_SEND == 2
    #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
#else
    #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
#endif
#ifndef __PYX_MONITORING_ABI_SUFFIX
    #define __PYX_MONITORING_ABI_SUFFIX
#endif
#if CYTHON_USE_TP_FINALIZE
    #define __PYX_TP_FINALIZE_ABI_SUFFIX
#else
    #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
#endif
#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
    #define __PYX_FREELISTS_ABI_SUFFIX
#else
    #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
#endif
#define CYTHON_ABI  __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self); /* proto*/
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self); /* proto*/
#endif
static void __pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, PyObject *__pyx_v_argument, PyObject *__pyx_v_references); /* proto*/
static grpc_channel_args *__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name, PyObject *__pyx_v_target); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto*/
static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, CYTHON_UNUSED grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event); /* proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto*/
static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_future); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(grpc_completion_queue_functor *__pyx_v_functor, int __pyx_v_success); /* proto*/
static grpc_completion_queue_functor *__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_status); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_initial_metadata); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto*/

/* Module declarations from "cpython.version" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "libc.string" */

/* Module declarations from "libc.stdio" */

/* Module declarations from "cpython.object" */

/* Module declarations from "cpython.ref" */

/* Module declarations from "cpython.exc" */

/* Module declarations from "cpython.module" */

/* Module declarations from "cpython.mem" */

/* Module declarations from "cpython.tuple" */

/* Module declarations from "cpython.list" */

/* Module declarations from "cpython.sequence" */

/* Module declarations from "cpython.mapping" */

/* Module declarations from "cpython.iterator" */

/* Module declarations from "cpython.number" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.bool" */

/* Module declarations from "cpython.long" */

/* Module declarations from "cpython.float" */

/* Module declarations from "cython" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.complex" */

/* Module declarations from "libc.stddef" */

/* Module declarations from "cpython.unicode" */

/* Module declarations from "cpython.pyport" */

/* Module declarations from "cpython.dict" */

/* Module declarations from "cpython.instance" */

/* Module declarations from "cpython.function" */

/* Module declarations from "cpython.method" */

/* Module declarations from "cpython.weakref" */

/* Module declarations from "cpython.getargs" */

/* Module declarations from "cpython.pythread" */

/* Module declarations from "cpython.pystate" */

/* Module declarations from "cpython.set" */

/* Module declarations from "cpython.buffer" */

/* Module declarations from "cpython.bytes" */

/* Module declarations from "cpython.pycapsule" */

/* Module declarations from "cpython.contextvars" */

/* Module declarations from "cpython" */

/* Module declarations from "libcpp.string_view" */

/* Module declarations from "libcpp.string" */

/* Module declarations from "libc.time" */

/* Module declarations from "libc" */

/* Module declarations from "libcpp.cast" */

/* Module declarations from "posix" */

/* Module declarations from "posix.types" */

/* Module declarations from "posix.unistd" */

/* Module declarations from "grpc._cython.cygrpc" */
static int __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms;
static grpc_arg_pointer_vtable __pyx_v_4grpc_7_cython_6cygrpc_default_vtable;
static std::mutex __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu;
static int __pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down;
static char const *__pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER;
static char const *__pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY;
static std::queue<void *>  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run;
static std::condition_variable __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv;
static std::mutex __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu;
static int __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue;
static int __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count;
static gpr_timespec __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE;
static float __pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S;
static int __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER = 0;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER = 0;
static int __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS = 0;
static PyObject *__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER = 0;
static struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER = 0;
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(PyObject *); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__get_metadata(void *, grpc_auth_metadata_context, grpc_credentials_plugin_metadata_cb, void *, grpc_metadata *, size_t *, grpc_status_code *, char const **); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__destroy(void *); /*proto*/
static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc__composition(PyObject *); /*proto*/
static grpc_event __pyx_f_4grpc_7_cython_6cygrpc__next(grpc_completion_queue *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__interpret_event(grpc_event); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(PyObject *, grpc_metadata **, size_t *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(grpc_metadata *, int); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadatum(grpc_slice, grpc_slice); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadata(grpc_metadata_array *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(grpc_slice); /*proto*/
static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(PyObject *); /*proto*/
static grpc_ssl_roots_override_result __pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback(char **); /*proto*/
static gpr_timespec __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(PyObject *); /*proto*/
static double __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(gpr_timespec); /*proto*/
static void *__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer(void *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer(void *); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__compare_pointer(void *, void *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(int, grpc_call *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___prefork(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_parent(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_child(void); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(int); /*proto*/
static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__encode(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__decode(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error(PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(grpc_completion_queue *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate(grpc_call *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_status_code, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, grpc_completion_queue *, PyObject *, PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_completion_queue *, PyObject *, int, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *); /*proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, int, PyObject *, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, grpc_completion_queue *, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *); /*proto*/
static struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, int, PyObject *, PyObject *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *, PyObject *, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *, grpc_connectivity_state, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *, grpc_status_code, PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__calls_drained(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__on_shutdown(void); /*proto*/
static char const *__pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(PyObject *); /*proto*/
static grpc_ssl_pem_key_cert_pair *__pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(PyObject *); /*proto*/
static grpc_ssl_certificate_config_reload_status __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper(void *, grpc_ssl_server_certificate_config **); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__latent_event(grpc_completion_queue *, PyObject *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(grpc_call *, void *); /*proto*/
static void *__pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(grpc_call *); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(void *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet(void); /*proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_deserialize(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_serialize(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(void); /*proto*/
static int __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(PyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize(void); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *, PyObject *); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *, PyObject *); /*proto*/
static PyObject *__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*)(void)); /*proto*/
static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *(*)(void)); /*proto*/
static PyObject *__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *(*)(PyObject *, PyObject *)); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "grpc._cython.cygrpc"
extern int __pyx_module_is_main_grpc___cython__cygrpc;
int __pyx_module_is_main_grpc___cython__cygrpc = 0;

/* Implementation of "grpc._cython.cygrpc" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_UnicodeDecodeError;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_StopAsyncIteration;
static PyObject *__pyx_builtin_DeprecationWarning;
static PyObject *__pyx_builtin_AssertionError;
static PyObject *__pyx_builtin_id;
static PyObject *__pyx_builtin_KeyboardInterrupt;
static PyObject *__pyx_builtin_SystemExit;
/* #### Code section: string_decls ### */
static const char __pyx_k_[] = "";
static const char __pyx_k_0[] = "0";
static const char __pyx_k_1[] = "1";
static const char __pyx_k_6[] = "\200\001\330\004\"\240!\2406\250\021";
static const char __pyx_k_A[] = "\200A\340\010\t\210\021";
static const char __pyx_k_Q[] = "\200\001\330\004\n\210+\220Q";
static const char __pyx_k_a[] = "\200a";
static const char __pyx_k_e[] = "e";
static const char __pyx_k_q[] = "\200!\330\004\010\210\017\220q\330\006\013\320\013\"\240!\240?\260!";
static const char __pyx_k_t[] = "t";
static const char __pyx_k_1F[] = "\200\001\330\004+\2501\250F\260!";
static const char __pyx_k_4q[] = "\200!\330\004\013\2104\210q";
static const char __pyx_k_AQ[] = "\200!\330\004\t\320\t \240\004\240A\240Q";
static const char __pyx_k_Ja[] = "\200!\330\004\005\330\010\t\330\010\014\210J\220a";
static const char __pyx_k_Qj[] = "\200\001\330\002\025\220Q\220j\240\001";
static const char __pyx_k__3[] = ": ";
static const char __pyx_k__4[] = "\": ";
static const char __pyx_k__5[] = "_";
static const char __pyx_k__6[] = ".";
static const char __pyx_k__7[] = "<";
static const char __pyx_k__8[] = " ";
static const char __pyx_k__9[] = ">";
static const char __pyx_k_aq[] = "\320\000*\250!\330\002&\240a\240q";
static const char __pyx_k_cb[] = "cb";
static const char __pyx_k_fn[] = "fn";
static const char __pyx_k_gc[] = "gc";
static const char __pyx_k_id[] = "id";
static const char __pyx_k_lk[] = "lk";
static const char __pyx_k_ok[] = "ok";
static const char __pyx_k_op[] = "op";
static const char __pyx_k_os[] = "os";
static const char __pyx_k_t6[] = "\320\004\032\230!\330\010\017\210t\2206\230\021";
static const char __pyx_k_0_l[] = "\200!\330\t\n\330\0060\260\001\260\021\260$\260l\300!";
static const char __pyx_k_0_q[] = "\200\001\330\0040\260\001\260\026\260q";
static const char __pyx_k_1Kq[] = "\200\001\340\007\010\330\004#\2401\240K\250q\260\001\340\002\t\210\021";
static const char __pyx_k_1_2[] = "\200\001\330\002\t\320\t#\2401";
static const char __pyx_k_1_3[] = "\200!\330\004\013\2101";
static const char __pyx_k_1_4[] = "\200\001\330\004\013\2101";
static const char __pyx_k_6_y[] = "\200!\330\004\n\210!\2106\220\026\220y\240\001";
static const char __pyx_k_8_q[] = "\200\001\330\0048\270\001\270\026\270q";
static const char __pyx_k_A_2[] = "\210\001\330\014\022\220\"\220A";
static const char __pyx_k_A_3[] = "\200A\330\r\021\220\021\330\014\020\320\020(\250\001";
static const char __pyx_k_A_I[] = "\200A\330\010\014\210I\220\\\240\021\240!";
static const char __pyx_k_A_K[] = "\200A\330\010\014\210K\320\027)\250\021";
static const char __pyx_k_A_a[] = "\200A\330\r\016\330\014\020\220\006\220a";
static const char __pyx_k_A_q[] = "\200A\340\010\017\210q\220\001\220\021";
static const char __pyx_k_EOF[] = "EOF";
static const char __pyx_k_Q_2[] = "\200\001\330\002\003\330\002\005\200Q\330\004\005\330\002\"\240!\330\002\010\210\t\220\021\220!";
static const char __pyx_k_T_1[] = "\200!\330\004\013\320\013(\250\001\330\010\014\320\014\035\230T\240\036\250|\2701";
static const char __pyx_k_Tag[] = "_Tag";
static const char __pyx_k_YES[] = "YES";
static const char __pyx_k_Yes[] = "Yes";
static const char __pyx_k__12[] = "]";
static const char __pyx_k__13[] = "?";
static const char __pyx_k__14[] = "\220\001";
static const char __pyx_k__15[] = "\200\001";
static const char __pyx_k__16[] = "\210!";
static const char __pyx_k__17[] = "\210!\360\006\000,-";
static const char __pyx_k__18[] = "\210!\360\006\000-.";
static const char __pyx_k__19[] = "\210!\340\032\033\330&'";
static const char __pyx_k__20[] = "\200\001\330\002\003\330\002\030\230\001";
static const char __pyx_k__21[] = "\200\001\330\002\t\320\t \240\001\240\021";
static const char __pyx_k__22[] = "\200\001\330\002\t\320\t(\250\001\250\021";
static const char __pyx_k__23[] = "\200\001\330\014\022\220!";
static const char __pyx_k__24[] = "\200\001\330\002!\240\021\240!";
static const char __pyx_k__25[] = "\200\001\330\002\t\210\021";
static const char __pyx_k__26[] = "\200\001\360\014\000\005\022\220\021";
static const char __pyx_k_a_2[] = "\200\001\330\004\013\210;\220a";
static const char __pyx_k_add[] = "add";
static const char __pyx_k_bin[] = "-bin";
static const char __pyx_k_ctx[] = "ctx";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_gen[] = "gen";
static const char __pyx_k_get[] = "get";
static const char __pyx_k_hub[] = "hub";
static const char __pyx_k_int[] = "__int__";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_len[] = "__len__";
static const char __pyx_k_low[] = "low";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_ops[] = "ops";
static const char __pyx_k_pop[] = "pop";
static const char __pyx_k_put[] = "put";
static const char __pyx_k_q_2[] = "\200\001\330\002\t\320\t\037\230q\240\001";
static const char __pyx_k_q_3[] = "\200!\330\t\n\330\006/\250q\260\001\260\024\260\\\300\021";
static const char __pyx_k_q_D[] = "\200!\330\004\013\320\013\037\230q\240\004\240D\250\001";
static const char __pyx_k_q_a[] = "\200\001\330\004'\240q\250\006\250a";
static const char __pyx_k_q_q[] = "\200\001\360\026\000\005\006\330\017\020\330\010\017\210q\330\013\014\330\010\017\210q";
static const char __pyx_k_q_z[] = "\200\001\330\004\007\200q\330\010\023\320\023'\240z\260\021";
static const char __pyx_k_run[] = "run";
static const char __pyx_k_str[] = "str";
static const char __pyx_k_sys[] = "sys";
static const char __pyx_k_tag[] = "tag";
static const char __pyx_k_uds[] = "uds";
static const char __pyx_k_vQa[] = "\200\001\330\002\017\210v\220Q\220a";
static const char __pyx_k_xds[] = "xds";
static const char __pyx_k_yes[] = "yes";
static const char __pyx_k_1D_6[] = "\200!\330\004\013\2101\210D\320\020!\240\024\240^\2606\270\021";
static const char __pyx_k_4_at[] = "\200!\330\004\013\2104\320\017 \240\001\240\025\240a\240t\320+@\300\001";
static const char __pyx_k_8_EQ[] = "\200\001\330\002'\320'8\270\001\330\002\r\320\r\036\320\036E\300Q\330\002\t\210\021";
static const char __pyx_k_AT_A[] = "\200!\330\t\n\330\006$\240A\240T\250\021\330\004\010\320\010\034\230A";
static const char __pyx_k_A_4q[] = "\200A\330\010\020\320\020\"\240!\2404\240q";
static const char __pyx_k_A_HE[] = "\200A\330\010\014\210H\220E\230\021";
static const char __pyx_k_A_Kq[] = "\200A\330\010\014\210K\220q";
static const char __pyx_k_A_t1[] = "\200A\330\010\017\210t\2201";
static const char __pyx_k_Call[] = "Call";
static const char __pyx_k_Enum[] = "Enum";
static const char __pyx_k_Lock[] = "Lock";
static const char __pyx_k_None[] = "None";
static const char __pyx_k_TRUE[] = "TRUE";
static const char __pyx_k_True[] = "True";
static const char __pyx_k_agen[] = "agen";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_bool[] = "__bool__";
static const char __pyx_k_call[] = "call";
static const char __pyx_k_code[] = "code";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_coro[] = "coro";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_done[] = "done";
static const char __pyx_k_enum[] = "enum";
static const char __pyx_k_exit[] = "__exit__";
static const char __pyx_k_func[] = "__func__";
static const char __pyx_k_grpc[] = "grpc";
static const char __pyx_k_gzip[] = "gzip";
static const char __pyx_k_high[] = "high";
static const char __pyx_k_host[] = "host";
static const char __pyx_k_idle[] = "idle";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_item[] = "item";
static const char __pyx_k_iter[] = "__iter__";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_keys[] = "keys";
static const char __pyx_k_loop[] = "loop";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_next[] = "next";
static const char __pyx_k_none[] = "none";
static const char __pyx_k_peer[] = "peer";
static const char __pyx_k_poll[] = "poll";
static const char __pyx_k_pool[] = "pool";
static const char __pyx_k_q_9D[] = "\200\001\330\004\007\200q\330\010\023\2209\230D\240\001\240\021";
static const char __pyx_k_read[] = "read";
static const char __pyx_k_recv[] = "recv";
static const char __pyx_k_repr[] = "_repr";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_spec[] = "__spec__";
static const char __pyx_k_t1IQ[] = "\210\001\330\014\017\210t\2201\220I\230Q";
static const char __pyx_k_t6_2[] = "\320\004\031\230\021\330\010\017\210t\2206\230\021";
static const char __pyx_k_task[] = "task";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_time[] = "time";
static const char __pyx_k_true[] = "true";
static const char __pyx_k_type[] = "type";
static const char __pyx_k_utf8[] = "utf8";
static const char __pyx_k_wait[] = "wait";
static const char __pyx_k_wrap[] = "wrap";
static const char __pyx_k_4_A_a[] = "\200!\360\006\000\005\014\2104\210}\230A\230\\\250\025\250a";
static const char __pyx_k_8_B_1[] = "\200\001\330\002'\320'8\270\001\330\002\r\320\r\036\320\036B\300!\3001\330\002\t\210\021";
static const char __pyx_k_A_HJa[] = "\200A\330\010\014\210H\220J\230a";
static const char __pyx_k_A_a_4[] = "\200\001\360\014\000\n\033\230!\330\010\017\320\017 \240\n\250\"\250A\330\010\031\230\035\240a\330\010\013\2104\320\017 \240\001\330\014 \240\001";
static const char __pyx_k_A_gQa[] = "\200A\330\010\014\320\014\036\230g\240Q\240a";
static const char __pyx_k_A_q_2[] = "\200A\340\010\017\210q\220\001";
static const char __pyx_k_A_q_3[] = "\200A\330\010\t\340\010\017\210q";
static const char __pyx_k_A_q_4[] = "\200A\330\010\017\210q";
static const char __pyx_k_A_q_Q[] = "\200A\340\010\017\210q\220\001\220\024\220Q";
static const char __pyx_k_A_t9E[] = "\200A\330\010\017\210t\2209\230E\240\021";
static const char __pyx_k_A_t9M[] = "\200A\330\010\017\210t\2209\230M\250\021";
static const char __pyx_k_A_t_2[] = "\200A\330\010\017\210t\220;\320\0362\260!";
static const char __pyx_k_A_t_a[] = "\200A\330\010\017\210t\220;\230a";
static const char __pyx_k_A_woQ[] = "\200A\340\010\017\210w\220o\240Q";
static const char __pyx_k_EOF_2[] = "_EOF";
static const char __pyx_k_Group[] = "Group";
static const char __pyx_k_Queue[] = "Queue";
static const char __pyx_k_RLock[] = "RLock";
static const char __pyx_k_abort[] = "abort";
static const char __pyx_k_aexit[] = "__aexit__";
static const char __pyx_k_aiter[] = "__aiter__";
static const char __pyx_k_anext[] = "__anext__";
static const char __pyx_k_apply[] = "apply";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_await[] = "__await__";
static const char __pyx_k_c_key[] = "c_key";
static const char __pyx_k_class[] = "__class__";
static const char __pyx_k_clear[] = "clear";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_creds[] = "creds";
static const char __pyx_k_debug[] = "debug";
static const char __pyx_k_enter[] = "__enter__";
static const char __pyx_k_errno[] = "errno";
static const char __pyx_k_error[] = "error";
static const char __pyx_k_event[] = "event";
static const char __pyx_k_flags[] = "flags";
static const char __pyx_k_grace[] = "grace";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_is_ok[] = "is_ok";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_q_0_a[] = "\200\001\330\023\037\230q\320 0\260\n\270$\270a";
static const char __pyx_k_q_a_1[] = "\200\001\330\002\003\340\007\010\330\004\t\320\t\037\230q\240\001\330\004(\250\001\330\002\006\200a\330\002\020\220\013\2301";
static const char __pyx_k_q_q_2[] = "\320\004\027\220q\330\010\017\210q";
static const char __pyx_k_q_z_2[] = "\200\001\330\004\007\200q\330\010\023\320\023'\240z\260\021\330\010!\240\021";
static const char __pyx_k_queue[] = "queue";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_ready[] = "ready";
static const char __pyx_k_run_2[] = "_run";
static const char __pyx_k_sleep[] = "sleep";
static const char __pyx_k_spawn[] = "spawn";
static const char __pyx_k_start[] = "start";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_str_2[] = "__str__";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_upper[] = "upper";
static const char __pyx_k_utf_8[] = "utf-8";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_write[] = "write";
static const char __pyx_k_8_AUUV[] = "\200\001\330\002'\320'8\270\001\330\002\r\320\r\036\320\036@\300\001\320AU\320UV\360\010\000\003\n\210\021";
static const char __pyx_k_AT_2Gq[] = "\200!\340\004\013\320\013$\240A\240T\250\031\3202G\300q";
static const char __pyx_k_A_IYaq[] = "\200A\330\010\014\210I\220Y\230a\230q";
static const char __pyx_k_A_I_1A[] = "\200A\330\010\014\210I\320\025+\2501\250A";
static const char __pyx_k_A_I_6a[] = "\200A\330\010\014\210I\320\0256\260a";
static const char __pyx_k_A_I_Qa[] = "\200A\330\010\014\210I\320\025%\240Q\240a";
static const char __pyx_k_A_K_31[] = "\200A\330\010\014\210K\320\0273\2601";
static const char __pyx_k_A_Kwaq[] = "\200A\330\010\014\210K\220w\230a\230q";
static const char __pyx_k_A_t8_1[] = "\200A\330\010\017\210t\2208\230?\250!\2501";
static const char __pyx_k_A_t9Cq[] = "\200A\330\010\017\210t\2209\230C\230q";
static const char __pyx_k_A_t9G1[] = "\200A\360\022\000\t\020\210t\2209\230G\2401";
static const char __pyx_k_A_t9O1[] = "\200A\330\010\017\210t\2209\230O\2501";
static const char __pyx_k_A_t9_0[] = "\200A\330\010\017\210t\2209\320\0340\260\001";
static const char __pyx_k_A_t9_A[] = "\200A\330\010\017\210t\2209\320\034,\250A";
static const char __pyx_k_A_t9_a[] = "\200A\330\010\017\210t\2209\320\034.\250a";
static const char __pyx_k_Failed[] = "Failed \"";
static const char __pyx_k_LOGGER[] = "_LOGGER";
static const char __pyx_k_POLLER[] = "POLLER";
static const char __pyx_k_Server[] = "Server";
static const char __pyx_k_Thread[] = "Thread";
static const char __pyx_k_aenter[] = "__aenter__";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_atexit[] = "atexit";
static const char __pyx_k_before[] = "before";
static const char __pyx_k_c_peer[] = "c_peer";
static const char __pyx_k_cancel[] = "cancel";
static const char __pyx_k_closed[] = "closed";
static const char __pyx_k_codecs[] = "codecs";
static const char __pyx_k_common[] = "_common";
static const char __pyx_k_cygrpc[] = ".cygrpc";
static const char __pyx_k_daemon[] = "daemon";
static const char __pyx_k_decode[] = "decode";
static const char __pyx_k_dict_2[] = "_dict";
static const char __pyx_k_enable[] = "enable";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_exit_2[] = "_exit";
static const char __pyx_k_fileno[] = "fileno";
static const char __pyx_k_format[] = "format";
static const char __pyx_k_future[] = "future";
static const char __pyx_k_gevent[] = "gevent";
static const char __pyx_k_medium[] = "medium";
static const char __pyx_k_method[] = "method";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_plugin[] = "plugin";
static const char __pyx_k_poller[] = "poller";
static const char __pyx_k_q_9HAQ[] = "\200\001\330\004\007\200q\330\010\023\2209\230H\240A\240Q";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_repr_2[] = "__repr__";
static const char __pyx_k_result[] = "result";
static const char __pyx_k_return[] = "return";
static const char __pyx_k_server[] = "server";
static const char __pyx_k_shield[] = "shield";
static const char __pyx_k_socket[] = "socket";
static const char __pyx_k_status[] = "status";
static const char __pyx_k_target[] = "target";
static const char __pyx_k_thread[] = "_thread";
static const char __pyx_k_typing[] = "typing";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_1_T_7_q[] = "\200!\330\004\005\360\006\000\005\006\360\n\000\005\014\320\013\033\2301\330\010\014\320\014\035\230T\320!7\260|\300<\310q";
static const char __pyx_k_4_A_a_2[] = "\200!\330\004\013\2104\210}\230A\230\\\250\025\250a";
static const char __pyx_k_6a_AQ_1[] = "\200\001\340\t\n\330\010!\320!6\260a\330\004\030\230\014\240A\240Q\330\004\013\2101";
static const char __pyx_k_A_1_N_Q[] = "\200A\330\010\014\320\014#\2401\330\010\014\210N\230)\240:\250Q";
static const char __pyx_k_A_4_1_1[] = "\200!\340\t\n\330\006\017\320\017<\270A\330\n\013\2104\210|\2301\330\004\013\2101";
static const char __pyx_k_A_A_3_Q[] = "\210A\330\020\021\330\024\032\230\"\230A\340\024\037\320\0373\260:\270Q";
static const char __pyx_k_A_Kq_AT[] = "\200A\330\010\014\210K\220q\330\010\034\230A\230T\240\021";
static const char __pyx_k_A_L_Q_a[] = "\200A\330\010\014\210L\230\001\230\034\240Q\330\014\026\220a\330\014\r\330\014\r\330\014\r";
static const char __pyx_k_A_T_t3I[] = "\200A\330\006\"\240!\330\010\014\320\014\035\230T\240\036\250t\3203I\310\021";
static const char __pyx_k_A_WA_AT[] = "\200A\330\006\t\210\024\210W\220A\330\010$\240A\240T\250\031\260!";
static const char __pyx_k_A_k_a_q[] = "\200A\330\010\016\210k\230\035\240a\330\010\t\340\010\017\210q";
static const char __pyx_k_A_t9D_A[] = "\200A\330\010\017\210t\2209\230D\320 <\270A";
static const char __pyx_k_A_t_1_K[] = "\200A\330\r\021\220\021\330\014\020\320\020(\250\001\330\014\017\210t\320\023(\250\003\2501\330\020\024\220K\230{\250!";
static const char __pyx_k_A_t_m3j[] = "\200A\330\010\017\210t\220;\230m\2503\250j\270\001";
static const char __pyx_k_AioCall[] = "_AioCall";
static const char __pyx_k_Channel[] = "Channel";
static const char __pyx_k_Unknown[] = "Unknown";
static const char __pyx_k_aborted[] = "aborted";
static const char __pyx_k_address[] = "address";
static const char __pyx_k_asyncio[] = "asyncio";
static const char __pyx_k_c_event[] = "c_event";
static const char __pyx_k_capsule[] = "capsule";
static const char __pyx_k_cb_func[] = "cb_func";
static const char __pyx_k_channel[] = "channel";
static const char __pyx_k_closing[] = "closing";
static const char __pyx_k_context[] = "context";
static const char __pyx_k_deflate[] = "deflate";
static const char __pyx_k_destroy[] = "destroy";
static const char __pyx_k_details[] = "details";
static const char __pyx_k_disable[] = "disable";
static const char __pyx_k_discard[] = "discard";
static const char __pyx_k_environ[] = "environ";
static const char __pyx_k_genexpr[] = "genexpr";
static const char __pyx_k_get_hub[] = "get_hub";
static const char __pyx_k_handler[] = "handler";
static const char __pyx_k_inspect[] = "inspect";
static const char __pyx_k_logging[] = "logging";
static const char __pyx_k_maxsize[] = "maxsize";
static const char __pyx_k_members[] = "__members__";
static const char __pyx_k_message[] = "message";
static const char __pyx_k_operate[] = "operate";
static const char __pyx_k_options[] = "options";
static const char __pyx_k_partial[] = "partial";
static const char __pyx_k_pkgutil[] = "pkgutil";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_q_q_s_q[] = "\200\001\330\002\003\340\007\010\330\004\t\320\t\037\230q\240\001\330\004\030\230\001\330\004\027\220q\330\004\010\210\001\330\002\005\320\005\027\220s\230!\330\004\027\220q";
static const char __pyx_k_request[] = "request";
static const char __pyx_k_service[] = "service";
static const char __pyx_k_span_id[] = "span_id";
static const char __pyx_k_success[] = "success";
static const char __pyx_k_timeout[] = "timeout";
static const char __pyx_k_to_call[] = "to_call";
static const char __pyx_k_unknown[] = "unknown";
static const char __pyx_k_warning[] = "warning";
static const char __pyx_k_wrapper[] = "wrapper";
static const char __pyx_k_8_22_A_q[] = "\200\001\330\002'\320'8\270\001\330\0022\3202]\320]^\330\002\r\320\r\036\320\036A\300\021\300!\340\002'\240q\250\001\330\002\t\210\021";
static const char __pyx_k_A_1_Q_HF[] = "\200A\330\010\013\2101\330\014\027\320\027+\250:\260Q\330\010\014\210H\220F\230!";
static const char __pyx_k_A_1_q_gQ[] = "\200A\330\010\021\220\027\320\0301\260\021\330\014\020\220\t\320\031/\250q\260\001\330\014\020\220\001\330\010\016\210g\220Q";
static const char __pyx_k_A_4q_1_q[] = "\200A\360\016\000\t\014\2104\210q\330\014\023\2201\340\010\017\210q";
static const char __pyx_k_A_AQ_K_E[] = "\200A\330\010,\250A\250Q\330\010\014\210K\320\027,\250E\260\021\260!";
static const char __pyx_k_A_t8_1_Q[] = "\200A\330\010\017\210t\2208\230?\250!\2501\330+=\270Q";
static const char __pyx_k_AioState[] = "_AioState";
static const char __pyx_k_EX_USAGE[] = "EX_USAGE";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_Optional[] = "Optional";
static const char __pyx_k_RPCState[] = "RPCState";
static const char __pyx_k_a_Jc_a_A[] = "\200\001\360\014\000\n\033\230!\330\010\031\230\035\240a\330\010\013\320\013\034\230J\240c\250\021\330\014&\240a\330\010\034\230A";
static const char __pyx_k_add_note[] = "add_note";
static const char __pyx_k_c_j_6a_1[] = "\200\001\330\004 \320 @\300\001\330\010\t\330\010\t\330\010\t\340\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\360\006\000\033&\320%6\260a\330\004\013\2101";
static const char __pyx_k_c_target[] = "c_target";
static const char __pyx_k_callback[] = "callback";
static const char __pyx_k_capacity[] = "capacity";
static const char __pyx_k_channels[] = "channels";
static const char __pyx_k_daemonic[] = "daemonic";
static const char __pyx_k_deadline[] = "deadline";
static const char __pyx_k_end_time[] = "end_time";
static const char __pyx_k_endswith[] = "endswith";
static const char __pyx_k_exc_info[] = "exc_info";
static const char __pyx_k_get_data[] = "get_data";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_identity[] = "identity";
static const char __pyx_k_internal[] = "internal";
static const char __pyx_k_is_valid[] = "is_valid";
static const char __pyx_k_metadata[] = "metadata";
static const char __pyx_k_object_2[] = "<{} object>";
static const char __pyx_k_property[] = "property";
static const char __pyx_k_pyx_capi[] = "__pyx_capi__";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_q_q_s_Kq[] = "\200\001\330\002\003\330\007\010\330\004\t\320\t\037\230q\240\001\330\004\027\220q\330\004\007\320\007\027\220s\230!\330\006\024\220K\230q\330\004\010\210\001";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_register[] = "register";
static const char __pyx_k_response[] = "response";
static const char __pyx_k_rpc_coro[] = "rpc_coro";
static const char __pyx_k_rpc_task[] = "rpc_task";
static const char __pyx_k_set_code[] = "set_code";
static const char __pyx_k_set_name[] = "__set_name__";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_shutdown[] = "shutdown";
static const char __pyx_k_trace_id[] = "trace_id";
static const char __pyx_k_user_tag[] = "user_tag";
static const char __pyx_k_wait_for[] = "wait_for";
static const char __pyx_k_warnings[] = "warnings";
static const char __pyx_k_A_4_S_A_0[] = "\200A\330\010\013\2104\210~\230S\240\004\240A\330\014\020\320\0200\260\001\340\014\020\320\020!\240\021";
static const char __pyx_k_A_4_aq_4A[] = "\200A\330\010\013\2104\210{\230!\330\014\022\220,\230a\230q\340\014\020\220\013\320\0334\260A";
static const char __pyx_k_A_4uA_A_q[] = "\200A\330\010\013\2104\210u\220A\330\014\024\220A\340\014\020\320\020 \240\007\240q\250\001";
static const char __pyx_k_A_K_oQa_K[] = "\200A\330\010\014\210K\220\240o\260Q\260a\330\010\014\210K\320\027)\250\021";
static const char __pyx_k_A_Yhaz_Kz[] = "\200A\330\010\r\210Y\220h\230a\230z\250\021\330\010\014\210K\220z\240\027\250\001\250\021";
static const char __pyx_k_AioServer[] = "AioServer";
static const char __pyx_k_BaseError[] = "BaseError";
static const char __pyx_k_BaseEvent[] = "BaseEvent";
static const char __pyx_k_CallError[] = "CallError";
static const char __pyx_k_CallState[] = "_CallState";
static const char __pyx_k_Call_peer[] = "Call.peer";
static const char __pyx_k_Condition[] = "Condition";
static const char __pyx_k_EOF___len[] = "_EOF.__len__";
static const char __pyx_k_EOF___str[] = "_EOF.__str__";
static const char __pyx_k_EOF__repr[] = "_EOF._repr";
static const char __pyx_k_ForkState[] = "_ForkState";
static const char __pyx_k_Metadatum[] = "_Metadatum";
static const char __pyx_k_Operation[] = "Operation";
static const char __pyx_k_Timed_out[] = "Timed out";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_WriteFlag[] = "WriteFlag";
static const char __pyx_k_a_c_j_A_1[] = "\200\001\330\004 \320 >\270a\330\010\t\340\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\330:<\270A\330\004\013\2101";
static const char __pyx_k_algorithm[] = "algorithm";
static const char __pyx_k_arguments[] = "arguments";
static const char __pyx_k_bind_loop[] = "bind_loop";
static const char __pyx_k_bytes_ctx[] = "bytes_ctx";
static const char __pyx_k_c_details[] = "c_details";
static const char __pyx_k_c_options[] = "c_options";
static const char __pyx_k_cancelled[] = "cancelled";
static const char __pyx_k_condition[] = "_condition";
static const char __pyx_k_data_loss[] = "data_loss";
static const char __pyx_k_decrement[] = "decrement";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_error_str[] = "error_str";
static const char __pyx_k_exception[] = "exception";
static const char __pyx_k_functools[] = "functools";
static const char __pyx_k_getLogger[] = "getLogger";
static const char __pyx_k_hex_codec[] = "hex_codec";
static const char __pyx_k_increment[] = "increment";
static const char __pyx_k_isenabled[] = "isenabled";
static const char __pyx_k_local_tcp[] = "local_tcp";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_not_found[] = "not_found";
static const char __pyx_k_print_exc[] = "print_exc";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_rpc_state[] = "rpc_state";
static const char __pyx_k_rpc_tasks[] = "rpc_tasks";
static const char __pyx_k_server_id[] = "server_id";
static const char __pyx_k_setDaemon[] = "setDaemon";
static const char __pyx_k_socket_id[] = "socket_id";
static const char __pyx_k_threading[] = "threading";
static const char __pyx_k_traceback[] = "traceback";
static const char __pyx_k_used_mask[] = "used_mask";
static const char __pyx_k_vQ_A_q_V1[] = "\200\001\340\002\003\330\002\003\330\002\003\330\002\003\330\002\003\340\t\n\330\t\n\340\002\017\210v\220Q\330\002\030\230\n\240(\250\"\250A\340\002\027\220q\330\002 \240\001\340\002\022\220&\230\005\230V\2401\360\006\000\003\032\230\021\230!\360\006\000\003\t\210\t\220\021\220!";
static const char __pyx_k_wait_time[] = "wait_time";
static const char __pyx_k_AQ_c_j_7_1[] = "\200\001\330\004 \320 <\270A\270Q\330\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\3307:\270!\330\004\013\2101";
static const char __pyx_k_A_1_q_iq_j[] = "\200A\340\032\033\330&'\330\010\021\220\027\320\0301\260\021\330\014\020\220\t\230\026\230q\240\006\240i\250q\330\014\020\220\001\340\010\016\210j\230\001";
static const char __pyx_k_AbortError[] = "AbortError";
static const char __pyx_k_AioChannel[] = "AioChannel";
static const char __pyx_k_CallHandle[] = "CallHandle";
static const char __pyx_k_ChannelArg[] = "_ChannelArg";
static const char __pyx_k_EMPTY_MASK[] = "_EMPTY_MASK";
static const char __pyx_k_EOF___bool[] = "_EOF.__bool__";
static const char __pyx_k_EOF___repr[] = "_EOF.__repr__";
static const char __pyx_k_StatusCode[] = "StatusCode";
static const char __pyx_k_SystemExit[] = "SystemExit";
static const char __pyx_k_Unexpected[] = "Unexpected [";
static const char __pyx_k_UsageError[] = "UsageError";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_add_reader[] = "add_reader";
static const char __pyx_k_c_deadline[] = "c_deadline";
static const char __pyx_k_call_creds[] = "call_creds";
static const char __pyx_k_call_error[] = "call_error";
static const char __pyx_k_call_queue[] = "call_queue";
static const char __pyx_k_call_state[] = "call_state";
static const char __pyx_k_census_ctx[] = "census_ctx";
static const char __pyx_k_channel_id[] = "channel_id";
static const char __pyx_k_connecting[] = "connecting";
static const char __pyx_k_error_code[] = "error_code";
static const char __pyx_k_finish_ops[] = "finish_ops";
static const char __pyx_k_fork_epoch[] = "fork_epoch";
static const char __pyx_k_fork_state[] = "_fork_state";
static const char __pyx_k_get_plugin[] = "get_plugin";
static const char __pyx_k_gevent_hub[] = "gevent_hub";
static const char __pyx_k_handle_rpc[] = "_handle_rpc";
static const char __pyx_k_identities[] = "identities";
static const char __pyx_k_is_running[] = "is_running";
static const char __pyx_k_is_sampled[] = "is_sampled";
static const char __pyx_k_is_valid_2[] = " is valid";
static const char __pyx_k_namedtuple[] = "namedtuple";
static const char __pyx_k_next_event[] = "next_event";
static const char __pyx_k_notify_all[] = "notify_all";
static const char __pyx_k_on_failure[] = "on_failure";
static const char __pyx_k_on_success[] = "on_success";
static const char __pyx_k_operations[] = "operations";
static const char __pyx_k_properties[] = "properties";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_q_a_6H_a_T[] = "\320\002\032\230!\330\004\005\330\004\007\200q\330\006\r\320\r \240\006\240a\240\3206H\310\006\310a\340\006\r\210T\220\037\240\001\240\021";
static const char __pyx_k_q_y_Q_Qa_6[] = "\200\001\330\002\006\320\006\027\220q\230\007\230y\250\005\250Q\330\002\003\200:\210Q\210a\330\002\003\2006\210\021";
static const char __pyx_k_query_call[] = "query_call";
static const char __pyx_k_receive_op[] = "receive_op";
static const char __pyx_k_set_result[] = "set_result";
static const char __pyx_k_socketpair[] = "socketpair";
static const char __pyx_k_stored_ctx[] = "_stored_ctx";
static const char __pyx_k_threadpool[] = "threadpool";
static const char __pyx_k_write_flag[] = "write_flag";
static const char __pyx_k_8_c_j_35Q_1[] = "\200\001\330\004 \320 8\270\001\270\021\330\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\33035\260Q\330\004\013\2101";
static const char __pyx_k_8_c_j_36a_1[] = "\200\001\330\004 \320 8\270\001\270\021\330\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\33036\260a\330\004\013\2101";
static const char __pyx_k_9_c_j_47q_1[] = "\200\001\330\004 \320 9\270\021\270!\330\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\33047\260q\330\004\013\2101";
static const char __pyx_k_9_c_j_9_1_1[] = "\200\001\330\004 \320 9\270\021\270!\330\004\007\200\220c\230\021\330\010\016\210j\230\001\230\021\3309;\2701\330\004\013\2101";
static const char __pyx_k_A_Q_4_Rt1_0[] = "\200A\330\010\014\320\014\035\230Q\330\010\013\2104\210~\230R\230t\2401\330\014\020\320\0200\260\001";
static const char __pyx_k_CallDetails[] = "CallDetails";
static const char __pyx_k_Call_cancel[] = "Call.cancel";
static const char __pyx_k_ChannelArgs[] = "_ChannelArgs";
static const char __pyx_k_EMPTY_FLAGS[] = "_EMPTY_FLAGS";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_TRUE_VALUES[] = "_TRUE_VALUES";
static const char __pyx_k_actual_code[] = "actual_code";
static const char __pyx_k_batch_error[] = "batch_error";
static const char __pyx_k_buffer_hint[] = "buffer_hint";
static const char __pyx_k_call_handle[] = "call_handle";
static const char __pyx_k_capsule_ptr[] = "capsule_ptr";
static const char __pyx_k_cert_config[] = "cert_config";
static const char __pyx_k_cfunc_to_py[] = "cfunc.to_py";
static const char __pyx_k_collections[] = "collections";
static const char __pyx_k_compression[] = "compression";
static const char __pyx_k_contextvars[] = "contextvars";
static const char __pyx_k_create_task[] = "create_task";
static const char __pyx_k_credentials[] = "credentials";
static const char __pyx_k_gevent_pool[] = "gevent.pool";
static const char __pyx_k_inbound_ops[] = "inbound_ops";
static const char __pyx_k_interceptor[] = "interceptor";
static const char __pyx_k_isawaitable[] = "isawaitable";
static const char __pyx_k_main_thread[] = "main_thread";
static const char __pyx_k_max_results[] = "max_results";
static const char __pyx_k_mro_entries[] = "__mro_entries__";
static const char __pyx_k_no_compress[] = "no_compress";
static const char __pyx_k_not_invoked[] = "not_invoked";
static const char __pyx_k_private_key[] = "private_key";
static const char __pyx_k_raw_message[] = "raw_message";
static const char __pyx_k_read_socket[] = "read_socket";
static const char __pyx_k_request_raw[] = "request_raw";
static const char __pyx_k_retain_self[] = "retain_self";
static const char __pyx_k_set_details[] = "set_details";
static const char __pyx_k_setblocking[] = "setblocking";
static const char __pyx_k_shutdown_cq[] = "shutdown_cq";
static const char __pyx_k_start_batch[] = "_start_batch";
static const char __pyx_k_started_tag[] = "started_tag";
static const char __pyx_k_status_code[] = "status_code";
static const char __pyx_k_status_task[] = "status_task";
static const char __pyx_k_thread_pool[] = "thread_pool";
static const char __pyx_k_unary_unary[] = "unary_unary";
static const char __pyx_k_unavailable[] = "unavailable";
static const char __pyx_k_unused_task[] = "unused_task";
static const char __pyx_k_55ERq_q_IQ_1[] = "\200!\330\0045\3205E\300R\300q\330\004&\320&?\270q\330\010\014\210I\220Q\330\004!\240\021\240!\330\004\013\2101";
static const char __pyx_k_A_4y_1_A_8_A[] = "\200A\340\010\013\2104\210y\230\003\2301\330\014\023\320\023$\240A\340\014\023\320\0238\270\001\330\020\024\220A\330\020\021";
static const char __pyx_k_A_IQ_Q_C7_9T[] = "\200A\330\010\t\330\014\020\220\014\230I\240Q\340\020\030\230\001\340\014\023\220:\230Q\320\036C\3007\310!\3109\320T[\320[\\";
static const char __pyx_k_A_t5_4t85_3j[] = "\200A\340\010\017\210t\2205\230\003\2304\230t\2408\2505\260\003\2603\260j\300\001";
static const char __pyx_k_AioCall_done[] = "_AioCall.done";
static const char __pyx_k_AioRpcStatus[] = "AioRpcStatus";
static const char __pyx_k_ChannelState[] = "_ChannelState";
static const char __pyx_k_Optional_int[] = "Optional[int]";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_Server_start[] = "Server.start";
static const char __pyx_k_TimeoutError[] = "TimeoutError";
static const char __pyx_k_Unexpected_2[] = "Unexpected ";
static const char __pyx_k_add_callback[] = "add_callback";
static const char __pyx_k_auth_context[] = "auth_context";
static const char __pyx_k_backup_queue[] = "backup_queue";
static const char __pyx_k_c_call_error[] = "c_call_error";
static const char __pyx_k_call_details[] = "call_details";
static const char __pyx_k_context_loop[] = "context_loop";
static const char __pyx_k_continuation[] = "continuation";
static const char __pyx_k_copy_context[] = "copy_context";
static const char __pyx_k_error_string[] = "error_string";
static const char __pyx_k_grpc_aio_EOF[] = "<grpc.aio.EOF>";
static const char __pyx_k_identity_key[] = "identity_key";
static const char __pyx_k_initializing[] = "_initializing";
static const char __pyx_k_interceptors[] = "interceptors";
static const char __pyx_k_is_coroutine[] = "_is_coroutine";
static const char __pyx_k_method_bytes[] = "method_bytes";
static const char __pyx_k_out_of_range[] = "out_of_range";
static const char __pyx_k_outbound_ops[] = "outbound_ops";
static const char __pyx_k_poll_wrapper[] = "_poll_wrapper";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_q_Q_xs_7_1_b[] = "\200\001\330\002\003\330\004\016\320\016!\240\026\240q\320(=\270Q\330\004\007\200x\210s\220!\330\006\007\330\004\t\210\027\220\001\220\021\330\004\013\2107\220!\2201\330\004\006\200b\210\001";
static const char __pyx_k_request_call[] = "_request_call";
static const char __pyx_k_response_raw[] = "response_raw";
static const char __pyx_k_send_message[] = "_send_message";
static const char __pyx_k_server_queue[] = "server_queue";
static const char __pyx_k_simplefilter[] = "simplefilter";
static const char __pyx_k_started_tags[] = "started_tags";
static const char __pyx_k_stream_unary[] = "stream_unary";
static const char __pyx_k_stringsource[] = "<stringsource>";
static const char __pyx_k_t4q_Jaq_Q_AT[] = "\200!\330\004\007\200t\2104\210q\330\006\014\210J\220a\220q\330\t\r\210Q\330\006\007\340\013\014\330\010$\240A\240T\250\021";
static const char __pyx_k_timeout_secs[] = "timeout_secs";
static const char __pyx_k_unary_stream[] = "unary_stream";
static const char __pyx_k_use_setstate[] = "use_setstate";
static const char __pyx_k_A_4q_t1_E_q_A[] = "\200A\330\010\013\2104\210q\330\014\017\210t\2201\330\020\024\220E\230\036\240q\250\004\250A";
static const char __pyx_k_A_d_l_0_q_A_a[] = "\200A\330\006\n\210,\220d\230&\240\001\330\006\n\210,\220l\240!\330\006\n\210/\320\0310\260\007\260q\270\004\270A\330\006!\240\021\240$\240a";
static const char __pyx_k_AioCall__repr[] = "_AioCall._repr";
static const char __pyx_k_AioCall_is_ok[] = "_AioCall.is_ok";
static const char __pyx_k_AsyncIOEngine[] = "AsyncIOEngine";
static const char __pyx_k_CensusContext[] = "CensusContext";
static const char __pyx_k_ChannelArgKey[] = "ChannelArgKey";
static const char __pyx_k_Channel_close[] = "Channel.close";
static const char __pyx_k_InternalError[] = "InternalError";
static const char __pyx_k_OperationType[] = "OperationType";
static const char __pyx_k_Q_1_IWHF_Ja_y[] = "\200!\360\006\000\030>\270Q\330\004\013\320\013\033\2301\330\010\014\210I\220W\230H\240F\250*\260J\270a\330\010\037\230y\250\001";
static const char __pyx_k_WA_WA_wa_aq_Q[] = "\200!\340\t\r\210W\220A\330\006\021\320\021(\250\001\250\024\250W\260A\330\006\017\210w\220a\330\006\016\210a\210q\330\006\r\210Q";
static const char __pyx_k_a_q_A_WA_aq_1[] = "\200!\330\004\026\220a\330\t\n\330\006\r\320\r\037\230q\240\004\240A\330\004\r\210W\220A\330\t\n\330\006\016\210a\210q\330\004\013\2101";
static const char __pyx_k_c_cert_config[] = "c_cert_config";
static const char __pyx_k_callback_func[] = "callback_func";
static const char __pyx_k_channel_state[] = "channel_state";
static const char __pyx_k_class_getitem[] = "__class_getitem__";
static const char __pyx_k_close_on_fork[] = "_close_on_fork";
static const char __pyx_k_create_future[] = "create_future";
static const char __pyx_k_credentials_2[] = "_credentials";
static const char __pyx_k_details_bytes[] = "details_bytes";
static const char __pyx_k_enable_census[] = "enable_census";
static const char __pyx_k_error_details[] = "error_details";
static const char __pyx_k_execute_batch[] = "execute_batch";
static const char __pyx_k_g_gevent_pool[] = "g_gevent_pool";
static const char __pyx_k_handle_events[] = "_handle_events";
static const char __pyx_k_init_grpc_aio[] = "init_grpc_aio";
static const char __pyx_k_internal_poll[] = "_internal_poll";
static const char __pyx_k_invalid_flags[] = "invalid_flags";
static const char __pyx_k_not_on_client[] = "not_on_client";
static const char __pyx_k_not_on_server[] = "not_on_server";
static const char __pyx_k_observability[] = "_observability";
static const char __pyx_k_query_handler[] = "query_handler";
static const char __pyx_k_queue_timeout[] = "queue_timeout";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_remove_reader[] = "remove_reader";
static const char __pyx_k_runtime_error[] = "runtime_error";
static const char __pyx_k_send_close_op[] = "send_close_op";
static const char __pyx_k_set_exception[] = "set_exception";
static const char __pyx_k_stream_stream[] = "stream_stream";
static const char __pyx_k_subchannel_id[] = "subchannel_id";
static const char __pyx_k_t4q_Jaq_e2V3a[] = "\200!\330\004\007\200t\2104\210q\330\006\014\210J\220a\220q\330\004\n\210$\210e\2202\220V\2303\230a";
static const char __pyx_k_unary_handler[] = "unary_handler";
static const char __pyx_k_unimplemented[] = "unimplemented";
static const char __pyx_k_unused_future[] = "unused_future";
static const char __pyx_k_A_4t5_1_t85_3j[] = "\200A\360\014\000\t\014\2104\210t\2205\230\001\330\014\023\2201\340\010\017\210t\2208\2305\240\003\2403\240j\260\001";
static const char __pyx_k_A_5_4q_q_q_d_Q[] = "\200A\330\010\013\2105\220\003\2204\220q\330\014\r\340\014\020\220\007\220q\230\010\240\017\250q\260\006\260d\270/\310\024\310Q";
static const char __pyx_k_AioCall_cancel[] = "_AioCall.cancel";
static const char __pyx_k_AioCall_status[] = "_AioCall.status";
static const char __pyx_k_AssertionError[] = "AssertionError";
static const char __pyx_k_AttributeError[] = "AttributeError";
static const char __pyx_k_BoundEventLoop[] = "_BoundEventLoop";
static const char __pyx_k_CancelledError[] = "CancelledError";
static const char __pyx_k_Channel_target[] = "Channel.target";
static const char __pyx_k_CompletionType[] = "CompletionType";
static const char __pyx_k_GrpcArgWrapper[] = "_GrpcArgWrapper";
static const char __pyx_k_IntegratedCall[] = "IntegratedCall";
static const char __pyx_k_LatentEventArg[] = "_LatentEventArg";
static const char __pyx_k_RequestCallTag[] = "_RequestCallTag";
static const char __pyx_k_SegregatedCall[] = "SegregatedCall";
static const char __pyx_k_Server_destroy[] = "Server.destroy";
static const char __pyx_k_add_http2_port[] = "add_http2_port";
static const char __pyx_k_after_in_child[] = "after_in_child";
static const char __pyx_k_already_exists[] = "already_exists";
static const char __pyx_k_c_returned_str[] = "c_returned_str";
static const char __pyx_k_catch_warnings[] = "catch_warnings";
static const char __pyx_k_current_thread[] = "current_thread";
static const char __pyx_k_default_vtable[] = "default_vtable";
static const char __pyx_k_exception_type[] = "exception_type";
static const char __pyx_k_get_event_loop[] = "get_event_loop";
static const char __pyx_k_get_fork_epoch[] = "get_fork_epoch";
static const char __pyx_k_managed_target[] = "managed_target";
static const char __pyx_k_method_handler[] = "method_handler";
static const char __pyx_k_new_event_loop[] = "new_event_loop";
static const char __pyx_k_pem_root_certs[] = "pem_root_certs";
static const char __pyx_k_query_handlers[] = "query_handlers";
static const char __pyx_k_queue_deadline[] = "queue_deadline";
static const char __pyx_k_queue_shutdown[] = "queue_shutdown";
static const char __pyx_k_request_call_2[] = "request_call";
static const char __pyx_k_send_message_2[] = "send_message";
static const char __pyx_k_server_started[] = "server_started";
static const char __pyx_k_stream_handler[] = "stream_handler";
static const char __pyx_k_time_remaining[] = "time_remaining";
static const char __pyx_k_to_channel_arg[] = "to_channel_arg";
static const char __pyx_k_try_to_connect[] = "try_to_connect";
static const char __pyx_k_wait_for_ready[] = "wait_for_ready";
static const char __pyx_k_yield_to_queue[] = "yield_to_queue";
static const char __pyx_k_A_4_Q_1_s_k_4uA[] = "\200A\330\010\013\2104\210{\230#\230Q\330\014\023\2201\340\014\027\220s\230$\230k\250\022\2504\250u\260A";
static const char __pyx_k_A_A_1D_1_wgQa_q[] = "\200A\330\010\034\230A\330\010\021\320\021#\2401\240D\250\013\2601\330\010\020\220\007\220w\230g\240Q\240a\330\010\020\220\001\220\021\330\010\017\210q";
static const char __pyx_k_A_q__HAQ_gQ_q_q[] = "\200A\330\010\014\320\014\037\230q\330\014\035\230_\250H\260A\260Q\330\014\017\210\230g\240Q\330\020\027\220q\330\010\017\210q";
static const char __pyx_k_AioChannel_call[] = "AioChannel.call";
static const char __pyx_k_AioServer_start[] = "AioServer.start";
static const char __pyx_k_CallCredentials[] = "CallCredentials";
static const char __pyx_k_CallbackWrapper[] = "CallbackWrapper";
static const char __pyx_k_CompletionQueue[] = "CompletionQueue";
static const char __pyx_k_ConnectivityTag[] = "_ConnectivityTag";
static const char __pyx_k_GrpcCallWrapper[] = "GrpcCallWrapper";
static const char __pyx_k_Locally_aborted[] = "Locally aborted.";
static const char __pyx_k_MessageReceiver[] = "_MessageReceiver";
static const char __pyx_k_Server_shutdown[] = "Server.shutdown";
static const char __pyx_k_ServicerContext[] = "_ServicerContext";
static const char __pyx_k_add_secure_port[] = "add_secure_port";
static const char __pyx_k_after_in_parent[] = "after_in_parent";
static const char __pyx_k_already_invoked[] = "already_invoked";
static const char __pyx_k_and_max_results[] = " and max_results==";
static const char __pyx_k_c_error_details[] = "c_error_details";
static const char __pyx_k_close_on_fork_2[] = "close_on_fork";
static const char __pyx_k_completion_type[] = "completion_type";
static const char __pyx_k_failure_handler[] = "failure_handler";
static const char __pyx_k_generic_handler[] = "generic_handler";
static const char __pyx_k_integrated_call[] = "integrated_call";
static const char __pyx_k_metadata_plugin[] = "metadata_plugin";
static const char __pyx_k_next_call_event[] = "next_call_event";
static const char __pyx_k_peer_identities[] = "peer_identities";
static const char __pyx_k_py_auth_context[] = "py_auth_context";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_q_Ct_e1_a_X_1_A[] = "\200!\330\004\023\220<\230q\240\001\330\004\007\200}\220C\220t\320\033.\250e\2601\340\006\007\330\004.\320.>\270a\270~\310[\320X\\\320\\]\330\004\010\320\010\033\2301\320\034,\250A";
static const char __pyx_k_receive_message[] = "_receive_message";
static const char __pyx_k_register_method[] = "register_method";
static const char __pyx_k_request_message[] = "request_message";
static const char __pyx_k_run_in_executor[] = "run_in_executor";
static const char __pyx_k_run_interceptor[] = "_run_interceptor";
static const char __pyx_k_segregated_call[] = "segregated_call";
static const char __pyx_k_send_message_op[] = "send_message_op";
static const char __pyx_k_set_compression[] = "set_compression";
static const char __pyx_k_set_credentials[] = "set_credentials";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_spawn_greenlets[] = "spawn_greenlets";
static const char __pyx_k_start_server_id[] = "start_server_id";
static const char __pyx_k_start_socket_id[] = "start_socket_id";
static const char __pyx_k_t_q_1_s_Qa_7_31[] = "\200\001\330\004\005\330\010\017\210t\220<\230q\240\001\330\004\013\320\013\033\2301\330\010\013\320\013'\240s\250#\250Q\250a\330\014\023\2207\320\0323\2601\330\020\021\330\020\021\360\006\000\r\016";
static const char __pyx_k_tracing_enabled[] = "tracing_enabled";
static const char __pyx_k_unauthenticated[] = "unauthenticated";
static const char __pyx_k_A_Q_IU_q_5Q_N_O1[] = "\200A\330\010\014\320\014*\250)\260:\270Q\330\010\014\320\014 \240\001\330\010\014\320\014(\250\001\330\010\014\320\014,\250I\260U\270!\330\010\014\320\014'\240q\330\010\014\320\014#\320#5\260Q\330\010\014\210N\230!\330\010\014\210O\2301";
static const char __pyx_k_A_t1_D_1__AQ_A_q[] = "\200A\330\010\037\230t\2401\330\010\022\220*\230D\240\013\2501\330\010\025\220_\240A\240Q\330\010\022\220*\230A\330\010\017\210q";
static const char __pyx_k_AioChannel_close[] = "AioChannel.close";
static const char __pyx_k_CompressionLevel[] = "CompressionLevel";
static const char __pyx_k_Expected_str_not[] = "Expected str, not {}";
static const char __pyx_k_ForkState___init[] = "_ForkState.__init__";
static const char __pyx_k_Method_not_found[] = "Method not found!";
static const char __pyx_k_RegisteredMethod[] = "RegisteredMethod";
static const char __pyx_k_RequestCallError[] = "_RequestCallError";
static const char __pyx_k_RequestCallEvent[] = "RequestCallEvent";
static const char __pyx_k_address_c_string[] = "address_c_string";
static const char __pyx_k_already_accepted[] = "already_accepted";
static const char __pyx_k_already_finished[] = "already_finished";
static const char __pyx_k_batch_operations[] = "batch_operations";
static const char __pyx_k_c_pem_root_certs[] = "c_pem_root_certs";
static const char __pyx_k_call_credentials[] = "call_credentials";
static const char __pyx_k_callback_wrapper[] = "callback_wrapper";
static const char __pyx_k_cancel_all_calls[] = "cancel_all_calls";
static const char __pyx_k_dump_xds_configs[] = "dump_xds_configs";
static const char __pyx_k_enable_algorithm[] = "enable_algorithm";
static const char __pyx_k_fork_in_progress[] = "fork_in_progress";
static const char __pyx_k_format_exception[] = "format_exception";
static const char __pyx_k_generic_handlers[] = "generic_handlers";
static const char __pyx_k_get_running_loop[] = "get_running_loop";
static const char __pyx_k_get_working_loop[] = "get_working_loop";
static const char __pyx_k_handle_callbacks[] = "handle_callbacks";
static const char __pyx_k_init_grpc_gevent[] = "init_grpc_gevent";
static const char __pyx_k_initial_metadata[] = "initial_metadata";
static const char __pyx_k_invalid_argument[] = "invalid_argument";
static const char __pyx_k_invalid_metadata[] = "invalid_metadata";
static const char __pyx_k_is_async_handler[] = "_is_async_handler";
static const char __pyx_k_latent_event_arg[] = "latent_event_arg";
static const char __pyx_k_received_message[] = "received_message";
static const char __pyx_k_register_at_fork[] = "register_at_fork";
static const char __pyx_k_request_call_tag[] = "request_call_tag";
static const char __pyx_k_request_iterator[] = "request_iterator";
static const char __pyx_k_response_message[] = "response_message";
static const char __pyx_k_run_with_context[] = "_run_with_context";
static const char __pyx_k_server_main_loop[] = "_server_main_loop";
static const char __pyx_k_service_accounts[] = "service_accounts";
static const char __pyx_k_servicer_context[] = "servicer_context";
static const char __pyx_k_start_channel_id[] = "start_channel_id";
static const char __pyx_k_wgT_2_q_1Jj_Ya_4[] = "\200!\360\030\000\005\010\200w\210g\220T\320\0312\260%\260q\330\006\n\320\n#\2401\240J\250j\270\001\270\024\270Y\300a\330\004\013\2104\320\017(\250\001\250\027\260\001";
static const char __pyx_k_A_0_d_7_wa_AU_avU[] = "\200A\330\010\t\330\014\020\220\010\230\001\330\020\027\320\0270\260\001\260\025\260d\270!\2707\300%\300w\310a\340\014\023\320\023,\250A\250U\260$\260a\260v\270U\300'\310\021";
static const char __pyx_k_A_7_1_Qiq_7_8_7_8[] = "\200A\360\014\000\t\n\330\014\023\2207\320\032+\2501\330\017\020\330\021\031\230\037\250\001\340\020\030\230\r\240Q\240i\250q\330\020\021\330\024\033\2307\320\"8\270\002\270/\310\021\360\006\000\030\031\330\024\033\2307\320\"8\270\002\270/\310\021";
static const char __pyx_k_ActiveThreadCount[] = "_ActiveThreadCount";
static const char __pyx_k_AioCall_cancelled[] = "_AioCall.cancelled";
static const char __pyx_k_AioChannel_closed[] = "AioChannel.closed";
static const char __pyx_k_AioRpcStatus_code[] = "AioRpcStatus.code";
static const char __pyx_k_BatchOperationTag[] = "_BatchOperationTag";
static const char __pyx_k_CUSTOM_IO_MANAGER[] = "CUSTOM_IO_MANAGER";
static const char __pyx_k_Call__start_batch[] = "Call._start_batch";
static const char __pyx_k_Channel_is_closed[] = "Channel is closed.";
static const char __pyx_k_ConnectivityEvent[] = "ConnectivityEvent";
static const char __pyx_k_ConnectivityState[] = "ConnectivityState";
static const char __pyx_k_ExecuteBatchError[] = "ExecuteBatchError";
static const char __pyx_k_ForkManagedThread[] = "ForkManagedThread";
static const char __pyx_k_KeyboardInterrupt[] = "KeyboardInterrupt";
static const char __pyx_k_ServerCredentials[] = "ServerCredentials";
static const char __pyx_k_ServerShutdownTag[] = "_ServerShutdownTag";
static const char __pyx_k_SslPemKeyCertPair[] = "SslPemKeyCertPair";
static const char __pyx_k_a_t5_2Q_q_1D_WA_a[] = "\200!\330\004\005\360\006\000\005\010\320\007\036\230a\330\006\027\220t\2305\240\003\2402\240Q\340\006\027\220q\360\010\000\005\014\320\013\033\2301\230D\240\t\250\024\250W\260A\330\034(\250\006\250a";
static const char __pyx_k_abort_with_status[] = "abort_with_status";
static const char __pyx_k_add_done_callback[] = "add_done_callback";
static const char __pyx_k_add_insecure_port[] = "add_insecure_port";
static const char __pyx_k_certificate_chain[] = "certificate_chain";
static const char __pyx_k_custom_io_manager[] = "custom_io_manager";
static const char __pyx_k_deadline_exceeded[] = "deadline_exceeded";
static const char __pyx_k_default_authority[] = "default_authority";
static const char __pyx_k_disable_algorithm[] = "disable_algorithm";
static const char __pyx_k_force_client_auth[] = "force_client_auth";
static const char __pyx_k_grpc_call_wrapper[] = "grpc_call_wrapper";
static const char __pyx_k_handle_exceptions[] = "_handle_exceptions";
static const char __pyx_k_intercept_service[] = "intercept_service";
static const char __pyx_k_peer_identity_key[] = "peer_identity_key";
static const char __pyx_k_permission_denied[] = "permission_denied";
static const char __pyx_k_pyx_unpickle__Tag[] = "__pyx_unpickle__Tag";
static const char __pyx_k_receive_message_2[] = "receive_message";
static const char __pyx_k_registered_method[] = "registered_method";
static const char __pyx_k_request_streaming[] = "request_streaming";
static const char __pyx_k_schedule_rpc_coro[] = "_schedule_rpc_coro";
static const char __pyx_k_shutdown_grpc_aio[] = "shutdown_grpc_aio";
static const char __pyx_k_ssl_session_cache[] = "ssl_session_cache";
static const char __pyx_k_t1_Jaq_1_k_31_WAQ[] = "\200!\340\004\007\200t\2101\330\006\014\210J\220a\220q\330\t\n\330\006+\2501\330\n\016\210k\230\025\320\0363\2601\330\004\010\320\010%\240W\250A\250Q";
static const char __pyx_k_trailing_metadata[] = "trailing_metadata";
static const char __pyx_k_transient_failure[] = "transient_failure";
static const char __pyx_k_uninstall_context[] = "uninstall_context";
static const char __pyx_k_A_4_9C_a_1_4_RtSXX[] = "\200A\330\010\013\2104\210{\230(\240)\2509\260C\260\300a\330\014\023\2201\340\014\027\320\027*\250!\2504\250{\270(\300+\310R\310t\320SX\320X\\\320\\]";
static const char __pyx_k_A_t1_D_1_A_1_waq_1[] = "\200A\330\010\037\230t\2401\330\010\022\220*\230D\240\013\2501\330\010\027\320\027(\250\001\250\021\330\010\022\220*\230A\330\010\013\2101\330\014\023\220<\230w\240a\240q\340\014\023\2201";
static const char __pyx_k_AioChannel_closing[] = "AioChannel.closing";
static const char __pyx_k_AioServer_shutdown[] = "AioServer.shutdown";
static const char __pyx_k_ChannelCredentials[] = "ChannelCredentials";
static const char __pyx_k_CompressionOptions[] = "CompressionOptions";
static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning";
static const char __pyx_k_HandleExceptions_s[] = "HandleExceptions[%s]";
static const char __pyx_k_HandlerCallDetails[] = "_HandlerCallDetails";
static const char __pyx_k_SSLSessionCacheLRU[] = "SSLSessionCacheLRU";
static const char __pyx_k_ServerStoppedError[] = "_ServerStoppedError";
static const char __pyx_k_StopAsyncIteration[] = "StopAsyncIteration";
static const char __pyx_k_UUV_B_4q_Q_ay_3a_1[] = "\320\000U\320UV\330\002\014\320\014 \320 B\300!\3004\300q\330\002\005\200Q\330\004\031\320\031.\250a\250y\270\001\330\004\013\2103\210a\210{\230!\340\004\013\2101";
static const char __pyx_k_UnicodeDecodeError[] = "UnicodeDecodeError";
static const char __pyx_k_WA_WA_4A_1_j_1_4wa[] = "\200!\330\t\r\210W\220A\330\006\t\210\024\210W\220A\330\010\017\320\0174\260A\330\014\020\220\007\220|\2401\340\010\016\210j\230\001\320\0311\260\022\2604\260w\270a";
static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
static const char __pyx_k_await_zero_threads[] = "await_zero_threads";
static const char __pyx_k_c_call_credentials[] = "c_call_credentials";
static const char __pyx_k_call_credentialses[] = "call_credentialses";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_core_function_name[] = "core_function_name";
static const char __pyx_k_debug_error_string[] = "debug_error_string";
static const char __pyx_k_expected_bytes_got[] = "\" expected bytes, got ";
static const char __pyx_k_g_gevent_activated[] = "g_gevent_activated";
static const char __pyx_k_isasyncgenfunction[] = "isasyncgenfunction";
static const char __pyx_k_local_connect_type[] = "local_connect_type";
static const char __pyx_k_num_active_threads[] = "_num_active_threads";
static const char __pyx_k_operation_complete[] = "operation_complete";
static const char __pyx_k_pem_key_cert_pairs[] = "pem_key_cert_pairs";
static const char __pyx_k_queue_must_be_live[] = "queue must be live";
static const char __pyx_k_receive_message_op[] = "receive_message_op";
static const char __pyx_k_resource_exhausted[] = "resource_exhausted";
static const char __pyx_k_response_streaming[] = "response_streaming";
static const char __pyx_k_save_trace_context[] = "save_trace_context";
static const char __pyx_k_send_receive_close[] = "send_receive_close";
static const char __pyx_k_server_call_tracer[] = "server_call_tracer";
static const char __pyx_k_server_credentials[] = "server_credentials";
static const char __pyx_k_set_internal_error[] = "set_internal_error";
static const char __pyx_k_start_client_batch[] = "start_client_batch";
static const char __pyx_k_start_server_batch[] = "start_server_batch";
static const char __pyx_k_AioCall_unary_unary[] = "_AioCall.unary_unary";
static const char __pyx_k_BaseCompletionQueue[] = "BaseCompletionQueue";
static const char __pyx_k_BatchOperationEvent[] = "BatchOperationEvent";
static const char __pyx_k_Binary_metadata_key[] = "Binary metadata key=\"";
static const char __pyx_k_Cannot_invoke_RPC_s[] = "Cannot invoke RPC: %s";
static const char __pyx_k_GRPC_ASYNCIO_ENGINE[] = "GRPC_ASYNCIO_ENGINE";
static const char __pyx_k_LocalConnectionType[] = "LocalConnectionType";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_SERVICES_TO_EXCLUDE[] = "_SERVICES_TO_EXCLUDE";
static const char __pyx_k_ServerShutdownEvent[] = "ServerShutdownEvent";
static const char __pyx_k_Server_request_call[] = "Server.request_call";
static const char __pyx_k_SyncServicerContext[] = "_SyncServicerContext";
static const char __pyx_k_Tag___reduce_cython[] = "_Tag.__reduce_cython__";
static const char __pyx_k_active_thread_count[] = "active_thread_count";
static const char __pyx_k_and_start_socket_id[] = " and start_socket_id==";
static const char __pyx_k_async_callback_func[] = "async_callback_func";
static const char __pyx_k_batch_operation_tag[] = "batch_operation_tag";
static const char __pyx_k_cert_config_fetcher[] = "cert_config_fetcher";
static const char __pyx_k_channel_credentials[] = "channel_credentials";
static const char __pyx_k_channelz_get_server[] = "channelz_get_server";
static const char __pyx_k_channelz_get_socket[] = "channelz_get_socket";
static const char __pyx_k_custom_op_on_c_call[] = "_custom_op_on_c_call";
static const char __pyx_k_failed_precondition[] = "failed_precondition";
static const char __pyx_k_find_method_handler[] = "_find_method_handler";
static const char __pyx_k_fork_handler_failed[] = "_fork_handler_failed";
static const char __pyx_k_g_gevent_threadpool[] = "g_gevent_threadpool";
static const char __pyx_k_grpc__cython_cygrpc[] = "grpc._cython.cygrpc";
static const char __pyx_k_initial_cert_config[] = "initial_cert_config";
static const char __pyx_k_initial_metadata_op[] = "initial_metadata_op";
static const char __pyx_k_invocation_metadata[] = "invocation_metadata";
static const char __pyx_k_iscoroutinefunction[] = "iscoroutinefunction";
static const char __pyx_k_last_observed_state[] = "last_observed_state";
static const char __pyx_k_q_A_Q_1_7q_V3a_q_1A[] = "\200\001\360\006\000\003\022\320\021'\240q\250\004\250A\330\002\005\200]\220#\220Q\330\004\013\2101\330\002\n\320\n7\260q\270\001\330\002\005\200V\2103\210a\330\004\n\210!\340\004\n\210(\320\022?\270q\300\001\330\002\033\2301\230A\330\002\t\210\021";
static const char __pyx_k_response_serializer[] = "response_serializer";
static const char __pyx_k_run_spawn_greenlets[] = "run_spawn_greenlets";
static const char __pyx_k_start_shutting_down[] = "_start_shutting_down";
static const char __pyx_k_too_many_operations[] = "too_many_operations";
static const char __pyx_k_7_ay_72FayPSSZZmmnno[] = "\200\001\340\004\013\2107\220,\230a\230y\250\003\2507\3202F\300a\300y\320PS\320SZ\320Zm\320mn\320no";
static const char __pyx_k_Abort_already_called[] = "Abort already called!";
static const char __pyx_k_AioCall_stream_unary[] = "_AioCall.stream_unary";
static const char __pyx_k_AioRpcStatus_details[] = "AioRpcStatus.details";
static const char __pyx_k_AioServer_is_running[] = "AioServer.is_running";
static const char __pyx_k_BoundEventLoop_close[] = "_BoundEventLoop.close";
static const char __pyx_k_Call___reduce_cython[] = "Call.__reduce_cython__";
static const char __pyx_k_Call_set_credentials[] = "Call.set_credentials";
static const char __pyx_k_CompletionQueue_poll[] = "CompletionQueue.poll";
static const char __pyx_k_CompressionAlgorithm[] = "CompressionAlgorithm";
static const char __pyx_k_ConcurrentRpcLimiter[] = "_ConcurrentRpcLimiter";
static const char __pyx_k_InitialMetadataFlags[] = "InitialMetadataFlags";
static const char __pyx_k_PropagationConstants[] = "PropagationConstants";
static const char __pyx_k_Q_q_t_a_1G1_4A_31_6a[] = "\200\001\330\004\r\210Q\330\004\007\200q\330\r\030\230\001\330\014\017\210t\220;\230a\330\020\022\320\022#\2401\240G\2501\330$4\260A\330$3\2601\330\020\033\320\0336\260a";
static const char __pyx_k_RPC_already_finished[] = "RPC already finished.";
static const char __pyx_k_SendMessageOperation[] = "SendMessageOperation";
static const char __pyx_k_ServicerContext_code[] = "_ServicerContext.code";
static const char __pyx_k_ServicerContext_done[] = "_ServicerContext.done";
static const char __pyx_k_ServicerContext_peer[] = "_ServicerContext.peer";
static const char __pyx_k_ServicerContext_read[] = "_ServicerContext.read";
static const char __pyx_k_TYPE_METADATA_STRING[] = "TYPE_METADATA_STRING";
static const char __pyx_k_build_census_context[] = "build_census_context";
static const char __pyx_k_call_soon_threadsafe[] = "call_soon_threadsafe";
static const char __pyx_k_channelz_get_channel[] = "channelz_get_channel";
static const char __pyx_k_channelz_get_servers[] = "channelz_get_servers";
static const char __pyx_k_concurrency_exceeded[] = "concurrency_exceeded";
static const char __pyx_k_fallback_credentials[] = "fallback_credentials";
static const char __pyx_k_generic_rpc_handlers[] = "generic_rpc_handlers";
static const char __pyx_k_handler_call_details[] = "handler_call_details";
static const char __pyx_k_is_algorithm_enabled[] = "is_algorithm_enabled";
static const char __pyx_k_is_locally_cancelled[] = "is_locally_cancelled";
static const char __pyx_k_observability_plugin[] = "observability_plugin";
static const char __pyx_k_request_deserializer[] = "request_deserializer";
static const char __pyx_k_reset_postfork_child[] = "reset_postfork_child";
static const char __pyx_k_shutting_down_server[] = "shutting_down_server";
static const char __pyx_k_spawn_callback_async[] = "_spawn_callback_async";
static const char __pyx_k_wait_for_termination[] = "wait_for_termination";
static const char __pyx_k_Channel_close_on_fork[] = "Channel.close_on_fork";
static const char __pyx_k_CompletionQueue_clear[] = "CompletionQueue.clear";
static const char __pyx_k_IntegratedCall_cancel[] = "IntegratedCall.cancel";
static const char __pyx_k_Invalid_encoding_on_s[] = "Invalid encoding on %s";
static const char __pyx_k_PollerCompletionQueue[] = "PollerCompletionQueue";
static const char __pyx_k_SSLChannelCredentials[] = "SSLChannelCredentials";
static const char __pyx_k_SegregatedCall_cancel[] = "SegregatedCall.cancel";
static const char __pyx_k_Server_add_http2_port[] = "Server.add_http2_port";
static const char __pyx_k_ServicerContext_abort[] = "_ServicerContext.abort";
static const char __pyx_k_ServicerContext_write[] = "_ServicerContext.write";
static const char __pyx_k_Tag___setstate_cython[] = "_Tag.__setstate_cython__";
static const char __pyx_k_Using_s_as_I_O_engine[] = "Using %s as I/O engine";
static const char __pyx_k_XDSChannelCredentials[] = "XDSChannelCredentials";
static const char __pyx_k_contextvars_supported[] = "_contextvars_supported";
static const char __pyx_k_credentials_roots_pem[] = "_credentials/roots.pem";
static const char __pyx_k_fork_register_channel[] = "fork_register_channel";
static const char __pyx_k_get_event_loop_policy[] = "get_event_loop_policy";
static const char __pyx_k_grpc_shutdown_wrapper[] = "_grpc_shutdown_wrapper";
static const char __pyx_k_hk_A_1_kkmmn_7_q0_a_1[] = "\200\001\360\006\000\005\010\200\220h\230k\250\033\260A\330\010\r\210^\2301\330\010\016\320\016!\320!k\320km\320mn\330\004\023\220=\240\010\250\001\250\021\330\004\007\200|\2207\230!\330\010/\250q\3200@\300\016\310a\330\004\013\2101";
static const char __pyx_k_initiate_unary_stream[] = "initiate_unary_stream";
static const char __pyx_k_observability_enabled[] = "observability_enabled";
static const char __pyx_k_operationses_and_tags[] = "operationses_and_tags";
static const char __pyx_k_pem_root_certificates[] = "pem_root_certificates";
static const char __pyx_k_send_initial_metadata[] = "_send_initial_metadata";
static const char __pyx_k_set_trailing_metadata[] = "set_trailing_metadata";
static const char __pyx_k_sync_servicer_context[] = "sync_servicer_context";
static const char __pyx_k_ALTSChannelCredentials[] = "ALTSChannelCredentials";
static const char __pyx_k_AioCall_time_remaining[] = "_AioCall.time_remaining";
static const char __pyx_k_Call___setstate_cython[] = "Call.__setstate_cython__";
static const char __pyx_k_CallbackFailureHandler[] = "CallbackFailureHandler";
static const char __pyx_k_ForkManagedThread_join[] = "ForkManagedThread.join";
static const char __pyx_k_IntegratedCall_operate[] = "IntegratedCall.operate";
static const char __pyx_k_OK_CALL_REPRESENTATION[] = "_OK_CALL_REPRESENTATION";
static const char __pyx_k_SegregatedCall_operate[] = "SegregatedCall.operate";
static const char __pyx_k_Server___reduce_cython[] = "Server.__reduce_cython__";
static const char __pyx_k_Server_already_stopped[] = "Server already stopped.";
static const char __pyx_k_Server_register_method[] = "Server.register_method";
static const char __pyx_k_WA_wc_1_q_q_l_2_a_fCxq[] = "\200!\330\004!\240\021\330\004\007\200~\220W\230A\330\006\030\230\010\240\001\330\004\007\200w\210c\220\032\2301\330\006\027\220q\230\n\240!\240<\250q\260\001\330\013\014\330\010\n\210!\210;\220l\320\"2\260(\270!\330\006\031\230\021\230,\240a\340\013\014\330\010\n\210!\210;\220f\230C\230x\240q";
static const char __pyx_k_async_message_receiver[] = "_async_message_receiver";
static const char __pyx_k_client_config_in_slice[] = "client_config_in_slice";
static const char __pyx_k_decrease_once_finished[] = "decrease_once_finished";
static const char __pyx_k_fully_qualified_method[] = "fully_qualified_method";
static const char __pyx_k_grpc_call_error_string[] = "grpc_call_error_string";
static const char __pyx_k_handle_unary_unary_rpc[] = "_handle_unary_unary_rpc";
static const char __pyx_k_initiate_stream_stream[] = "initiate_stream_stream";
static const char __pyx_k_max_concurrent_streams[] = "max_concurrent_streams";
static const char __pyx_k_metadata_sent_observer[] = "metadata_sent_observer";
static const char __pyx_k_metadata_was_invalid_s[] = "metadata was invalid: %s";
static const char __pyx_k_pyx_unpickle_AioServer[] = "__pyx_unpickle_AioServer";
static const char __pyx_k_registered_call_handle[] = "registered_call_handle";
static const char __pyx_k_reset_grpc_config_vars[] = "reset_grpc_config_vars";
static const char __pyx_k_save_registered_method[] = "save_registered_method";
static const char __pyx_k_send_close_from_client[] = "send_close_from_client";
static const char __pyx_k_server_credentials_ssl[] = "server_credentials_ssl";
static const char __pyx_k_xds_server_credentials[] = "xds_server_credentials";
static const char __pyx_k_AioCall___reduce_cython[] = "_AioCall.__reduce_cython__";
static const char __pyx_k_AioServer__request_call[] = "AioServer._request_call";
static const char __pyx_k_Call_start_client_batch[] = "Call.start_client_batch";
static const char __pyx_k_Call_start_server_batch[] = "Call.start_server_batch";
static const char __pyx_k_Channel___reduce_cython[] = "Channel.__reduce_cython__";
static const char __pyx_k_Channel_integrated_call[] = "Channel.integrated_call";
static const char __pyx_k_Channel_next_call_event[] = "Channel.next_call_event";
static const char __pyx_k_Channel_segregated_call[] = "Channel.segregated_call";
static const char __pyx_k_ForkManagedThread_start[] = "ForkManagedThread.start";
static const char __pyx_k_GRPC_PROPAGATE_DEADLINE[] = "GRPC_PROPAGATE_DEADLINE";
static const char __pyx_k_GRPC_PROPAGATE_DEFAULTS[] = "GRPC_PROPAGATE_DEFAULTS";
static const char __pyx_k_LocalChannelCredentials[] = "LocalChannelCredentials";
static const char __pyx_k_MessageReceiver___anext[] = "_MessageReceiver.__anext__";
static const char __pyx_k_ReceiveMessageOperation[] = "ReceiveMessageOperation";
static const char __pyx_k_ServerCertificateConfig[] = "ServerCertificateConfig";
static const char __pyx_k_Server_cancel_all_calls[] = "Server.cancel_all_calls";
static const char __pyx_k_ServicerContext_details[] = "_ServicerContext.details";
static const char __pyx_k_WatchConnectivityFailed[] = "_WatchConnectivityFailed";
static const char __pyx_k_a_q_t_a_wa_4G1A_Q_2_q_Q[] = "\320\000\036\230a\330\004\007\200q\330\r\030\230\001\330\014\017\210t\220;\230a\330\020\021\330\014\017\320\017'\240w\250a\330\020\033\320\0334\260G\2701\270A\330\014\027\320\027+\250:\260Q\330\014\027\320\0272\260%\260q\330\014\027\320\027+\250:\260Q";
static const char __pyx_k_channelz_get_subchannel[] = "channelz_get_subchannel";
static const char __pyx_k_cython_call_credentials[] = "cython_call_credentials";
static const char __pyx_k_fork_handler_registered[] = "fork_handler_registered";
static const char __pyx_k_fork_unregister_channel[] = "fork_unregister_channel";
static const char __pyx_k_handle_callback_wrapper[] = "_handle_callback_wrapper";
static const char __pyx_k_handle_stream_unary_rpc[] = "_handle_stream_unary_rpc";
static const char __pyx_k_handle_unary_stream_rpc[] = "_handle_unary_stream_rpc";
static const char __pyx_k_is_fork_support_enabled[] = "is_fork_support_enabled";
static const char __pyx_k_max_send_message_length[] = "max_send_message_length";
static const char __pyx_k_maximum_concurrent_rpcs[] = "maximum_concurrent_rpcs";
static const char __pyx_k_metadata_locals_genexpr[] = "_metadata.<locals>.genexpr";
static const char __pyx_k_postfork_state_to_reset[] = "postfork_state_to_reset";
static const char __pyx_k_python_call_credentials[] = "python_call_credentials";
static const char __pyx_k_receive_close_on_server[] = "receive_close_on_server";
static const char __pyx_k_request_registered_call[] = "request_registered_call";
static const char __pyx_k_send_initial_metadata_2[] = "send_initial_metadata";
static const char __pyx_k_send_serialized_message[] = "send_serialized_message";
static const char __pyx_k_send_status_from_server[] = "send_status_from_server";
static const char __pyx_k_server_credentials_alts[] = "server_credentials_alts";
static const char __pyx_k_set_async_callback_func[] = "set_async_callback_func";
static const char __pyx_k_ActiveThreadCount___init[] = "_ActiveThreadCount.__init__";
static const char __pyx_k_AioCall_initial_metadata[] = "_AioCall.initial_metadata";
static const char __pyx_k_AioState___reduce_cython[] = "_AioState.__reduce_cython__";
static const char __pyx_k_CompletionQueue_shutdown[] = "CompletionQueue.shutdown";
static const char __pyx_k_CompositeCallCredentials[] = "CompositeCallCredentials";
static const char __pyx_k_ForkManagedThread___init[] = "ForkManagedThread.__init__";
static const char __pyx_k_GRPC_ENABLE_FORK_SUPPORT[] = "_GRPC_ENABLE_FORK_SUPPORT";
static const char __pyx_k_IMMUTABLE_EMPTY_METADATA[] = "_IMMUTABLE_EMPTY_METADATA";
static const char __pyx_k_Internal_error_from_Core[] = "Internal error from Core";
static const char __pyx_k_RPCState___reduce_cython[] = "RPCState.__reduce_cython__";
static const char __pyx_k_Server___setstate_cython[] = "Server.__setstate_cython__";
static const char __pyx_k_ServicerContext_set_code[] = "_ServicerContext.set_code";
static const char __pyx_k_SyncServicerContext_peer[] = "_SyncServicerContext.peer";
static const char __pyx_k_add_generic_rpc_handlers[] = "add_generic_rpc_handlers";
static const char __pyx_k_async_response_generator[] = "async_response_generator";
static const char __pyx_k_channel_credentials_alts[] = "channel_credentials_alts";
static const char __pyx_k_check_connectivity_state[] = "check_connectivity_state";
static const char __pyx_k_grpc_server_request_call[] = "grpc_server_request_call";
static const char __pyx_k_handle_stream_stream_rpc[] = "_handle_stream_stream_rpc";
static const char __pyx_k_postfork_states_to_reset[] = "postfork_states_to_reset";
static const char __pyx_k_receive_initial_metadata[] = "_receive_initial_metadata";
static const char __pyx_k_receive_status_on_client[] = "receive_status_on_client";
static const char __pyx_k_run_coroutine_threadsafe[] = "run_coroutine_threadsafe";
static const char __pyx_k_schedule_coro_threadsafe[] = "schedule_coro_threadsafe";
static const char __pyx_k_send_initial_metadata_op[] = "send_initial_metadata_op";
static const char __pyx_k_server_credentials_local[] = "server_credentials_local";
static const char __pyx_k_spawn_callback_in_thread[] = "_spawn_callback_in_thread";
static const char __pyx_k_ssl_target_name_override[] = "ssl_target_name_override";
static const char __pyx_k_watch_connectivity_state[] = "watch_connectivity_state";
static const char __pyx_k_A_4z_4z_Cq_4y_1_D_Qd_l_4y[] = "\200A\340\010\013\2104\210z\230\021\330\014\r\330\010\013\2104\210z\230\023\230C\230q\330\014\r\330\010\013\2104\210y\230\003\2301\330\014\020\320\020$\240D\250\n\260!\330\014\023\220:\230Q\230d\240!\330\014\020\220\006\220l\240!\2404\240y\260\001\260\021";
static const char __pyx_k_AioCall___setstate_cython[] = "_AioCall.__setstate_cython__";
static const char __pyx_k_AioCall_add_done_callback[] = "_AioCall.add_done_callback";
static const char __pyx_k_AioServer___reduce_cython[] = "AioServer.__reduce_cython__";
static const char __pyx_k_AioServer_add_secure_port[] = "AioServer.add_secure_port";
static const char __pyx_k_CallState___reduce_cython[] = "_CallState.__reduce_cython__";
static const char __pyx_k_Call__custom_op_on_c_call[] = "Call._custom_op_on_c_call";
static const char __pyx_k_Channel___setstate_cython[] = "Channel.__setstate_cython__";
static const char __pyx_k_Non_thread_safe_operation[] = "Non-thread-safe operation";
static const char __pyx_k_Operation___reduce_cython[] = "Operation.__reduce_cython__";
static const char __pyx_k_SegregatedCall_next_event[] = "SegregatedCall.next_event";
static const char __pyx_k_SendMessageOperation_type[] = "SendMessageOperation.type";
static const char __pyx_k_Server_not_in_ready_state[] = "Server not in ready state";
static const char __pyx_k_ServicerContext_cancelled[] = "_ServicerContext.cancelled";
static const char __pyx_k_SyncServicerContext_abort[] = "_SyncServicerContext.abort";
static const char __pyx_k_Unsupported_engine_type_s[] = "Unsupported engine type [%s]";
static const char __pyx_k_block_if_fork_in_progress[] = "block_if_fork_in_progress";
static const char __pyx_k_certificate_configuration[] = "_certificate_configuration";
static const char __pyx_k_channel_credentials_local[] = "channel_credentials_local";
static const char __pyx_k_channelz_get_top_channels[] = "channelz_get_top_channels";
static const char __pyx_k_check_before_request_call[] = "check_before_request_call";
static const char __pyx_k_create_client_call_tracer[] = "create_client_call_tracer";
static const char __pyx_k_get_deadline_from_context[] = "get_deadline_from_context";
static const char __pyx_k_hk_A_1_kkmmn_4xq_7_awnA_1[] = "\200\001\360\006\000\005\010\200\220h\230k\250\033\260A\330\010\r\210^\2301\330\010\016\320\016!\320!k\320km\320mn\330\004\023\2204\220x\230q\240\001\330\004\007\200|\2207\230!\330\010&\240a\240w\250n\270A\330\004\013\2101";
static const char __pyx_k_outbound_initial_metadata[] = "outbound_initial_metadata";
static const char __pyx_k_primary_user_agent_string[] = "primary_user_agent_string";
static const char __pyx_k_raised_by_servicer_method[] = "] raised by servicer method [";
static const char __pyx_k_register_completion_queue[] = "register_completion_queue";
static const char __pyx_k_uA_Jaq_T_Jaq_Q_wd_Jaq_awa[] = "\200!\330\004\007\200u\210A\330\006\014\210J\220a\220q\330\t\r\210T\220\021\330\006\014\210J\220a\220q\330\t\r\210Q\330\006\007\330\t\017\210w\220d\230!\330\006\014\210J\220a\220q\340\006\n\210,\220a\220w\230a";
static const char __pyx_k_A_G1F_a_vWA_q_q_q_T_G1_T_A[] = "\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220A\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017%\240T\250\021\250'\260\033\270G\3001\340\010\017\320\017%\240T\250\021\250'\260\033\270A";
static const char __pyx_k_A_Q_L_Q_a_AQ_L_q_HA_A_a_vS[] = "\200A\360\014\000\t\r\320\014%\240Q\360\014\000\t\r\210L\230\001\230\034\240Q\330\014\026\220a\330\014\r\330\014\r\330\014\r\360\006\000\t\031\230\014\240A\240Q\330\010\014\210L\230\007\230q\240\001\330\010\024\220H\230A\340\010\020\320\020,\250A\330\014\020\220\001\330\014\026\220a\330\014\r\330\014\r\340\010\017\210v\220S\230\001";
static const char __pyx_k_AioCall_send_receive_close[] = "_AioCall.send_receive_close";
static const char __pyx_k_AioCall_set_internal_error[] = "_AioCall.set_internal_error";
static const char __pyx_k_AioChannel___reduce_cython[] = "AioChannel.__reduce_cython__";
static const char __pyx_k_AioState___setstate_cython[] = "_AioState.__setstate_cython__";
static const char __pyx_k_CallHandle___reduce_cython[] = "CallHandle.__reduce_cython__";
static const char __pyx_k_ChannelArg___reduce_cython[] = "_ChannelArg.__reduce_cython__";
static const char __pyx_k_GRPC_ENABLE_FORK_SUPPORT_2[] = "GRPC_ENABLE_FORK_SUPPORT";
static const char __pyx_k_InsecureChannelCredentials[] = "InsecureChannelCredentials";
static const char __pyx_k_NON_OK_CALL_REPRESENTATION[] = "_NON_OK_CALL_REPRESENTATION";
static const char __pyx_k_RPCState___setstate_cython[] = "RPCState.__setstate_cython__";
static const char __pyx_k_compression_algorithm_name[] = "compression_algorithm_name";
static const char __pyx_k_decrease_active_rpcs_count[] = "_decrease_active_rpcs_count";
static const char __pyx_k_fork_in_progress_condition[] = "fork_in_progress_condition";
static const char __pyx_k_get_registered_call_handle[] = "get_registered_call_handle";
static const char __pyx_k_max_receive_message_length[] = "max_receive_message_length";
static const char __pyx_k_pyx_unpickle_CensusContext[] = "__pyx_unpickle_CensusContext";
static const char __pyx_k_q_1_9G1G3DAEVV_9G1G3DAYeST[] = "\320\004\037\230q\330\010\013\2101\330\014\r\360\n\000\r\021\220\013\2309\240G\2501\250G\3203D\300A\320EV\320V[\320[\\\340\014\020\220\013\2309\240G\2501\250G\3203D\300A\300Y\310e\320ST";
static const char __pyx_k_receive_initial_metadata_2[] = "receive_initial_metadata";
static const char __pyx_k_receive_serialized_message[] = "receive_serialized_message";
static const char __pyx_k_serving_task_crash_handler[] = "_serving_task_crash_handler";
static const char __pyx_k_set_census_context_on_call[] = "set_census_context_on_call";
static const char __pyx_k_ActiveThreadCount_decrement[] = "_ActiveThreadCount.decrement";
static const char __pyx_k_ActiveThreadCount_increment[] = "_ActiveThreadCount.increment";
static const char __pyx_k_AioServer___setstate_cython[] = "AioServer.__setstate_cython__";
static const char __pyx_k_AioServer__server_main_loop[] = "AioServer._server_main_loop";
static const char __pyx_k_AioServer_add_insecure_port[] = "AioServer.add_insecure_port";
static const char __pyx_k_CallDetails___reduce_cython[] = "CallDetails.__reduce_cython__";
static const char __pyx_k_CallState___setstate_cython[] = "_CallState.__setstate_cython__";
static const char __pyx_k_ChannelArgs___reduce_cython[] = "_ChannelArgs.__reduce_cython__";
static const char __pyx_k_CompositeChannelCredentials[] = "CompositeChannelCredentials";
static const char __pyx_k_ForkManagedThread_setDaemon[] = "ForkManagedThread.setDaemon";
static const char __pyx_k_GRPC_PROPAGATE_CANCELLATION[] = "GRPC_PROPAGATE_CANCELLATION";
static const char __pyx_k_Operation___setstate_cython[] = "Operation.__setstate_cython__";
static const char __pyx_k_ServicerContext_set_details[] = "_ServicerContext.set_details";
static const char __pyx_k_channelz_get_server_sockets[] = "channelz_get_server_sockets";
static const char __pyx_k_fork_handlers_and_grpc_init[] = "fork_handlers_and_grpc_init";
static const char __pyx_k_g_interrupt_check_period_ms[] = "g_interrupt_check_period_ms";
static const char __pyx_k_handle_status_once_received[] = "_handle_status_once_received";
static const char __pyx_k_insecure_server_credentials[] = "insecure_server_credentials";
static const char __pyx_k_l_1_7_1_WAQ_1_q_7q_1D_a_q_1[] = "\200!\330:;\330\004\016\210l\230!\2301\330\004\010\210\013\2207\230!\2301\340\004\"\240!\330\004\007\320\007\032\230'\240\021\330\006\n\210+\220W\230A\230Q\330\013\014\330\010\021\320\021+\2501\330\014\020\220\013\320\033-\320-?\270q\340\013\014\330\010\020\320\0207\260q\330\010\021\320\021+\2501\250D\260\001\330,>\270a\330\010'\240q\250\001\330\004\013\2101";
static const char __pyx_k_receive_initial_metadata_op[] = "receive_initial_metadata_op";
static const char __pyx_k_receive_status_on_client_op[] = "receive_status_on_client_op";
static const char __pyx_k_secondary_user_agent_string[] = "secondary_user_agent_string";
static const char __pyx_k_t4_3d_Jaq_G4q_Jaq_O1A_4_A_1[] = "\200!\360\006\000\005\010\200t\2104\210|\2303\230d\240!\330\006\014\210J\220a\220q\330\004\007\200}\220G\2304\230q\330\006\014\210J\220a\220q\330\004,\250O\2701\270A\330\004\013\2104\320\017,\250A\320-?\270|\3101";
static const char __pyx_k_A_4wa_AQ_7_t4q_j_Q_a_xq_j_0I[] = "\200A\360\024\000\t\014\2104\210w\220a\330\014\022\220*\230A\230Q\360\006\000\t\014\320\013#\2407\250!\330\014\017\210t\2204\220q\330\020\026\220j\240\001\240\021\340\014&\320&=\270Q\340\014&\240a\340\010\017\210x\220q\230\006\230j\250\010\3200I\310\021";
static const char __pyx_k_A_G1F_a_vWA_q_q_q_34q_QR_34q[] = "\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220A\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\0173\2604\260q\270\007\270{\310'\320QR\340\010\017\320\0173\2604\260q\270\007\270{\310!";
static const char __pyx_k_A_t1_D_1_L_A_1_q_1Cwa_1A_1_1[] = "\200A\330\010\037\230t\2401\330\010\022\220*\230D\240\013\2501\330\010\024\220L\240\001\240\021\330\010\022\220*\230A\330\010\013\2101\330\014\022\220!\330\014\020\220\007\220q\330\020\023\2201\220C\220w\230a\230{\250)\2601\260A\330\014\023\2201\340\014\023\2201";
static const char __pyx_k_AioCall_is_locally_cancelled[] = "_AioCall.is_locally_cancelled";
static const char __pyx_k_AioChannel___setstate_cython[] = "AioChannel.__setstate_cython__";
static const char __pyx_k_AioRpcStatus___reduce_cython[] = "AioRpcStatus.__reduce_cython__";
static const char __pyx_k_CallHandle___setstate_cython[] = "CallHandle.__setstate_cython__";
static const char __pyx_k_ChannelArg___setstate_cython[] = "_ChannelArg.__setstate_cython__";
static const char __pyx_k_ChannelState___reduce_cython[] = "_ChannelState.__reduce_cython__";
static const char __pyx_k_Expecting_non_ok_status_code[] = "Expecting non-ok status code.";
static const char __pyx_k_ReceiveMessageOperation_type[] = "ReceiveMessageOperation.type";
static const char __pyx_k_SendCloseFromClientOperation[] = "SendCloseFromClientOperation";
static const char __pyx_k_SendInitialMetadataOperation[] = "SendInitialMetadataOperation";
static const char __pyx_k_ServicerContext_auth_context[] = "_ServicerContext.auth_context";
static const char __pyx_k_SyncServicerContext_set_code[] = "_SyncServicerContext.set_code";
static const char __pyx_k_UNKNOWN_CANCELLATION_DETAILS[] = "_UNKNOWN_CANCELLATION_DETAILS";
static const char __pyx_k_async_generator_to_generator[] = "async_generator_to_generator";
static const char __pyx_k_channel_credentials_insecure[] = "channel_credentials_insecure";
static const char __pyx_k_enter_user_request_generator[] = "enter_user_request_generator";
static const char __pyx_k_fork_handler_registered_lock[] = "fork_handler_registered_lock";
static const char __pyx_k_generator_to_async_generator[] = "generator_to_async_generator";
static const char __pyx_k_get_metadata_locals_callback[] = "_get_metadata.<locals>.callback";
static const char __pyx_k_hk_A_1_kkmmn_XQa_7_4A5J_XY_1[] = "\200\001\360\006\000\005\010\200\220h\230k\250\033\260A\330\010\r\210^\2301\330\010\016\320\016!\320!k\320km\320mn\330\004\023\320\023%\240X\250Q\250a\330\004\007\200|\2207\230!\330\0104\260A\3205J\310.\320XY\330\004\013\2101";
static const char __pyx_k_hk_A_1_kkmmn_XQa_7_A_ZZhhi_1[] = "\200\001\360\006\000\005\010\200\220h\230k\250\033\260A\330\010\r\210^\2301\330\010\016\320\016!\320!k\320km\320mn\330\004\023\320\023-\250X\260Q\260a\330\004\007\200|\2207\230!\330\010<\270A\320=Z\320Zh\320hi\330\004\013\2101";
static const char __pyx_k_next_event_locals_on_failure[] = "next_event.<locals>.on_failure";
static const char __pyx_k_next_event_locals_on_success[] = "next_event.<locals>.on_success";
static const char __pyx_k_q_t1_Jaq_q_q_AT_a_q_A_q_Qit5[] = "\320\002\037\230q\360\020\000\005\010\200t\2101\330\006\014\210J\220a\220q\330\004\007\200q\330\006\n\320\n#\240?\260!\260<\270q\330\006\n\320\n$\240A\240T\250\021\330\004\010\210\016\220a\330\t\n\330\006\027\220q\230\004\230A\330\004\007\200q\340\006\n\320\n \240\005\240Q\240i\250t\2605\270\001";
static const char __pyx_k_run_with_context_locals__run[] = "_run_with_context.<locals>._run";
static const char __pyx_k_shutdown_await_next_greenlet[] = "shutdown_await_next_greenlet";
static const char __pyx_k_t4_3d_Jaq_G4q_Jaq_O1A_q_4_WX[] = "\200!\360\n\000\005\010\200t\2104\210|\2303\230d\240!\330\006\014\210J\220a\220q\330\004\007\200}\220G\2304\230q\330\006\014\210J\220a\220q\330\004,\250O\2701\270A\330\004\023\220<\230q\240\001\330\004\013\2104\320\017*\250!\320+=\270\\\310\036\320WX";
static const char __pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS[] = "_AWAIT_THREADS_TIMEOUT_SECONDS";
static const char __pyx_k_Abort_error_has_been_replaced[] = "Abort error has been replaced!";
static const char __pyx_k_AioCall_initiate_unary_stream[] = "_AioCall.initiate_unary_stream";
static const char __pyx_k_CallDetails___setstate_cython[] = "CallDetails.__setstate_cython__";
static const char __pyx_k_CensusContext___reduce_cython[] = "CensusContext.__reduce_cython__";
static const char __pyx_k_ChannelArgs___setstate_cython[] = "_ChannelArgs.__setstate_cython__";
static const char __pyx_k_Concurrent_RPC_limit_exceeded[] = "Concurrent RPC limit exceeded!";
static const char __pyx_k_MetadataPluginCallCredentials[] = "MetadataPluginCallCredentials";
static const char __pyx_k_ReceiveCloseOnServerOperation[] = "ReceiveCloseOnServerOperation";
static const char __pyx_k_SendStatusFromServerOperation[] = "SendStatusFromServerOperation";
static const char __pyx_k_T_1_Q_1_T_1A_8_A_A_8_MQ_1_MQa[] = "\200\001\360\006\000\003\006\200T\210\032\2201\320\024)\250\024\250Q\330\004\n\210)\2201\330\010\t\330\002\005\200T\210\030\220\021\220!\330\004\n\210)\2201\220A\330\002'\320'8\270\001\330\002\r\320\r$\240A\330\002\r\320\r$\240A\330\0028\270\001\330\002\016\320\016M\310Q\330\004\005\330\007\010\330\004\005\330\004\005\330\004\013\2101\340\002\r\320\r\036\320\036M\310Q\310a\330\002\t\210\021";
static const char __pyx_k_g_shutdown_handler_registered[] = "g_shutdown_handler_registered";
static const char __pyx_k_handle_cancellation_from_core[] = "_handle_cancellation_from_core";
static const char __pyx_k_http2_initial_sequence_number[] = "http2_initial_sequence_number";
static const char __pyx_k_q_A_Q_1_aq_q_q_y_1_xwc_q_1A_q[] = "\200\001\360\n\000\003\022\320\021'\240q\250\004\250A\330\002\005\200]\220#\220Q\330\004\013\2101\330\002\017\320\017.\250a\250q\330\002\017\210q\330\002\003\330\004\017\320\017/\250q\260\001\260\021\330\004\007\200y\220\003\2201\330\006\007\330\004\007\200x\210w\220c\230\021\330\006\020\220\007\220q\230\010\240\010\250\001\330\002\033\2301\230A\330\002\t\210\036\320\027'\240q";
static const char __pyx_k_q_t1A_DA_q_q_6aq_s_1_I_Gq_Q_q[] = "\200\001\330\002\023\220<\230q\240\001\330\002\027\220t\2301\230A\330\002-\320-D\300A\330\002\r\210[\230\007\230q\240\001\330\002\r\210[\230\007\230q\240\001\330\002\r\320\r!\320!6\260a\260q\330\002\r\320\r/\250s\260!\2601\330\002\r\320\r)\320)I\310\021\310!\330\002\r\320\r\036\320\036G\300q\330\004\017\320\017\"\240+\250Q\330\004\017\210q\330\002\t\210\021";
static const char __pyx_k_send_error_status_from_server[] = "_send_error_status_from_server";
static const char __pyx_k_server_certificate_config_ssl[] = "server_certificate_config_ssl";
static const char __pyx_k_the_server_hasn_t_started_yet[] = "the server hasn't started yet";
static const char __pyx_k_wait_for_ready_explicitly_set[] = "wait_for_ready_explicitly_set";
static const char __pyx_k_A_G1F_a_vWA_q_q_q_d_7_WA_d_7_Q[] = "\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220A\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017.\250d\260!\2607\270+\300W\310A\340\010\017\320\017.\250d\260!\2607\270+\300Q";
static const char __pyx_k_AioCall_initiate_stream_stream[] = "_AioCall.initiate_stream_stream";
static const char __pyx_k_AioRpcStatus___setstate_cython[] = "AioRpcStatus.__setstate_cython__";
static const char __pyx_k_AioRpcStatus_trailing_metadata[] = "AioRpcStatus.trailing_metadata";
static const char __pyx_k_AioServer__start_shutting_down[] = "AioServer._start_shutting_down";
static const char __pyx_k_AioServer_wait_for_termination[] = "AioServer.wait_for_termination";
static const char __pyx_k_BoundEventLoop___reduce_cython[] = "_BoundEventLoop.__reduce_cython__";
static const char __pyx_k_Cannot_monitor_channel_state_s[] = "Cannot monitor channel state: %s";
static const char __pyx_k_ChannelState___setstate_cython[] = "_ChannelState.__setstate_cython__";
static const char __pyx_k_CompletionQueue__internal_poll[] = "CompletionQueue._internal_poll";
static const char __pyx_k_ConcurrentRpcLimiter__decrease[] = "_ConcurrentRpcLimiter._decrease_active_rpcs_count";
static const char __pyx_k_Error_in_callback_for_method_s[] = "Error in callback for method [%s]";
static const char __pyx_k_GrpcArgWrapper___reduce_cython[] = "_GrpcArgWrapper.__reduce_cython__";
static const char __pyx_k_IntegratedCall___reduce_cython[] = "IntegratedCall.__reduce_cython__";
static const char __pyx_k_MessageReceiver__async_message[] = "_MessageReceiver._async_message_receiver";
static const char __pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth[] = "__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.<locals>.wrap";
static const char __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr[] = "__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.<locals>.wrap";
static const char __pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth[] = "__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_.<locals>.wrap";
static const char __pyx_k_ReceiveStatusOnClientOperation[] = "ReceiveStatusOnClientOperation";
static const char __pyx_k_RequestCallTag___reduce_cython[] = "_RequestCallTag.__reduce_cython__";
static const char __pyx_k_SegregatedCall___reduce_cython[] = "SegregatedCall.__reduce_cython__";
static const char __pyx_k_ServerCertificateConfiguration[] = "ServerCertificateConfiguration";
static const char __pyx_k_Server_request_registered_call[] = "Server.request_registered_call";
static const char __pyx_k_ServicerContext_time_remaining[] = "_ServicerContext.time_remaining";
static const char __pyx_k_SyncServicerContext___setstate[] = "_SyncServicerContext.__setstate_cython__";
static const char __pyx_k_SyncServicerContext_invocation[] = "_SyncServicerContext.invocation_metadata";
static const char __pyx_k_T_D_D_PPTT__cckkooyy_N_N_R_R_o[] = "\200\001\360\010\000\005\016\210T\320\021$\240D\320(<\270D\320@P\320PT\320T_\320_c\320ck\320ko\320oy\320y}\360\000\000~\001N\002\360\000\000N\002R\002\360\000\000R\002o\002\360\000\000o\002s\002\360\000\000s\002I\003\360\000\000I\003M\003\360\000\000M\003^\003\360\000\000^\003b\003\360\000\000b\003l\003\360\000\000l\003p\003\360\000\000p\003q\003\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220A\330\010\022\220!\330\010\027\220q\340\010\027\220t\320\033-\250W\260E\270\023\270D\320@S\320SZ\320Z_\320_b\320bf\320fu\320u|\360\000\000}\001B\002\360\000\000B\002E\002\360\000\000E\002I\002\360\000\000I\002S\002\360\000\000S\002Z\002\360\000\000Z\002_\002\360\000\000_\002b\002\360\000\000b\002f\002\360\000\000f\002m\002\360\000\000m\002t\002\360\000\000t\002y\002\360\000\000y\002|\002\360\000\000|\002@\003\360\000\000@\003I\003\360\000\000I\003P\003\360\000\000P\003U\003\360\000\000U\003X\003\360\000\000X\003\\\003\360\000\000\\\003k\003\360\000\000k\003r\003\360\000\000r\003w\003\360\000\000w\003z\003\360\000\000z\003~\003\360\000\000~\003Z\004\360\000\000Z\004a\004\360\000\000a\004f\004\360\000\000f\004i\004\360\000\000i\004m\004\360\000\000m\004B\005\360\000\000B\005I\005\360\000\000I\005N\005\360\000\000N\005Q\005\360\000\000Q\005U\005\360\000\000U\005e\005\360\000\000e\005l\005\360\000\000l\005q\005\360\000\000q\005t\005\360\000\000t\005x\005\360\000\000x\005F\006\360\000\000F\006M\006\360\000\000M\006N\006\330\004\007\200q\330\010\017\320\017*\250$\250a\250w\260k\300\027\310\001\340\010\017\320\017*\250$\250a\250w\260k\300\021";
static const char __pyx_k_dealloc___called_on_running_se[] = "__dealloc__ called on running server %s with status %d";
static const char __pyx_k_gevent_decrement_channel_count[] = "gevent_decrement_channel_count";
static const char __pyx_k_gevent_increment_channel_count[] = "gevent_increment_channel_count";
static const char __pyx_k_grpc_completion_queue_shutdown[] = "grpc_completion_queue_shutdown";
static const char __pyx_k_hk_A_1_____a_a_b_9HAQ_7_1L_a_1[] = "\200\001\360\006\000\005\010\200\220h\230k\250\033\260A\330\010\r\210^\2301\330\010\016\320\016!\360\000\000\"_\004\360\000\000_\004a\004\360\000\000a\004b\004\330\004\023\2209\230H\240A\240Q\330\004\007\200|\2207\230!\330\010+\2501\250L\270\016\300a\330\004\013\2101";
static const char __pyx_k_pyx_unpickle_ChannelCredential[] = "__pyx_unpickle_ChannelCredentials";
static const char __pyx_k_pyx_unpickle_InsecureChannelCr[] = "__pyx_unpickle_InsecureChannelCredentials";
static const char __pyx_k_q_a_uG4vQ_9_J_5PUUV_wavWA_7xt1[] = "\320\000?\270q\340\007\025\220[\240\006\240a\330\004\007\200u\210G\2204\220v\230Q\330\006\007\330\004\031\230\033\320$9\270\021\320:J\310!\3105\320PU\320UV\340\004\017\210w\220a\220v\230W\240A\320%7\260x\270t\3001\330\004\016\210g\220Q\220f\230G\2401\320$6\260g\270T\300\021\330\004\021\320\021#\240:\250Q\330\004\n\320\n\035\230Q\230j\250\t\260\021";
static const char __pyx_k_q_t1A_8_q_q_AQ_s_1_I_1_1_k_q_8[] = "\200\001\340\002\023\220<\230q\240\001\330\002\027\220t\2301\230A\330\002'\320'8\270\001\330\002\r\210[\230\007\230q\240\001\330\002\r\210[\230\007\230q\240\001\330\002'\320'<\270A\270Q\330\002\r\320\r/\250s\260!\2601\330\002\r\320\r)\320)I\310\021\310!\330\002;\2701\330\002\022\320\022;\2701\330\004\026\220k\240\021\330\004\017\210q\330\0028\270\001\340\002\016\320\016E\300Q\330\004\005\330\007\010\330\004\005\330\004\005\340\002\r\320\r\036\320\036M\310Q\310a\330\002\t\210\021";
static const char __pyx_k_src_python_grpcio_grpc__cython[] = "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi";
static const char __pyx_k_the_server_has_already_started[] = "the server has already started";
static const char __pyx_k_ALTSChannelCredentials___reduce[] = "ALTSChannelCredentials.__reduce_cython__";
static const char __pyx_k_A_4uCr_A_4_Ba_5_4_Cq_1_IRt5_S_1[] = "\200A\330\010\023\2204\220u\230C\230r\240\021\330\010\024\220A\330\r\021\220\021\330\014\r\330\020\023\2204\320\027,\250B\250a\330\024\030\230\013\2405\250\001\250\021\330\020\023\2204\320\027,\250C\250q\330\024\033\2301\360\010\000\021\035\230I\240R\240t\2505\260\001\330\020\023\220:\230S\240\001\330\024\033\2301";
static const char __pyx_k_A_G1F_a_vWA_q_q_q_4q_RYYZ_4q_RS[] = "\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a\330\004\007\200v\210W\220A\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017;\2704\270q\300\007\300{\320RY\320YZ\340\010\017\320\017;\2704\270q\300\007\300{\320RS";
static const char __pyx_k_Aborting_method_s_due_to_server[] = "Aborting method [%s] due to server stop.";
static const char __pyx_k_ActiveThreadCount_await_zero_th[] = "_ActiveThreadCount.await_zero_threads";
static const char __pyx_k_AioCall__handle_status_once_rec[] = "_AioCall._handle_status_once_received";
static const char __pyx_k_AioCall_receive_serialized_mess[] = "_AioCall.receive_serialized_message";
static const char __pyx_k_AioCall_send_serialized_message[] = "_AioCall.send_serialized_message";
static const char __pyx_k_AioRpcStatus_debug_error_string[] = "AioRpcStatus.debug_error_string";
static const char __pyx_k_BatchOperationTag___reduce_cyth[] = "_BatchOperationTag.__reduce_cython__";
static const char __pyx_k_BatchOperationTag___setstate_cy[] = "_BatchOperationTag.__setstate_cython__";
static const char __pyx_k_BoundEventLoop___setstate_cytho[] = "_BoundEventLoop.__setstate_cython__";
static const char __pyx_k_COMPRESSION_METADATA_STRING_MAP[] = "_COMPRESSION_METADATA_STRING_MAPPING";
static const char __pyx_k_CallCredentials___reduce_cython[] = "CallCredentials.__reduce_cython__";
static const char __pyx_k_Call_credentials_are_only_valid[] = "Call credentials are only valid on secure channels";
static const char __pyx_k_CallbackFailureHandler___reduce[] = "CallbackFailureHandler.__reduce_cython__";
static const char __pyx_k_CallbackWrapper___reduce_cython[] = "CallbackWrapper.__reduce_cython__";
static const char __pyx_k_CensusContext___setstate_cython[] = "CensusContext.__setstate_cython__";
static const char __pyx_k_CompletionQueue___reduce_cython[] = "CompletionQueue.__reduce_cython__";
static const char __pyx_k_CompressionOptions_is_algorithm[] = "CompressionOptions.is_algorithm_enabled";
static const char __pyx_k_ComputeEngineChannelCredentials[] = "ComputeEngineChannelCredentials";
static const char __pyx_k_ConcurrentRpcLimiter___reduce_c[] = "_ConcurrentRpcLimiter.__reduce_cython__";
static const char __pyx_k_ConcurrentRpcLimiter___setstate[] = "_ConcurrentRpcLimiter.__setstate_cython__";
static const char __pyx_k_ConcurrentRpcLimiter_check_befo[] = "_ConcurrentRpcLimiter.check_before_request_call";
static const char __pyx_k_ConcurrentRpcLimiter_decrease_o[] = "_ConcurrentRpcLimiter.decrease_once_finished";
static const char __pyx_k_ConnectivityTag___reduce_cython[] = "_ConnectivityTag.__reduce_cython__";
static const char __pyx_k_ConnectivityTag___setstate_cyth[] = "_ConnectivityTag.__setstate_cython__";
static const char __pyx_k_Failed_to_get_the_server_please[] = "Failed to get the server, please ensure your server_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_socket_please[] = "Failed to get the socket, please ensure your socket_id==%s is valid";
static const char __pyx_k_GrpcArgWrapper___setstate_cytho[] = "_GrpcArgWrapper.__setstate_cython__";
static const char __pyx_k_HandlerCallDetails___reduce_cyt[] = "_HandlerCallDetails.__reduce_cython__";
static const char __pyx_k_HandlerCallDetails___setstate_c[] = "_HandlerCallDetails.__setstate_cython__";
static const char __pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR[] = "_INTERNAL_CALL_ERROR_MESSAGE_FORMAT";
static const char __pyx_k_MessageReceiver___reduce_cython[] = "_MessageReceiver.__reduce_cython__";
static const char __pyx_k_MessageReceiver___setstate_cyth[] = "_MessageReceiver.__setstate_cython__";
static const char __pyx_k_MetadataPluginCallCredentials_2[] = "MetadataPluginCallCredentials.__reduce_cython__";
static const char __pyx_k_MetadataPluginCallCredentials_3[] = "MetadataPluginCallCredentials.__setstate_cython__";
static const char __pyx_k_No_custom_hooks_are_implemented[] = "No custom hooks are implemented";
static const char __pyx_k_PollerCompletionQueue_bind_loop[] = "PollerCompletionQueue.bind_loop";
static const char __pyx_k_Raised_if_the_server_is_stopped[] = "Raised if the server is stopped.";
static const char __pyx_k_Raised_when_the_usage_of_API_by[] = "Raised when the usage of API by applications is inappropriate.\n\n    For example, trying to invoke RPC on a closed channel, mixing two styles\n    of streaming API on the client side. This exception should not be\n    suppressed.\n    ";
static const char __pyx_k_ReceiveCloseOnServerOperation_2[] = "ReceiveCloseOnServerOperation.__reduce_cython__";
static const char __pyx_k_ReceiveCloseOnServerOperation_3[] = "ReceiveCloseOnServerOperation.__setstate_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation[] = "ReceiveInitialMetadataOperation";
static const char __pyx_k_ReceiveMessageOperation_message[] = "ReceiveMessageOperation.message";
static const char __pyx_k_RequestCallTag___setstate_cytho[] = "_RequestCallTag.__setstate_cython__";
static const char __pyx_k_SendMessageOperation___setstate[] = "SendMessageOperation.__setstate_cython__";
static const char __pyx_k_SendStatusFromServerOperation_2[] = "SendStatusFromServerOperation.__reduce_cython__";
static const char __pyx_k_SendStatusFromServerOperation_3[] = "SendStatusFromServerOperation.__setstate_cython__";
static const char __pyx_k_ServerShutdownTag___reduce_cyth[] = "_ServerShutdownTag.__reduce_cython__";
static const char __pyx_k_ServerShutdownTag___setstate_cy[] = "_ServerShutdownTag.__setstate_cython__";
static const char __pyx_k_ServicerContext___reduce_cython[] = "_ServicerContext.__reduce_cython__";
static const char __pyx_k_ServicerContext___setstate_cyth[] = "_ServicerContext.__setstate_cython__";
static const char __pyx_k_ServicerContext_abort_with_stat[] = "_ServicerContext.abort_with_status";
static const char __pyx_k_ServicerContext_add_done_callba[] = "_ServicerContext.add_done_callback";
static const char __pyx_k_ServicerContext_disable_next_me[] = "_ServicerContext.disable_next_message_compression";
static const char __pyx_k_ServicerContext_invocation_meta[] = "_ServicerContext.invocation_metadata";
static const char __pyx_k_ServicerContext_peer_identities[] = "_ServicerContext.peer_identities";
static const char __pyx_k_ServicerContext_peer_identity_k[] = "_ServicerContext.peer_identity_key";
static const char __pyx_k_ServicerContext_send_initial_me[] = "_ServicerContext.send_initial_metadata";
static const char __pyx_k_ServicerContext_set_compression[] = "_ServicerContext.set_compression";
static const char __pyx_k_ServicerContext_set_trailing_me[] = "_ServicerContext.set_trailing_metadata";
static const char __pyx_k_ServicerContext_trailing_metada[] = "_ServicerContext.trailing_metadata";
static const char __pyx_k_SyncServicerContext___reduce_cy[] = "_SyncServicerContext.__reduce_cython__";
static const char __pyx_k_SyncServicerContext_add_callbac[] = "_SyncServicerContext.add_callback";
static const char __pyx_k_SyncServicerContext_auth_contex[] = "_SyncServicerContext.auth_context";
static const char __pyx_k_SyncServicerContext_disable_nex[] = "_SyncServicerContext.disable_next_message_compression";
static const char __pyx_k_SyncServicerContext_peer_identi[] = "_SyncServicerContext.peer_identities";
static const char __pyx_k_SyncServicerContext_send_initia[] = "_SyncServicerContext.send_initial_metadata";
static const char __pyx_k_SyncServicerContext_set_compres[] = "_SyncServicerContext.set_compression";
static const char __pyx_k_SyncServicerContext_set_details[] = "_SyncServicerContext.set_details";
static const char __pyx_k_SyncServicerContext_set_trailin[] = "_SyncServicerContext.set_trailing_metadata";
static const char __pyx_k_SyncServicerContext_time_remain[] = "_SyncServicerContext.time_remaining";
static const char __pyx_k_Tuple_Tuple_str_Union_str_bytes[] = "Tuple[Tuple[str, Union[str, bytes]]...]";
static const char __pyx_k_add_callback_handler_locals_han[] = "_add_callback_handler.<locals>.handle_callbacks";
static const char __pyx_k_find_method_handler_locals_quer[] = "_find_method_handler.<locals>.query_handlers";
static const char __pyx_k_finish_handler_with_stream_resp[] = "_finish_handler_with_stream_responses";
static const char __pyx_k_finish_handler_with_unary_respo[] = "_finish_handler_with_unary_response";
static const char __pyx_k_grpc_server_shutdown_and_notify[] = "grpc_server_shutdown_and_notify";
static const char __pyx_k_integrated_call_locals_on_succe[] = "_integrated_call.<locals>.on_success";
static const char __pyx_k_l_1_t4q_Jaq_6_1_Jaq_1_Q_WAQ_Q_Q[] = "\200!\330()\330\016\017\330\004\016\210l\230!\2301\330\004\007\200t\2104\210q\330\006\014\210J\220a\220q\330\004\010\210\010\220\003\2206\230\024\230[\250\003\2501\330\006\014\210J\220a\220q\360\006\000\005\034\2301\330\004\007\200{\220#\220Q\330\006\n\210+\220W\230A\230Q\330\006\022\220!\330\013\014\330\010\021\320\021-\250Q\330\014\020\220\t\230\034\240[\260\001\330\006\r\210Q\340\013\014\330\010\021\320\021!\240\021\240$\240i\250q\330\006\r\210Q";
static const char __pyx_k_maybe_register_shutdown_handler[] = "_maybe_register_shutdown_handler";
static const char __pyx_k_maybe_save_server_trace_context[] = "maybe_save_server_trace_context";
static const char __pyx_k_of_RPC_that_terminated_with_sta[] = "<{} of RPC that terminated with:\n\tstatus = {}\n\tdetails = \"{}\"\n>";
static const char __pyx_k_q_4t5_q_Ja_4xuCs_A_Ja_9_he1_HHA[] = "\320\004\027\220q\360\010\000\t\016\210\\\230\021\340\010\013\2104\210t\2205\230\001\330\014\023\220=\240\007\240q\250\004\250J\260a\340\010\013\2104\210x\220u\230C\230s\240*\250A\330\014\023\320\023*\250'\260\021\330\020\024\220J\230a\330\020\027\320\0279\270\021\270$\270h\300e\3101\330\020\024\220H\230H\240A\340\014\023\320\023.\250g\260Q\330\020\024\220J\230a\330\020\024\220H\230H\240A\330\020\027\320\0279\270\021\270$\270h\300e\3101\330\020\024\220H\320\034/\250q";
static const char __pyx_k_q_A_Q_1_2_1_A_q_y_1_xvS_T_1_HHA[] = "\200\001\360\n\000\003\022\320\021'\240q\250\004\250A\330\002\005\200]\220#\220Q\330\004\013\2101\330\002\017\320\0172\260!\2601\330\002\024\220A\330\002\003\330\004\017\320\017/\250q\260\001\260\021\330\004\007\200y\220\003\2201\330\006\007\330\004\007\200x\210v\220S\230\005\230T\240\030\250\027\260\003\2601\330\006\014\210H\220H\230A\330\006\t\210\024\210S\220\001\330\010\027\220q\230\004\230G\2401\240H\250H\260A\340\010\027\220q\230\007\230q\240\010\250\010\260\001\330\002\033\2301\230A\330\002\t\210\021";
static const char __pyx_k_segregated_call_locals_on_succe[] = "_segregated_call.<locals>.on_success";
static const char __pyx_k_self__cq_cannot_be_converted_to[] = "self._cq cannot be converted to a Python object for pickling";
static const char __pyx_k_self_arg_cannot_be_converted_to[] = "self.arg cannot be converted to a Python object for pickling";
static const char __pyx_k_t4q_Jaq_22DA_2_xq_Qa_1_i_2EQ_31[] = "\200!\330\004\007\200t\2104\210q\330\006\014\210J\220a\220q\330\0042\3202D\300A\330\010\r\210\\\230\030\320!2\260!\330\004\027\220x\230q\330\013\025\220Q\220a\340\t\n\330\006\016\320\016#\2401\330\n\016\210i\320\027*\250(\3202E\300Q\330\n\036\320\0363\2601\330\004\013\2101";
static const char __pyx_k_t7_Jaz_iq_GG___4z_1B_KKccd_3avS[] = "\200\001\330\004\007\200t\2107\220!\220:\230\\\250\023\250J\260a\260z\300\021\330\010\016\210i\220q\230\002\320\032G\320G_\320_`\330\004\010\210\010\220\001\330\010\013\2104\210z\230\021\230&\240\001\330\014\022\220)\2301\230B\320\036K\320Kc\320cd\330\010\013\2103\210a\210v\220S\230\001\330\014\022\220)\2301\230B\320\036K\320Kc\320cd\330\010\013\2104\210z\230\021\230$\230a\230t\2401\330\014\022\220)\2301\230B\320\036K\320Kc\320cd\330\010\013\2104\210z\230\021\230$\230a\230t\2405\250\004\250D\260\n\270!\2704\270q\300\004\300A\330\014\022\220)\2301\230B\320\036K\320Kc\320cd";
static const char __pyx_k_t_S_T_q_t1_4_c_Qa_l_4_7q_D_e1_d[] = "\200!\330\004\007\200t\210:\220S\230\001\330\006\t\210\024\210T\220\021\340\013\017\210q\340\013\017\210t\2201\330\010\013\2104\320\017&\240c\250\021\330\n\020\220\r\230Q\230a\360\006\000\013\017\210l\230!\2304\320\0377\260q\340\n\020\220\004\220D\230\001\330\014\020\320\020&\240e\2501\360\010\000\t\017\210d\220$\220a\330\n\016\210f\220A\220Q\330\013\014\330\010\033\2301\230D\240\001\330\010\014\210L\230\001";
static const char __pyx_k_ALTSChannelCredentials___setstat[] = "ALTSChannelCredentials.__setstate_cython__";
static const char __pyx_k_A_1_4_E_U_t7_M_G6_G4q_M_a_87_uCq[] = "\200A\340\010\013\2101\340\014\023\2204\220}\240E\250\021\250!\360\010\000\t\n\330\014\020\220\r\230U\240!\330\014\017\210t\2207\230&\240\001\330\020\024\220M\240\027\250\001\330\020\021\340\020\030\230\004\230G\2406\250\021\330\020\024\220G\2304\230q\330\020\024\220M\240\027\250\001\340\014\026\320\026)\250\025\250a\330\014\023\2208\2307\240!\330\014\017\210u\220C\220q\340\037+\2501\330\0245\260U\270!\330\024\031\230\021\360\006\000\021\025\320\024)\250\021\330\024\025\330\024%\240W\250A\330\024\031\230\021";
static const char __pyx_k_Abort_error_unexpectedly_suppres[] = "Abort error unexpectedly suppressed: %s";
static const char __pyx_k_AioChannel_check_connectivity_st[] = "AioChannel.check_connectivity_state";
static const char __pyx_k_AioChannel_watch_connectivity_st[] = "AioChannel.watch_connectivity_state";
static const char __pyx_k_AioServer__serving_task_crash_ha[] = "AioServer._serving_task_crash_handler";
static const char __pyx_k_AioServer_add_generic_rpc_handle[] = "AioServer.add_generic_rpc_handlers";
static const char __pyx_k_BaseCompletionQueue___reduce_cyt[] = "BaseCompletionQueue.__reduce_cython__";
static const char __pyx_k_BaseCompletionQueue___setstate_c[] = "BaseCompletionQueue.__setstate_cython__";
static const char __pyx_k_BatchOperationEvent___reduce_cyt[] = "BatchOperationEvent.__reduce_cython__";
static const char __pyx_k_BatchOperationEvent___setstate_c[] = "BatchOperationEvent.__setstate_cython__";
static const char __pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD[] = "CYGRPC_STATUS_CODE_TO_STATUS_CODE";
static const char __pyx_k_CallCredentials___setstate_cytho[] = "CallCredentials.__setstate_cython__";
static const char __pyx_k_Call_credentials_may_not_be_NULL[] = "Call credentials may not be NULL.";
static const char __pyx_k_CallbackFailureHandler___setstat[] = "CallbackFailureHandler.__setstate_cython__";
static const char __pyx_k_CallbackWrapper___setstate_cytho[] = "CallbackWrapper.__setstate_cython__";
static const char __pyx_k_Cannot_invoke_RPC_on_closed_chan[] = "Cannot invoke RPC on closed channel!";
static const char __pyx_k_ChannelCredentials___reduce_cyth[] = "ChannelCredentials.__reduce_cython__";
static const char __pyx_k_ChannelCredentials___setstate_cy[] = "ChannelCredentials.__setstate_cython__";
static const char __pyx_k_Channel_check_connectivity_state[] = "Channel.check_connectivity_state";
static const char __pyx_k_Channel_get_registered_call_hand[] = "Channel.get_registered_call_handle";
static const char __pyx_k_Channel_watch_connectivity_state[] = "Channel.watch_connectivity_state";
static const char __pyx_k_CompletionQueue___setstate_cytho[] = "CompletionQueue.__setstate_cython__";
static const char __pyx_k_CompositeCallCredentials___reduc[] = "CompositeCallCredentials.__reduce_cython__";
static const char __pyx_k_CompositeCallCredentials___setst[] = "CompositeCallCredentials.__setstate_cython__";
static const char __pyx_k_CompositeChannelCredentials___re[] = "CompositeChannelCredentials.__reduce_cython__";
static const char __pyx_k_CompositeChannelCredentials___se[] = "CompositeChannelCredentials.__setstate_cython__";
static const char __pyx_k_CompressionOptions___reduce_cyth[] = "CompressionOptions.__reduce_cython__";
static const char __pyx_k_CompressionOptions___setstate_cy[] = "CompressionOptions.__setstate_cython__";
static const char __pyx_k_CompressionOptions_disable_algor[] = "CompressionOptions.disable_algorithm";
static const char __pyx_k_CompressionOptions_enable_algori[] = "CompressionOptions.enable_algorithm";
static const char __pyx_k_CompressionOptions_to_channel_ar[] = "CompressionOptions.to_channel_arg";
static const char __pyx_k_Compression_setting_must_be_spec[] = "Compression setting must be specified before sending initial metadata";
static const char __pyx_k_ConnectivityEvent___reduce_cytho[] = "ConnectivityEvent.__reduce_cython__";
static const char __pyx_k_ConnectivityEvent___setstate_cyt[] = "ConnectivityEvent.__setstate_cython__";
static const char __pyx_k_Core_should_not_return_GRPC_QUEU[] = "Core should not return GRPC_QUEUE_TIMEOUT!";
static const char __pyx_k_Credentials_couldn_t_have_been_s[] = "Credentials couldn't have been set: {0}";
static const char __pyx_k_Dedicated_exception_class_for_wa[] = "Dedicated exception class for watch connectivity failed.\n\n    It might be failed due to deadline exceeded.\n    ";
static const char __pyx_k_Error_fetching_certificate_confi[] = "Error fetching certificate config";
static const char __pyx_k_Error_in_grpc_server_request_cal[] = "Error in grpc_server_request_call: %s";
static const char __pyx_k_Error_in_grpc_server_request_reg[] = "Error in grpc_server_request_registered_call: %s";
static const char __pyx_k_Exception_not_handled_by__handle[] = "Exception not handled by _handle_exceptions in servicer method [";
static const char __pyx_k_ExecuteBatchError_raised_in_core[] = "ExecuteBatchError raised in core by servicer method [%s]";
static const char __pyx_k_Exiting_child_due_to_raised_exce[] = "Exiting child due to raised exception";
static const char __pyx_k_Expected_bytes_str_or_unicode_no[] = "Expected bytes, str, or unicode, not {}";
static const char __pyx_k_Expected_int_bytes_or_behavior_g[] = "Expected int, bytes, or behavior, got {}";
static const char __pyx_k_Failed_grpc_call_start_batch_wit[] = "Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'";
static const char __pyx_k_Failed_sending_error_status_from[] = "Failed sending error status from server";
static const char __pyx_k_Failed_to_get_server_sockets_ple[] = "Failed to get server sockets, please ensure your server_id==";
static const char __pyx_k_Failed_to_get_servers_please_ens[] = "Failed to get servers, please ensure your start_server_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_channel_please[] = "Failed to get the channel, please ensure your channel_id==%s is valid";
static const char __pyx_k_Failed_to_get_the_subchannel_ple[] = "Failed to get the subchannel, please ensure your subchannel_id==%s is valid";
static const char __pyx_k_Failed_to_get_top_channels_pleas[] = "Failed to get top channels, please ensure your start_channel_id==%s is valid";
static const char __pyx_k_Failed_to_receive_any_message_fr[] = "Failed to receive any message from Core";
static const char __pyx_k_Failed_to_shutdown_gRPC_Core_aft[] = "Failed to shutdown gRPC Core after fork()";
static const char __pyx_k_Failed_to_shutdown_gRPC_Python_t[] = "Failed to shutdown gRPC Python threads prior to fork. Behavior after fork will be undefined.";
static const char __pyx_k_ForkManagedThread___init___local[] = "ForkManagedThread.__init__.<locals>.managed_target";
static const char __pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT[] = "GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM";
static const char __pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT[] = "GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY";
static const char __pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT[] = "GRPC_PROPAGATE_CENSUS_STATS_CONTEXT";
static const char __pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO[] = "GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())";
static const char __pyx_k_InsecureChannelCredentials___red[] = "InsecureChannelCredentials.__reduce_cython__";
static const char __pyx_k_InsecureChannelCredentials___set[] = "InsecureChannelCredentials.__setstate_cython__";
static const char __pyx_k_IntegratedCall___setstate_cython[] = "IntegratedCall.__setstate_cython__";
static const char __pyx_k_Internal_gRPC_call_error_d_Pleas[] = "Internal gRPC call error %d. Please report to https://github.com/grpc/grpc/issues";
static const char __pyx_k_Invalid_trailing_metadata_type_e[] = "Invalid trailing metadata type, expected ";
static const char __pyx_k_LocalChannelCredentials___reduce[] = "LocalChannelCredentials.__reduce_cython__";
static const char __pyx_k_LocalChannelCredentials___setsta[] = "LocalChannelCredentials.__setstate_cython__";
static const char __pyx_k_Note_that_Cython_is_deliberately[] = "Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.";
static const char __pyx_k_PollerCompletionQueue___reduce_c[] = "PollerCompletionQueue.__reduce_cython__";
static const char __pyx_k_PollerCompletionQueue___setstate[] = "PollerCompletionQueue.__setstate_cython__";
static const char __pyx_k_PollerCompletionQueue__handle_ev[] = "PollerCompletionQueue._handle_events";
static const char __pyx_k_PollerCompletionQueue__poll_wrap[] = "PollerCompletionQueue._poll_wrapper";
static const char __pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2[] = "__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_.<locals>.wrap";
static const char __pyx_k_RPC_cancelled_for_servicer_metho[] = "RPC cancelled for servicer method [%s]";
static const char __pyx_k_RPC_cancelled_for_unknown_reason[] = "RPC cancelled for unknown reason.";
static const char __pyx_k_Raised_upon_unexpected_errors_in[] = "Raised upon unexpected errors in native code.";
static const char __pyx_k_Raised_when_calling_abort_in_ser[] = "Raised when calling abort in servicer methods.\n\n    This exception should not be suppressed. Applications may catch it to\n    perform certain clean-up logic, and then re-raise it.\n    ";
static const char __pyx_k_Raised_when_execute_batch_return[] = "Raised when execute batch returns a failure from Core.";
static const char __pyx_k_ReceiveCloseOnServerOperation_ca[] = "ReceiveCloseOnServerOperation.cancelled";
static const char __pyx_k_ReceiveCloseOnServerOperation_ty[] = "ReceiveCloseOnServerOperation.type";
static const char __pyx_k_ReceiveMessageOperation___reduce[] = "ReceiveMessageOperation.__reduce_cython__";
static const char __pyx_k_ReceiveMessageOperation___setsta[] = "ReceiveMessageOperation.__setstate_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_2[] = "ReceiveStatusOnClientOperation.__reduce_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_3[] = "ReceiveStatusOnClientOperation.__setstate_cython__";
static const char __pyx_k_ReceiveStatusOnClientOperation_c[] = "ReceiveStatusOnClientOperation.code";
static const char __pyx_k_ReceiveStatusOnClientOperation_d[] = "ReceiveStatusOnClientOperation.details";
static const char __pyx_k_ReceiveStatusOnClientOperation_e[] = "ReceiveStatusOnClientOperation.error_string";
static const char __pyx_k_ReceiveStatusOnClientOperation_t[] = "ReceiveStatusOnClientOperation.type";
static const char __pyx_k_RegisteredMethod___reduce_cython[] = "RegisteredMethod.__reduce_cython__";
static const char __pyx_k_RegisteredMethod___setstate_cyth[] = "RegisteredMethod.__setstate_cython__";
static const char __pyx_k_RequestCallEvent___reduce_cython[] = "RequestCallEvent.__reduce_cython__";
static const char __pyx_k_RequestCallEvent___setstate_cyth[] = "RequestCallEvent.__setstate_cython__";
static const char __pyx_k_SSLChannelCredentials___reduce_c[] = "SSLChannelCredentials.__reduce_cython__";
static const char __pyx_k_SSLChannelCredentials___setstate[] = "SSLChannelCredentials.__setstate_cython__";
static const char __pyx_k_SSLSessionCacheLRU___reduce_cyth[] = "SSLSessionCacheLRU.__reduce_cython__";
static const char __pyx_k_SSLSessionCacheLRU___setstate_cy[] = "SSLSessionCacheLRU.__setstate_cython__";
static const char __pyx_k_SegregatedCall___setstate_cython[] = "SegregatedCall.__setstate_cython__";
static const char __pyx_k_SendCloseFromClientOperation___r[] = "SendCloseFromClientOperation.__reduce_cython__";
static const char __pyx_k_SendCloseFromClientOperation___s[] = "SendCloseFromClientOperation.__setstate_cython__";
static const char __pyx_k_SendCloseFromClientOperation_typ[] = "SendCloseFromClientOperation.type";
static const char __pyx_k_SendInitialMetadataOperation___r[] = "SendInitialMetadataOperation.__reduce_cython__";
static const char __pyx_k_SendInitialMetadataOperation___s[] = "SendInitialMetadataOperation.__setstate_cython__";
static const char __pyx_k_SendInitialMetadataOperation_typ[] = "SendInitialMetadataOperation.type";
static const char __pyx_k_SendMessageOperation___reduce_cy[] = "SendMessageOperation.__reduce_cython__";
static const char __pyx_k_SendStatusFromServerOperation_ty[] = "SendStatusFromServerOperation.type";
static const char __pyx_k_Send_initial_metadata_failed_alr[] = "Send initial metadata failed: already sent";
static const char __pyx_k_ServerCertificateConfig___reduce[] = "ServerCertificateConfig.__reduce_cython__";
static const char __pyx_k_ServerCertificateConfig___setsta[] = "ServerCertificateConfig.__setstate_cython__";
static const char __pyx_k_ServerCredentials___reduce_cytho[] = "ServerCredentials.__reduce_cython__";
static const char __pyx_k_ServerCredentials___setstate_cyt[] = "ServerCredentials.__setstate_cython__";
static const char __pyx_k_ServerShutdownEvent___reduce_cyt[] = "ServerShutdownEvent.__reduce_cython__";
static const char __pyx_k_ServerShutdownEvent___setstate_c[] = "ServerShutdownEvent.__setstate_cython__";
static const char __pyx_k_Server_register_completion_queue[] = "Server.register_completion_queue";
static const char __pyx_k_Server_shutdown_failed_no_comple[] = "Server shutdown failed: no completion queue.";
static const char __pyx_k_SslPemKeyCertPair___reduce_cytho[] = "SslPemKeyCertPair.__reduce_cython__";
static const char __pyx_k_SslPemKeyCertPair___setstate_cyt[] = "SslPemKeyCertPair.__setstate_cython__";
static const char __pyx_k_The_base_class_for_exceptions_ge[] = "The base class for exceptions generated by gRPC AsyncIO stack.";
static const char __pyx_k_Timed_out_waiting_for_C_core_cle[] = "Timed out waiting for C-core clean-up";
static const char __pyx_k_XDSChannelCredentials___reduce_c[] = "XDSChannelCredentials.__reduce_cython__";
static const char __pyx_k_XDSChannelCredentials___setstate[] = "XDSChannelCredentials.__setstate_cython__";
static const char __pyx_k_cannot_register_completion_queue[] = "cannot register completion queues after start";
static const char __pyx_k_cert_config_fetcher_must_be_call[] = "cert_config_fetcher must be callable";
static const char __pyx_k_channel_credentials_compute_engi[] = "channel_credentials_compute_engine";
static const char __pyx_k_clear_server_call_tracer_factory[] = "clear_server_call_tracer_factory";
static const char __pyx_k_create_server_call_tracer_factor[] = "create_server_call_tracer_factory";
static const char __pyx_k_disable_next_message_compression[] = "disable_next_message_compression";
static const char __pyx_k_expected_certificate_to_be_bytes[] = "expected certificate to be bytes, got %s";
static const char __pyx_k_expected_pem_key_cert_pairs_to_b[] = "expected pem_key_cert_pairs to be sequence of SslPemKeyCertPair";
static const char __pyx_k_expected_registered_completion_q[] = "expected registered completion queue";
static const char __pyx_k_generator_to_async_generator_loc[] = "generator_to_async_generator.<locals>.yield_to_queue";
static const char __pyx_k_get_server_call_tracer_factory_a[] = "get_server_call_tracer_factory_address";
static const char __pyx_k_grpc_python__cygrpc__GrpcArgWrap[] = "grpc.python._cygrpc._GrpcArgWrapper";
static const char __pyx_k_if_error_code_is_specified_so_mu[] = "if error_code is specified, so must details (and vice-versa)";
static const char __pyx_k_initial_cert_config_must_be_a_gr[] = "initial_cert_config must be a grpc.ServerCertificateConfiguration";
static const char __pyx_k_install_context_from_request_cal[] = "install_context_from_request_call_event_aio";
static const char __pyx_k_internal_error_user_data_must_be[] = "internal error: user_data must be specified";
static const char __pyx_k_invalid_call_object_cannot_be_us[] = "invalid call object cannot be used from Python";
static const char __pyx_k_maximum_concurrent_rpcs_should_b[] = "maximum_concurrent_rpcs should be a positive integer";
static const char __pyx_k_next_call_event_locals_on_succes[] = "next_call_event.<locals>.on_success";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_queue_must_be_shutting_down_to_b[] = "queue must be shutting down to be cleared";
static const char __pyx_k_raise_if_not_valid_trailing_meta[] = "raise_if_not_valid_trailing_metadata";
static const char __pyx_k_return_from_user_request_generat[] = "return_from_user_request_generator";
static const char __pyx_k_self_c_argument_cannot_be_conver[] = "self.c_argument cannot be converted to a Python object for pickling";
static const char __pyx_k_self_c_credentials_cannot_be_con[] = "self.c_credentials cannot be converted to a Python object for pickling";
static const char __pyx_k_self_c_op_cannot_be_converted_to[] = "self.c_op cannot be converted to a Python object for pickling";
static const char __pyx_k_server_credentials_ssl_dynamic_c[] = "server_credentials_ssl_dynamic_cert_config";
static const char __pyx_k_server_must_be_started_and_not_s[] = "server must be started and not shutting down";
static const char __pyx_k_server_queue_must_be_a_registere[] = "server_queue must be a registered completion queue";
static const char __pyx_k_set_instrumentation_context_on_c[] = "set_instrumentation_context_on_call_aio";
static const char __pyx_k_src_python_grpcio_grpc__cython_2[] = "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_3[] = "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_4[] = "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_5[] = "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_6[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_7[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_8[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_9[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi";
static const char __pyx_k_the_server_must_be_shutting_down[] = "the server must be shutting down to cancel all calls";
static const char __pyx_k_ComputeEngineChannelCredentials_2[] = "ComputeEngineChannelCredentials.__reduce_cython__";
static const char __pyx_k_ComputeEngineChannelCredentials_3[] = "ComputeEngineChannelCredentials.__setstate_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation_2[] = "ReceiveInitialMetadataOperation.type";
static const char __pyx_k_ReceiveInitialMetadataOperation_3[] = "ReceiveInitialMetadataOperation.initial_metadata";
static const char __pyx_k_ReceiveInitialMetadataOperation_4[] = "ReceiveInitialMetadataOperation.__reduce_cython__";
static const char __pyx_k_ReceiveInitialMetadataOperation_5[] = "ReceiveInitialMetadataOperation.__setstate_cython__";
static const char __pyx_k_SyncServicerContext_peer_identi_2[] = "_SyncServicerContext.peer_identity_key";
static const char __pyx_k_of_RPC_that_terminated_with_sta_2[] = "<{} of RPC that terminated with:\n\tstatus = {}\n\tdetails = \"{}\"\n\tdebug_error_string = \"{}\"\n>";
static const char __pyx_k_src_python_grpcio_grpc__cython_10[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_11[] = "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_12[] = "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_13[] = "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_14[] = "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_15[] = "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_16[] = "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_17[] = "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_18[] = "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_19[] = "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_20[] = "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_21[] = "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_22[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_23[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi";
static const char __pyx_k_src_python_grpcio_grpc__cython_24[] = "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi";
static const char __pyx_k_Error_fetching_certificate_confi_2[] = "Error fetching certificate configuration: certificate configuration must be of type grpc.ServerCertificateConfiguration, not %s";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))";
static const char __pyx_k_ReceiveStatusOnClientOperation_t_2[] = "ReceiveStatusOnClientOperation.trailing_metadata";
static const char __pyx_k_install_context_from_request_cal_2[] = "install_context_from_request_call_event";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(PyObject *__pyx_self, PyObject *__pyx_v_cb, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, PyObject *__pyx_v_arguments); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag, PyObject *__pyx_v_retain_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, grpc_status_code __pyx_v_error_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, int __pyx_v_op); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, PyObject *__pyx_v_method); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(PyObject *__pyx_self, PyObject *__pyx_v_started_tags); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_started_tags); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_arguments, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_try_to_connect); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_method); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_channel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_server_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id, PyObject *__pyx_v_start_socket_id, PyObject *__pyx_v_max_results); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_subchannel_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_socket_id); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cb_func, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback_func); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(PyObject *__pyx_self, PyObject *__pyx_v_metadata, grpc_status_code __pyx_v_status, PyObject *__pyx_v_error_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22_maybe_register_shutdown_handler(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, PyObject *__pyx_v_metadata_plugin, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, PyObject *__pyx_v_capacity); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, PyObject *__pyx_v_pem_root_certificates, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses, PyObject *__pyx_v_channel_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_fallback_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24server_credentials_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs, int __pyx_v_force_client_auth); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26server_certificate_config_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28server_credentials_ssl_dynamic_cert_config(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_initial_cert_config, PyObject *__pyx_v_cert_config_fetcher, int __pyx_v_force_client_auth); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_32channel_credentials_insecure(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_34server_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_36xds_server_credentials(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_38insecure_server_credentials(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_service_accounts); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_40channel_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_service_accounts); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_42server_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_44channel_credentials_compute_engine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_call_creds); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_shutdown_cq); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details, PyObject *__pyx_v_invocation_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, PyObject *__pyx_v_batch_operations); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(PyObject *__pyx_self, size_t __pyx_genexpr_arg_0); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_initial_metadata, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, PyObject *__pyx_v_message, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_code, PyObject *__pyx_v_details, int __pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_46compression_algorithm_name(CYTHON_UNUSED PyObject *__pyx_self, grpc_compression_algorithm __pyx_v_algorithm); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_48reset_grpc_config_vars(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_50peer_identities(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_52peer_identity_key(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_54auth_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, PyObject *__pyx_v_method, __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_arguments, int __pyx_v_xds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_fully_qualified_method); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_backup_queue); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_address, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, PyObject *__pyx_v_user_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, PyObject *__pyx_v_user_tag); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_operations, PyObject *__pyx_v_call); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_shutting_down_server); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_58install_context_from_request_call_event_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_60uninstall_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_62build_census_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_64set_census_context_on_call(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_66set_instrumentation_context_on_call_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_68get_deadline_from_context(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_70get_server_call_tracer_factory_address(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_observability_plugin, int __pyx_v_xds); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_72clear_server_call_tracer_factory(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_74maybe_save_server_trace_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_76gevent_increment_channel_count(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_78gevent_decrement_channel_count(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_80spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_82run_spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_84shutdown_await_next_greenlet(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_86init_grpc_gevent(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_88_contextvars_supported(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_94_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_96fork_handlers_and_grpc_init(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(PyObject *__pyx_self, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_daemonic); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_98block_if_fork_in_progress(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_postfork_state_to_reset); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_100enter_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_102return_from_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_104get_fork_epoch(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_106is_fork_support_enabled(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_108fork_register_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_110fork_unregister_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timeout_secs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_112schedule_coro_threadsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_coro, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_114async_generator_to_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_agen, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_117generator_to_async_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_122get_working_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_124raise_if_not_valid_trailing_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_metadata); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_debug_error_string); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_126_handle_callback_wrapper(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper, int __pyx_v_success); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_read_socket, PyObject *__pyx_v_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_context_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_core_function_name, PyObject *__pyx_v_error_details, PyObject *__pyx_v_exception_type); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, PyObject *__pyx_v_future, PyObject *__pyx_v_loop, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_128execute_batch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_operations, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_131_receive_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_134_send_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_message, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, int __pyx_v_write_flag, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_137_send_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_metadata, int __pyx_v_flags, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_140_receive_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_143_send_error_status_from_server(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, PyObject *__pyx_v_loop); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_146_grpc_shutdown_wrapper(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_148init_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_150shutdown_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials, PyObject *__pyx_v_wait_for_ready); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_error_str); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_message); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_options, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials, PyObject *__pyx_v_loop); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, int __pyx_v_try_to_connect); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_deadline, PyObject *__pyx_v_python_call_credentials, PyObject *__pyx_v_wait_for_ready); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_invocation_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_request_deserializer, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_message); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_status); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_compression); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_compression); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_callback); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_152_run_interceptor(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_query_handler, PyObject *__pyx_v_handler_call_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_155_is_async_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handler); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_157_find_method_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method, PyObject *__pyx_v_metadata, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(PyObject *__pyx_self, PyObject *__pyx_v_handler_call_details); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_160_finish_handler_with_unary_response(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_unary_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_163_finish_handler_with_stream_responses(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_stream_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_166_handle_unary_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_169_handle_unary_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_172_handle_stream_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_175_handle_stream_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_178_handle_exceptions(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_rpc_coro, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_unused_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_181_handle_cancellation_from_core(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_184_schedule_rpc_coro(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_coro, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_187_handle_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop, int __pyx_v_concurrency_exceeded); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, int __pyx_v_maximum_concurrent_rpcs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_unused_future); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, PyObject *__pyx_v_rpc_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_options, PyObject *__pyx_v_maximum_concurrent_rpcs); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_generic_rpc_handlers); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address, PyObject *__pyx_v_server_credentials); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_server_started); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_task); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_grace); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_timeout); /* proto */
static void __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_ChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle_InsecureChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle__Tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_CensusContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_198__pyx_unpickle_AioServer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Server(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
/* SmallCodeConfig */
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  #ifdef __Pyx_CyFunction_USED
  PyTypeObject *__pyx_CyFunctionType;
  #endif
  #ifdef __Pyx_FusedFunction_USED
  PyTypeObject *__pyx_FusedFunctionType;
  #endif
  #ifdef __Pyx_Generator_USED
  PyTypeObject *__pyx_GeneratorType;
  #endif
  #ifdef __Pyx_IterableCoroutine_USED
  PyTypeObject *__pyx_IterableCoroutineType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineAwaitType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineType;
  #endif
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  PyTypeObject *__pyx_ptype_7cpython_4bool_bool;
  PyTypeObject *__pyx_ptype_7cpython_7complex_complex;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__CallState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ChannelState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Channel;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallHandle;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Operation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallDetails;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_Server;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__Tag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__AioState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__AioCall;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioChannel;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_RPCState;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_AioServer;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc_CensusContext;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  PyObject *__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  PyObject *__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  PyObject *__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  PyObject *__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  PyObject *__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__CallState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Channel;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_Server;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__AioState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  PyTypeObject *__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
  grpc_status_code __pyx_k__2;
  PyObject *__pyx_k__10;
  PyObject *__pyx_k__11;
  PyObject *__pyx_slice[1];
  PyObject *__pyx_tuple[19];
  PyObject *__pyx_codeobj_tab[389];
  PyObject *__pyx_string_tab[1282];
  PyObject *__pyx_float_1_0;
  PyObject *__pyx_int_0;
  PyObject *__pyx_int_1;
  PyObject *__pyx_int_2;
  PyObject *__pyx_int_5;
  PyObject *__pyx_int_10;
  PyObject *__pyx_int_1000;
  PyObject *__pyx_int_1500;
  PyObject *__pyx_int_118587260;
  PyObject *__pyx_int_171381981;
  PyObject *__pyx_int_171651213;
  PyObject *__pyx_int_222419149;
  PyObject *__pyx_int_228825662;
  PyObject *__pyx_int_238750788;
/* #### Code section: module_state_contents ### */
/* CachedMethodType.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API
PyObject *__Pyx_CachedMethodType;
#endif

/* IterNextPlain.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
PyObject *__Pyx_GetBuiltinNext_LimitedAPI_cache;
#endif

/* Coro_CheckExact.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API
PyObject *__Pyx_CachedCoroType;
#endif


#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[8];
int __pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[8];
int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[8];
int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[8];
int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
#endif

#if CYTHON_USE_FREELISTS
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[8];
int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
#endif
/* CodeObjectCache.module_state_decls */
struct __Pyx_CodeObjectCache __pyx_code_cache;

/* AsyncGenerator.module_state_decls */
PyTypeObject *__pyx__PyAsyncGenWrappedValueType;
PyTypeObject *__pyx__PyAsyncGenASendType;
PyTypeObject *__pyx__PyAsyncGenAThrowType;
PyTypeObject *__pyx_AsyncGenType;
#if CYTHON_USE_FREELISTS
struct __pyx__PyAsyncGenWrappedValue *__Pyx_ag_value_freelist[_PyAsyncGen_MAXFREELIST];
int __Pyx_ag_value_freelist_free;
struct __pyx_PyAsyncGenASend *__Pyx_ag_asend_freelist[_PyAsyncGen_MAXFREELIST];
int __Pyx_ag_asend_freelist_free;
#endif

/* #### Code section: module_state_end ### */
} __pyx_mstatetype;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))

#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
#else
static __pyx_mstatetype __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: constant_name_defines ### */
#define __pyx_kp_b_ __pyx_string_tab[0]
#define __pyx_kp_u_ __pyx_string_tab[1]
#define __pyx_kp_u_0 __pyx_string_tab[2]
#define __pyx_kp_u_1 __pyx_string_tab[3]
#define __pyx_n_u_ALTSChannelCredentials __pyx_string_tab[4]
#define __pyx_n_u_ALTSChannelCredentials___reduce __pyx_string_tab[5]
#define __pyx_n_u_ALTSChannelCredentials___setstat __pyx_string_tab[6]
#define __pyx_n_u_AWAIT_THREADS_TIMEOUT_SECONDS __pyx_string_tab[7]
#define __pyx_n_u_AbortError __pyx_string_tab[8]
#define __pyx_kp_u_Abort_already_called __pyx_string_tab[9]
#define __pyx_kp_u_Abort_error_has_been_replaced __pyx_string_tab[10]
#define __pyx_kp_u_Abort_error_unexpectedly_suppres __pyx_string_tab[11]
#define __pyx_kp_u_Aborting_method_s_due_to_server __pyx_string_tab[12]
#define __pyx_n_u_ActiveThreadCount __pyx_string_tab[13]
#define __pyx_n_u_ActiveThreadCount___init __pyx_string_tab[14]
#define __pyx_n_u_ActiveThreadCount_await_zero_th __pyx_string_tab[15]
#define __pyx_n_u_ActiveThreadCount_decrement __pyx_string_tab[16]
#define __pyx_n_u_ActiveThreadCount_increment __pyx_string_tab[17]
#define __pyx_n_u_AioCall __pyx_string_tab[18]
#define __pyx_n_u_AioCall___reduce_cython __pyx_string_tab[19]
#define __pyx_n_u_AioCall___setstate_cython __pyx_string_tab[20]
#define __pyx_n_u_AioCall__handle_status_once_rec __pyx_string_tab[21]
#define __pyx_n_u_AioCall__repr __pyx_string_tab[22]
#define __pyx_n_u_AioCall_add_done_callback __pyx_string_tab[23]
#define __pyx_n_u_AioCall_cancel __pyx_string_tab[24]
#define __pyx_n_u_AioCall_cancelled __pyx_string_tab[25]
#define __pyx_n_u_AioCall_done __pyx_string_tab[26]
#define __pyx_n_u_AioCall_initial_metadata __pyx_string_tab[27]
#define __pyx_n_u_AioCall_initiate_stream_stream __pyx_string_tab[28]
#define __pyx_n_u_AioCall_initiate_unary_stream __pyx_string_tab[29]
#define __pyx_n_u_AioCall_is_locally_cancelled __pyx_string_tab[30]
#define __pyx_n_u_AioCall_is_ok __pyx_string_tab[31]
#define __pyx_n_u_AioCall_receive_serialized_mess __pyx_string_tab[32]
#define __pyx_n_u_AioCall_send_receive_close __pyx_string_tab[33]
#define __pyx_n_u_AioCall_send_serialized_message __pyx_string_tab[34]
#define __pyx_n_u_AioCall_set_internal_error __pyx_string_tab[35]
#define __pyx_n_u_AioCall_status __pyx_string_tab[36]
#define __pyx_n_u_AioCall_stream_unary __pyx_string_tab[37]
#define __pyx_n_u_AioCall_time_remaining __pyx_string_tab[38]
#define __pyx_n_u_AioCall_unary_unary __pyx_string_tab[39]
#define __pyx_n_u_AioChannel __pyx_string_tab[40]
#define __pyx_n_u_AioChannel___reduce_cython __pyx_string_tab[41]
#define __pyx_n_u_AioChannel___setstate_cython __pyx_string_tab[42]
#define __pyx_n_u_AioChannel_call __pyx_string_tab[43]
#define __pyx_n_u_AioChannel_check_connectivity_st __pyx_string_tab[44]
#define __pyx_n_u_AioChannel_close __pyx_string_tab[45]
#define __pyx_n_u_AioChannel_closed __pyx_string_tab[46]
#define __pyx_n_u_AioChannel_closing __pyx_string_tab[47]
#define __pyx_n_u_AioChannel_watch_connectivity_st __pyx_string_tab[48]
#define __pyx_n_u_AioRpcStatus __pyx_string_tab[49]
#define __pyx_n_u_AioRpcStatus___reduce_cython __pyx_string_tab[50]
#define __pyx_n_u_AioRpcStatus___setstate_cython __pyx_string_tab[51]
#define __pyx_n_u_AioRpcStatus_code __pyx_string_tab[52]
#define __pyx_n_u_AioRpcStatus_debug_error_string __pyx_string_tab[53]
#define __pyx_n_u_AioRpcStatus_details __pyx_string_tab[54]
#define __pyx_n_u_AioRpcStatus_trailing_metadata __pyx_string_tab[55]
#define __pyx_n_u_AioServer __pyx_string_tab[56]
#define __pyx_n_u_AioServer___reduce_cython __pyx_string_tab[57]
#define __pyx_n_u_AioServer___setstate_cython __pyx_string_tab[58]
#define __pyx_n_u_AioServer__request_call __pyx_string_tab[59]
#define __pyx_n_u_AioServer__server_main_loop __pyx_string_tab[60]
#define __pyx_n_u_AioServer__serving_task_crash_ha __pyx_string_tab[61]
#define __pyx_n_u_AioServer__start_shutting_down __pyx_string_tab[62]
#define __pyx_n_u_AioServer_add_generic_rpc_handle __pyx_string_tab[63]
#define __pyx_n_u_AioServer_add_insecure_port __pyx_string_tab[64]
#define __pyx_n_u_AioServer_add_secure_port __pyx_string_tab[65]
#define __pyx_n_u_AioServer_is_running __pyx_string_tab[66]
#define __pyx_n_u_AioServer_shutdown __pyx_string_tab[67]
#define __pyx_n_u_AioServer_start __pyx_string_tab[68]
#define __pyx_n_u_AioServer_wait_for_termination __pyx_string_tab[69]
#define __pyx_n_u_AioState __pyx_string_tab[70]
#define __pyx_n_u_AioState___reduce_cython __pyx_string_tab[71]
#define __pyx_n_u_AioState___setstate_cython __pyx_string_tab[72]
#define __pyx_n_u_AssertionError __pyx_string_tab[73]
#define __pyx_n_u_AsyncIOEngine __pyx_string_tab[74]
#define __pyx_n_u_AttributeError __pyx_string_tab[75]
#define __pyx_n_u_BaseCompletionQueue __pyx_string_tab[76]
#define __pyx_n_u_BaseCompletionQueue___reduce_cyt __pyx_string_tab[77]
#define __pyx_n_u_BaseCompletionQueue___setstate_c __pyx_string_tab[78]
#define __pyx_n_u_BaseError __pyx_string_tab[79]
#define __pyx_n_u_BaseEvent __pyx_string_tab[80]
#define __pyx_n_u_BatchOperationEvent __pyx_string_tab[81]
#define __pyx_n_u_BatchOperationEvent___reduce_cyt __pyx_string_tab[82]
#define __pyx_n_u_BatchOperationEvent___setstate_c __pyx_string_tab[83]
#define __pyx_n_u_BatchOperationTag __pyx_string_tab[84]
#define __pyx_n_u_BatchOperationTag___reduce_cyth __pyx_string_tab[85]
#define __pyx_n_u_BatchOperationTag___setstate_cy __pyx_string_tab[86]
#define __pyx_kp_u_Binary_metadata_key __pyx_string_tab[87]
#define __pyx_n_u_BoundEventLoop __pyx_string_tab[88]
#define __pyx_n_u_BoundEventLoop___reduce_cython __pyx_string_tab[89]
#define __pyx_n_u_BoundEventLoop___setstate_cytho __pyx_string_tab[90]
#define __pyx_n_u_BoundEventLoop_close __pyx_string_tab[91]
#define __pyx_n_u_COMPRESSION_METADATA_STRING_MAP __pyx_string_tab[92]
#define __pyx_n_u_CUSTOM_IO_MANAGER __pyx_string_tab[93]
#define __pyx_n_u_CYGRPC_STATUS_CODE_TO_STATUS_COD __pyx_string_tab[94]
#define __pyx_n_u_Call __pyx_string_tab[95]
#define __pyx_n_u_CallCredentials __pyx_string_tab[96]
#define __pyx_n_u_CallCredentials___reduce_cython __pyx_string_tab[97]
#define __pyx_n_u_CallCredentials___setstate_cytho __pyx_string_tab[98]
#define __pyx_n_u_CallDetails __pyx_string_tab[99]
#define __pyx_n_u_CallDetails___reduce_cython __pyx_string_tab[100]
#define __pyx_n_u_CallDetails___setstate_cython __pyx_string_tab[101]
#define __pyx_n_u_CallError __pyx_string_tab[102]
#define __pyx_n_u_CallHandle __pyx_string_tab[103]
#define __pyx_n_u_CallHandle___reduce_cython __pyx_string_tab[104]
#define __pyx_n_u_CallHandle___setstate_cython __pyx_string_tab[105]
#define __pyx_n_u_CallState __pyx_string_tab[106]
#define __pyx_n_u_CallState___reduce_cython __pyx_string_tab[107]
#define __pyx_n_u_CallState___setstate_cython __pyx_string_tab[108]
#define __pyx_n_u_Call___reduce_cython __pyx_string_tab[109]
#define __pyx_n_u_Call___setstate_cython __pyx_string_tab[110]
#define __pyx_n_u_Call__custom_op_on_c_call __pyx_string_tab[111]
#define __pyx_n_u_Call__start_batch __pyx_string_tab[112]
#define __pyx_n_u_Call_cancel __pyx_string_tab[113]
#define __pyx_kp_u_Call_credentials_are_only_valid __pyx_string_tab[114]
#define __pyx_kp_u_Call_credentials_may_not_be_NULL __pyx_string_tab[115]
#define __pyx_n_u_Call_peer __pyx_string_tab[116]
#define __pyx_n_u_Call_set_credentials __pyx_string_tab[117]
#define __pyx_n_u_Call_start_client_batch __pyx_string_tab[118]
#define __pyx_n_u_Call_start_server_batch __pyx_string_tab[119]
#define __pyx_n_u_CallbackFailureHandler __pyx_string_tab[120]
#define __pyx_n_u_CallbackFailureHandler___reduce __pyx_string_tab[121]
#define __pyx_n_u_CallbackFailureHandler___setstat __pyx_string_tab[122]
#define __pyx_n_u_CallbackWrapper __pyx_string_tab[123]
#define __pyx_n_u_CallbackWrapper___reduce_cython __pyx_string_tab[124]
#define __pyx_n_u_CallbackWrapper___setstate_cytho __pyx_string_tab[125]
#define __pyx_n_u_CancelledError __pyx_string_tab[126]
#define __pyx_kp_u_Cannot_invoke_RPC_on_closed_chan __pyx_string_tab[127]
#define __pyx_kp_u_Cannot_invoke_RPC_s __pyx_string_tab[128]
#define __pyx_kp_u_Cannot_monitor_channel_state_s __pyx_string_tab[129]
#define __pyx_n_u_CensusContext __pyx_string_tab[130]
#define __pyx_n_u_CensusContext___reduce_cython __pyx_string_tab[131]
#define __pyx_n_u_CensusContext___setstate_cython __pyx_string_tab[132]
#define __pyx_n_u_Channel __pyx_string_tab[133]
#define __pyx_n_u_ChannelArg __pyx_string_tab[134]
#define __pyx_n_u_ChannelArgKey __pyx_string_tab[135]
#define __pyx_n_u_ChannelArg___reduce_cython __pyx_string_tab[136]
#define __pyx_n_u_ChannelArg___setstate_cython __pyx_string_tab[137]
#define __pyx_n_u_ChannelArgs __pyx_string_tab[138]
#define __pyx_n_u_ChannelArgs___reduce_cython __pyx_string_tab[139]
#define __pyx_n_u_ChannelArgs___setstate_cython __pyx_string_tab[140]
#define __pyx_n_u_ChannelCredentials __pyx_string_tab[141]
#define __pyx_n_u_ChannelCredentials___reduce_cyth __pyx_string_tab[142]
#define __pyx_n_u_ChannelCredentials___setstate_cy __pyx_string_tab[143]
#define __pyx_n_u_ChannelState __pyx_string_tab[144]
#define __pyx_n_u_ChannelState___reduce_cython __pyx_string_tab[145]
#define __pyx_n_u_ChannelState___setstate_cython __pyx_string_tab[146]
#define __pyx_n_u_Channel___reduce_cython __pyx_string_tab[147]
#define __pyx_n_u_Channel___setstate_cython __pyx_string_tab[148]
#define __pyx_n_u_Channel_check_connectivity_state __pyx_string_tab[149]
#define __pyx_n_u_Channel_close __pyx_string_tab[150]
#define __pyx_n_u_Channel_close_on_fork __pyx_string_tab[151]
#define __pyx_n_u_Channel_get_registered_call_hand __pyx_string_tab[152]
#define __pyx_n_u_Channel_integrated_call __pyx_string_tab[153]
#define __pyx_kp_u_Channel_is_closed __pyx_string_tab[154]
#define __pyx_n_u_Channel_next_call_event __pyx_string_tab[155]
#define __pyx_n_u_Channel_segregated_call __pyx_string_tab[156]
#define __pyx_n_u_Channel_target __pyx_string_tab[157]
#define __pyx_n_u_Channel_watch_connectivity_state __pyx_string_tab[158]
#define __pyx_n_u_CompletionQueue __pyx_string_tab[159]
#define __pyx_n_u_CompletionQueue___reduce_cython __pyx_string_tab[160]
#define __pyx_n_u_CompletionQueue___setstate_cytho __pyx_string_tab[161]
#define __pyx_n_u_CompletionQueue__internal_poll __pyx_string_tab[162]
#define __pyx_n_u_CompletionQueue_clear __pyx_string_tab[163]
#define __pyx_n_u_CompletionQueue_poll __pyx_string_tab[164]
#define __pyx_n_u_CompletionQueue_shutdown __pyx_string_tab[165]
#define __pyx_n_u_CompletionType __pyx_string_tab[166]
#define __pyx_n_u_CompositeCallCredentials __pyx_string_tab[167]
#define __pyx_n_u_CompositeCallCredentials___reduc __pyx_string_tab[168]
#define __pyx_n_u_CompositeCallCredentials___setst __pyx_string_tab[169]
#define __pyx_n_u_CompositeChannelCredentials __pyx_string_tab[170]
#define __pyx_n_u_CompositeChannelCredentials___re __pyx_string_tab[171]
#define __pyx_n_u_CompositeChannelCredentials___se __pyx_string_tab[172]
#define __pyx_n_u_CompressionAlgorithm __pyx_string_tab[173]
#define __pyx_n_u_CompressionLevel __pyx_string_tab[174]
#define __pyx_n_u_CompressionOptions __pyx_string_tab[175]
#define __pyx_n_u_CompressionOptions___reduce_cyth __pyx_string_tab[176]
#define __pyx_n_u_CompressionOptions___setstate_cy __pyx_string_tab[177]
#define __pyx_n_u_CompressionOptions_disable_algor __pyx_string_tab[178]
#define __pyx_n_u_CompressionOptions_enable_algori __pyx_string_tab[179]
#define __pyx_n_u_CompressionOptions_is_algorithm __pyx_string_tab[180]
#define __pyx_n_u_CompressionOptions_to_channel_ar __pyx_string_tab[181]
#define __pyx_kp_u_Compression_setting_must_be_spec __pyx_string_tab[182]
#define __pyx_n_u_ComputeEngineChannelCredentials __pyx_string_tab[183]
#define __pyx_n_u_ComputeEngineChannelCredentials_2 __pyx_string_tab[184]
#define __pyx_n_u_ComputeEngineChannelCredentials_3 __pyx_string_tab[185]
#define __pyx_n_u_ConcurrentRpcLimiter __pyx_string_tab[186]
#define __pyx_n_u_ConcurrentRpcLimiter___reduce_c __pyx_string_tab[187]
#define __pyx_n_u_ConcurrentRpcLimiter___setstate __pyx_string_tab[188]
#define __pyx_n_u_ConcurrentRpcLimiter__decrease __pyx_string_tab[189]
#define __pyx_n_u_ConcurrentRpcLimiter_check_befo __pyx_string_tab[190]
#define __pyx_n_u_ConcurrentRpcLimiter_decrease_o __pyx_string_tab[191]
#define __pyx_kp_u_Concurrent_RPC_limit_exceeded __pyx_string_tab[192]
#define __pyx_n_u_Condition __pyx_string_tab[193]
#define __pyx_n_u_ConnectivityEvent __pyx_string_tab[194]
#define __pyx_n_u_ConnectivityEvent___reduce_cytho __pyx_string_tab[195]
#define __pyx_n_u_ConnectivityEvent___setstate_cyt __pyx_string_tab[196]
#define __pyx_n_u_ConnectivityState __pyx_string_tab[197]
#define __pyx_n_u_ConnectivityTag __pyx_string_tab[198]
#define __pyx_n_u_ConnectivityTag___reduce_cython __pyx_string_tab[199]
#define __pyx_n_u_ConnectivityTag___setstate_cyth __pyx_string_tab[200]
#define __pyx_kp_u_Core_should_not_return_GRPC_QUEU __pyx_string_tab[201]
#define __pyx_kp_u_Credentials_couldn_t_have_been_s __pyx_string_tab[202]
#define __pyx_kp_u_Dedicated_exception_class_for_wa __pyx_string_tab[203]
#define __pyx_n_u_DeprecationWarning __pyx_string_tab[204]
#define __pyx_n_u_EMPTY_FLAGS __pyx_string_tab[205]
#define __pyx_n_u_EMPTY_MASK __pyx_string_tab[206]
#define __pyx_n_u_EOF __pyx_string_tab[207]
#define __pyx_n_u_EOF_2 __pyx_string_tab[208]
#define __pyx_n_u_EOF___bool __pyx_string_tab[209]
#define __pyx_n_u_EOF___len __pyx_string_tab[210]
#define __pyx_n_u_EOF___repr __pyx_string_tab[211]
#define __pyx_n_u_EOF___str __pyx_string_tab[212]
#define __pyx_n_u_EOF__repr __pyx_string_tab[213]
#define __pyx_n_u_EX_USAGE __pyx_string_tab[214]
#define __pyx_n_u_Enum __pyx_string_tab[215]
#define __pyx_kp_u_Error_fetching_certificate_confi __pyx_string_tab[216]
#define __pyx_kp_u_Error_fetching_certificate_confi_2 __pyx_string_tab[217]
#define __pyx_kp_u_Error_in_callback_for_method_s __pyx_string_tab[218]
#define __pyx_kp_u_Error_in_grpc_server_request_cal __pyx_string_tab[219]
#define __pyx_kp_u_Error_in_grpc_server_request_reg __pyx_string_tab[220]
#define __pyx_kp_u_Exception_not_handled_by__handle __pyx_string_tab[221]
#define __pyx_n_u_ExecuteBatchError __pyx_string_tab[222]
#define __pyx_kp_u_ExecuteBatchError_raised_in_core __pyx_string_tab[223]
#define __pyx_kp_u_Exiting_child_due_to_raised_exce __pyx_string_tab[224]
#define __pyx_kp_u_Expected_bytes_str_or_unicode_no __pyx_string_tab[225]
#define __pyx_kp_u_Expected_int_bytes_or_behavior_g __pyx_string_tab[226]
#define __pyx_kp_u_Expected_str_not __pyx_string_tab[227]
#define __pyx_kp_u_Expecting_non_ok_status_code __pyx_string_tab[228]
#define __pyx_kp_u_Failed __pyx_string_tab[229]
#define __pyx_kp_u_Failed_grpc_call_start_batch_wit __pyx_string_tab[230]
#define __pyx_kp_u_Failed_sending_error_status_from __pyx_string_tab[231]
#define __pyx_kp_u_Failed_to_get_server_sockets_ple __pyx_string_tab[232]
#define __pyx_kp_u_Failed_to_get_servers_please_ens __pyx_string_tab[233]
#define __pyx_kp_u_Failed_to_get_the_channel_please __pyx_string_tab[234]
#define __pyx_kp_u_Failed_to_get_the_server_please __pyx_string_tab[235]
#define __pyx_kp_u_Failed_to_get_the_socket_please __pyx_string_tab[236]
#define __pyx_kp_u_Failed_to_get_the_subchannel_ple __pyx_string_tab[237]
#define __pyx_kp_u_Failed_to_get_top_channels_pleas __pyx_string_tab[238]
#define __pyx_kp_u_Failed_to_receive_any_message_fr __pyx_string_tab[239]
#define __pyx_kp_u_Failed_to_shutdown_gRPC_Core_aft __pyx_string_tab[240]
#define __pyx_kp_u_Failed_to_shutdown_gRPC_Python_t __pyx_string_tab[241]
#define __pyx_n_u_ForkManagedThread __pyx_string_tab[242]
#define __pyx_n_u_ForkManagedThread___init __pyx_string_tab[243]
#define __pyx_n_u_ForkManagedThread___init___local __pyx_string_tab[244]
#define __pyx_n_u_ForkManagedThread_join __pyx_string_tab[245]
#define __pyx_n_u_ForkManagedThread_setDaemon __pyx_string_tab[246]
#define __pyx_n_u_ForkManagedThread_start __pyx_string_tab[247]
#define __pyx_n_u_ForkState __pyx_string_tab[248]
#define __pyx_n_u_ForkState___init __pyx_string_tab[249]
#define __pyx_n_u_GRPC_ASYNCIO_ENGINE __pyx_string_tab[250]
#define __pyx_n_u_GRPC_COMPRESSION_CHANNEL_DEFAULT __pyx_string_tab[251]
#define __pyx_n_u_GRPC_COMPRESSION_REQUEST_ALGORIT __pyx_string_tab[252]
#define __pyx_n_u_GRPC_ENABLE_FORK_SUPPORT __pyx_string_tab[253]
#define __pyx_n_u_GRPC_ENABLE_FORK_SUPPORT_2 __pyx_string_tab[254]
#define __pyx_n_u_GRPC_PROPAGATE_CANCELLATION __pyx_string_tab[255]
#define __pyx_n_u_GRPC_PROPAGATE_CENSUS_STATS_CONT __pyx_string_tab[256]
#define __pyx_n_u_GRPC_PROPAGATE_CENSUS_TRACING_CO __pyx_string_tab[257]
#define __pyx_n_u_GRPC_PROPAGATE_DEADLINE __pyx_string_tab[258]
#define __pyx_n_u_GRPC_PROPAGATE_DEFAULTS __pyx_string_tab[259]
#define __pyx_n_u_Group __pyx_string_tab[260]
#define __pyx_n_u_GrpcArgWrapper __pyx_string_tab[261]
#define __pyx_n_u_GrpcArgWrapper___reduce_cython __pyx_string_tab[262]
#define __pyx_n_u_GrpcArgWrapper___setstate_cytho __pyx_string_tab[263]
#define __pyx_n_u_GrpcCallWrapper __pyx_string_tab[264]
#define __pyx_kp_u_HandleExceptions_s __pyx_string_tab[265]
#define __pyx_n_u_HandlerCallDetails __pyx_string_tab[266]
#define __pyx_n_u_HandlerCallDetails___reduce_cyt __pyx_string_tab[267]
#define __pyx_n_u_HandlerCallDetails___setstate_c __pyx_string_tab[268]
#define __pyx_n_u_IMMUTABLE_EMPTY_METADATA __pyx_string_tab[269]
#define __pyx_n_u_INTERNAL_CALL_ERROR_MESSAGE_FOR __pyx_string_tab[270]
#define __pyx_n_u_ImportError __pyx_string_tab[271]
#define __pyx_kp_u_Incompatible_checksums_0x_x_vs_0 __pyx_string_tab[272]
#define __pyx_kp_u_Incompatible_checksums_0x_x_vs_0_2 __pyx_string_tab[273]
#define __pyx_n_u_InitialMetadataFlags __pyx_string_tab[274]
#define __pyx_n_u_InsecureChannelCredentials __pyx_string_tab[275]
#define __pyx_n_u_InsecureChannelCredentials___red __pyx_string_tab[276]
#define __pyx_n_u_InsecureChannelCredentials___set __pyx_string_tab[277]
#define __pyx_n_u_IntegratedCall __pyx_string_tab[278]
#define __pyx_n_u_IntegratedCall___reduce_cython __pyx_string_tab[279]
#define __pyx_n_u_IntegratedCall___setstate_cython __pyx_string_tab[280]
#define __pyx_n_u_IntegratedCall_cancel __pyx_string_tab[281]
#define __pyx_n_u_IntegratedCall_operate __pyx_string_tab[282]
#define __pyx_n_u_InternalError __pyx_string_tab[283]
#define __pyx_kp_u_Internal_error_from_Core __pyx_string_tab[284]
#define __pyx_kp_u_Internal_gRPC_call_error_d_Pleas __pyx_string_tab[285]
#define __pyx_kp_u_Invalid_encoding_on_s __pyx_string_tab[286]
#define __pyx_kp_u_Invalid_trailing_metadata_type_e __pyx_string_tab[287]
#define __pyx_n_u_KeyError __pyx_string_tab[288]
#define __pyx_n_u_KeyboardInterrupt __pyx_string_tab[289]
#define __pyx_n_u_LOGGER __pyx_string_tab[290]
#define __pyx_n_u_LatentEventArg __pyx_string_tab[291]
#define __pyx_n_u_LocalChannelCredentials __pyx_string_tab[292]
#define __pyx_n_u_LocalChannelCredentials___reduce __pyx_string_tab[293]
#define __pyx_n_u_LocalChannelCredentials___setsta __pyx_string_tab[294]
#define __pyx_n_u_LocalConnectionType __pyx_string_tab[295]
#define __pyx_kp_u_Locally_aborted __pyx_string_tab[296]
#define __pyx_n_u_Lock __pyx_string_tab[297]
#define __pyx_n_u_MessageReceiver __pyx_string_tab[298]
#define __pyx_n_u_MessageReceiver___anext __pyx_string_tab[299]
#define __pyx_n_u_MessageReceiver___reduce_cython __pyx_string_tab[300]
#define __pyx_n_u_MessageReceiver___setstate_cyth __pyx_string_tab[301]
#define __pyx_n_u_MessageReceiver__async_message __pyx_string_tab[302]
#define __pyx_n_u_MetadataPluginCallCredentials __pyx_string_tab[303]
#define __pyx_n_u_MetadataPluginCallCredentials_2 __pyx_string_tab[304]
#define __pyx_n_u_MetadataPluginCallCredentials_3 __pyx_string_tab[305]
#define __pyx_n_u_Metadatum __pyx_string_tab[306]
#define __pyx_kp_u_Method_not_found __pyx_string_tab[307]
#define __pyx_n_u_NON_OK_CALL_REPRESENTATION __pyx_string_tab[308]
#define __pyx_kp_u_No_custom_hooks_are_implemented __pyx_string_tab[309]
#define __pyx_kp_u_Non_thread_safe_operation __pyx_string_tab[310]
#define __pyx_n_u_None __pyx_string_tab[311]
#define __pyx_kp_u_None __pyx_string_tab[312]
#define __pyx_n_u_NotImplementedError __pyx_string_tab[313]
#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[314]
#define __pyx_n_u_OK_CALL_REPRESENTATION __pyx_string_tab[315]
#define __pyx_n_u_Operation __pyx_string_tab[316]
#define __pyx_n_u_OperationType __pyx_string_tab[317]
#define __pyx_n_u_Operation___reduce_cython __pyx_string_tab[318]
#define __pyx_n_u_Operation___setstate_cython __pyx_string_tab[319]
#define __pyx_n_u_Optional __pyx_string_tab[320]
#define __pyx_kp_u_Optional_int __pyx_string_tab[321]
#define __pyx_n_u_POLLER __pyx_string_tab[322]
#define __pyx_n_u_PickleError __pyx_string_tab[323]
#define __pyx_n_u_PollerCompletionQueue __pyx_string_tab[324]
#define __pyx_n_u_PollerCompletionQueue___reduce_c __pyx_string_tab[325]
#define __pyx_n_u_PollerCompletionQueue___setstate __pyx_string_tab[326]
#define __pyx_n_u_PollerCompletionQueue__handle_ev __pyx_string_tab[327]
#define __pyx_n_u_PollerCompletionQueue__poll_wrap __pyx_string_tab[328]
#define __pyx_n_u_PollerCompletionQueue_bind_loop __pyx_string_tab[329]
#define __pyx_n_u_PropagationConstants __pyx_string_tab[330]
#define __pyx_n_u_Pyx_CFunc_1f6ebd__4grpc_7_cyth __pyx_string_tab[331]
#define __pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr __pyx_string_tab[332]
#define __pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr_2 __pyx_string_tab[333]
#define __pyx_n_u_Pyx_CFunc_7f0cf6__4grpc_7_cyth __pyx_string_tab[334]
#define __pyx_n_u_Queue __pyx_string_tab[335]
#define __pyx_n_u_RLock __pyx_string_tab[336]
#define __pyx_n_u_RPCState __pyx_string_tab[337]
#define __pyx_n_u_RPCState___reduce_cython __pyx_string_tab[338]
#define __pyx_n_u_RPCState___setstate_cython __pyx_string_tab[339]
#define __pyx_kp_u_RPC_already_finished __pyx_string_tab[340]
#define __pyx_kp_u_RPC_cancelled_for_servicer_metho __pyx_string_tab[341]
#define __pyx_kp_u_RPC_cancelled_for_unknown_reason __pyx_string_tab[342]
#define __pyx_kp_u_Raised_if_the_server_is_stopped __pyx_string_tab[343]
#define __pyx_kp_u_Raised_upon_unexpected_errors_in __pyx_string_tab[344]
#define __pyx_kp_u_Raised_when_calling_abort_in_ser __pyx_string_tab[345]
#define __pyx_kp_u_Raised_when_execute_batch_return __pyx_string_tab[346]
#define __pyx_kp_u_Raised_when_the_usage_of_API_by __pyx_string_tab[347]
#define __pyx_n_u_ReceiveCloseOnServerOperation __pyx_string_tab[348]
#define __pyx_n_u_ReceiveCloseOnServerOperation_2 __pyx_string_tab[349]
#define __pyx_n_u_ReceiveCloseOnServerOperation_3 __pyx_string_tab[350]
#define __pyx_n_u_ReceiveCloseOnServerOperation_ca __pyx_string_tab[351]
#define __pyx_n_u_ReceiveCloseOnServerOperation_ty __pyx_string_tab[352]
#define __pyx_n_u_ReceiveInitialMetadataOperation __pyx_string_tab[353]
#define __pyx_n_u_ReceiveInitialMetadataOperation_2 __pyx_string_tab[354]
#define __pyx_n_u_ReceiveInitialMetadataOperation_3 __pyx_string_tab[355]
#define __pyx_n_u_ReceiveInitialMetadataOperation_4 __pyx_string_tab[356]
#define __pyx_n_u_ReceiveInitialMetadataOperation_5 __pyx_string_tab[357]
#define __pyx_n_u_ReceiveMessageOperation __pyx_string_tab[358]
#define __pyx_n_u_ReceiveMessageOperation___reduce __pyx_string_tab[359]
#define __pyx_n_u_ReceiveMessageOperation___setsta __pyx_string_tab[360]
#define __pyx_n_u_ReceiveMessageOperation_message __pyx_string_tab[361]
#define __pyx_n_u_ReceiveMessageOperation_type __pyx_string_tab[362]
#define __pyx_n_u_ReceiveStatusOnClientOperation __pyx_string_tab[363]
#define __pyx_n_u_ReceiveStatusOnClientOperation_2 __pyx_string_tab[364]
#define __pyx_n_u_ReceiveStatusOnClientOperation_3 __pyx_string_tab[365]
#define __pyx_n_u_ReceiveStatusOnClientOperation_c __pyx_string_tab[366]
#define __pyx_n_u_ReceiveStatusOnClientOperation_d __pyx_string_tab[367]
#define __pyx_n_u_ReceiveStatusOnClientOperation_e __pyx_string_tab[368]
#define __pyx_n_u_ReceiveStatusOnClientOperation_t __pyx_string_tab[369]
#define __pyx_n_u_ReceiveStatusOnClientOperation_t_2 __pyx_string_tab[370]
#define __pyx_n_u_RegisteredMethod __pyx_string_tab[371]
#define __pyx_n_u_RegisteredMethod___reduce_cython __pyx_string_tab[372]
#define __pyx_n_u_RegisteredMethod___setstate_cyth __pyx_string_tab[373]
#define __pyx_n_u_RequestCallError __pyx_string_tab[374]
#define __pyx_n_u_RequestCallEvent __pyx_string_tab[375]
#define __pyx_n_u_RequestCallEvent___reduce_cython __pyx_string_tab[376]
#define __pyx_n_u_RequestCallEvent___setstate_cyth __pyx_string_tab[377]
#define __pyx_n_u_RequestCallTag __pyx_string_tab[378]
#define __pyx_n_u_RequestCallTag___reduce_cython __pyx_string_tab[379]
#define __pyx_n_u_RequestCallTag___setstate_cytho __pyx_string_tab[380]
#define __pyx_n_u_RuntimeError __pyx_string_tab[381]
#define __pyx_n_u_SERVICES_TO_EXCLUDE __pyx_string_tab[382]
#define __pyx_n_u_SSLChannelCredentials __pyx_string_tab[383]
#define __pyx_n_u_SSLChannelCredentials___reduce_c __pyx_string_tab[384]
#define __pyx_n_u_SSLChannelCredentials___setstate __pyx_string_tab[385]
#define __pyx_n_u_SSLSessionCacheLRU __pyx_string_tab[386]
#define __pyx_n_u_SSLSessionCacheLRU___reduce_cyth __pyx_string_tab[387]
#define __pyx_n_u_SSLSessionCacheLRU___setstate_cy __pyx_string_tab[388]
#define __pyx_n_u_SegregatedCall __pyx_string_tab[389]
#define __pyx_n_u_SegregatedCall___reduce_cython __pyx_string_tab[390]
#define __pyx_n_u_SegregatedCall___setstate_cython __pyx_string_tab[391]
#define __pyx_n_u_SegregatedCall_cancel __pyx_string_tab[392]
#define __pyx_n_u_SegregatedCall_next_event __pyx_string_tab[393]
#define __pyx_n_u_SegregatedCall_operate __pyx_string_tab[394]
#define __pyx_n_u_SendCloseFromClientOperation __pyx_string_tab[395]
#define __pyx_n_u_SendCloseFromClientOperation___r __pyx_string_tab[396]
#define __pyx_n_u_SendCloseFromClientOperation___s __pyx_string_tab[397]
#define __pyx_n_u_SendCloseFromClientOperation_typ __pyx_string_tab[398]
#define __pyx_n_u_SendInitialMetadataOperation __pyx_string_tab[399]
#define __pyx_n_u_SendInitialMetadataOperation___r __pyx_string_tab[400]
#define __pyx_n_u_SendInitialMetadataOperation___s __pyx_string_tab[401]
#define __pyx_n_u_SendInitialMetadataOperation_typ __pyx_string_tab[402]
#define __pyx_n_u_SendMessageOperation __pyx_string_tab[403]
#define __pyx_n_u_SendMessageOperation___reduce_cy __pyx_string_tab[404]
#define __pyx_n_u_SendMessageOperation___setstate __pyx_string_tab[405]
#define __pyx_n_u_SendMessageOperation_type __pyx_string_tab[406]
#define __pyx_n_u_SendStatusFromServerOperation __pyx_string_tab[407]
#define __pyx_n_u_SendStatusFromServerOperation_2 __pyx_string_tab[408]
#define __pyx_n_u_SendStatusFromServerOperation_3 __pyx_string_tab[409]
#define __pyx_n_u_SendStatusFromServerOperation_ty __pyx_string_tab[410]
#define __pyx_kp_u_Send_initial_metadata_failed_alr __pyx_string_tab[411]
#define __pyx_n_u_Server __pyx_string_tab[412]
#define __pyx_n_u_ServerCertificateConfig __pyx_string_tab[413]
#define __pyx_n_u_ServerCertificateConfig___reduce __pyx_string_tab[414]
#define __pyx_n_u_ServerCertificateConfig___setsta __pyx_string_tab[415]
#define __pyx_n_u_ServerCertificateConfiguration __pyx_string_tab[416]
#define __pyx_n_u_ServerCredentials __pyx_string_tab[417]
#define __pyx_n_u_ServerCredentials___reduce_cytho __pyx_string_tab[418]
#define __pyx_n_u_ServerCredentials___setstate_cyt __pyx_string_tab[419]
#define __pyx_n_u_ServerShutdownEvent __pyx_string_tab[420]
#define __pyx_n_u_ServerShutdownEvent___reduce_cyt __pyx_string_tab[421]
#define __pyx_n_u_ServerShutdownEvent___setstate_c __pyx_string_tab[422]
#define __pyx_n_u_ServerShutdownTag __pyx_string_tab[423]
#define __pyx_n_u_ServerShutdownTag___reduce_cyth __pyx_string_tab[424]
#define __pyx_n_u_ServerShutdownTag___setstate_cy __pyx_string_tab[425]
#define __pyx_n_u_ServerStoppedError __pyx_string_tab[426]
#define __pyx_n_u_Server___reduce_cython __pyx_string_tab[427]
#define __pyx_n_u_Server___setstate_cython __pyx_string_tab[428]
#define __pyx_n_u_Server_add_http2_port __pyx_string_tab[429]
#define __pyx_kp_u_Server_already_stopped __pyx_string_tab[430]
#define __pyx_n_u_Server_cancel_all_calls __pyx_string_tab[431]
#define __pyx_n_u_Server_destroy __pyx_string_tab[432]
#define __pyx_kp_u_Server_not_in_ready_state __pyx_string_tab[433]
#define __pyx_n_u_Server_register_completion_queue __pyx_string_tab[434]
#define __pyx_n_u_Server_register_method __pyx_string_tab[435]
#define __pyx_n_u_Server_request_call __pyx_string_tab[436]
#define __pyx_n_u_Server_request_registered_call __pyx_string_tab[437]
#define __pyx_n_u_Server_shutdown __pyx_string_tab[438]
#define __pyx_kp_u_Server_shutdown_failed_no_comple __pyx_string_tab[439]
#define __pyx_n_u_Server_start __pyx_string_tab[440]
#define __pyx_n_u_ServicerContext __pyx_string_tab[441]
#define __pyx_n_u_ServicerContext___reduce_cython __pyx_string_tab[442]
#define __pyx_n_u_ServicerContext___setstate_cyth __pyx_string_tab[443]
#define __pyx_n_u_ServicerContext_abort __pyx_string_tab[444]
#define __pyx_n_u_ServicerContext_abort_with_stat __pyx_string_tab[445]
#define __pyx_n_u_ServicerContext_add_done_callba __pyx_string_tab[446]
#define __pyx_n_u_ServicerContext_auth_context __pyx_string_tab[447]
#define __pyx_n_u_ServicerContext_cancelled __pyx_string_tab[448]
#define __pyx_n_u_ServicerContext_code __pyx_string_tab[449]
#define __pyx_n_u_ServicerContext_details __pyx_string_tab[450]
#define __pyx_n_u_ServicerContext_disable_next_me __pyx_string_tab[451]
#define __pyx_n_u_ServicerContext_done __pyx_string_tab[452]
#define __pyx_n_u_ServicerContext_invocation_meta __pyx_string_tab[453]
#define __pyx_n_u_ServicerContext_peer __pyx_string_tab[454]
#define __pyx_n_u_ServicerContext_peer_identities __pyx_string_tab[455]
#define __pyx_n_u_ServicerContext_peer_identity_k __pyx_string_tab[456]
#define __pyx_n_u_ServicerContext_read __pyx_string_tab[457]
#define __pyx_n_u_ServicerContext_send_initial_me __pyx_string_tab[458]
#define __pyx_n_u_ServicerContext_set_code __pyx_string_tab[459]
#define __pyx_n_u_ServicerContext_set_compression __pyx_string_tab[460]
#define __pyx_n_u_ServicerContext_set_details __pyx_string_tab[461]
#define __pyx_n_u_ServicerContext_set_trailing_me __pyx_string_tab[462]
#define __pyx_n_u_ServicerContext_time_remaining __pyx_string_tab[463]
#define __pyx_n_u_ServicerContext_trailing_metada __pyx_string_tab[464]
#define __pyx_n_u_ServicerContext_write __pyx_string_tab[465]
#define __pyx_n_u_SslPemKeyCertPair __pyx_string_tab[466]
#define __pyx_n_u_SslPemKeyCertPair___reduce_cytho __pyx_string_tab[467]
#define __pyx_n_u_SslPemKeyCertPair___setstate_cyt __pyx_string_tab[468]
#define __pyx_n_u_StatusCode __pyx_string_tab[469]
#define __pyx_n_u_StopAsyncIteration __pyx_string_tab[470]
#define __pyx_n_u_SyncServicerContext __pyx_string_tab[471]
#define __pyx_n_u_SyncServicerContext___reduce_cy __pyx_string_tab[472]
#define __pyx_n_u_SyncServicerContext___setstate __pyx_string_tab[473]
#define __pyx_n_u_SyncServicerContext_abort __pyx_string_tab[474]
#define __pyx_n_u_SyncServicerContext_add_callbac __pyx_string_tab[475]
#define __pyx_n_u_SyncServicerContext_auth_contex __pyx_string_tab[476]
#define __pyx_n_u_SyncServicerContext_disable_nex __pyx_string_tab[477]
#define __pyx_n_u_SyncServicerContext_invocation __pyx_string_tab[478]
#define __pyx_n_u_SyncServicerContext_peer __pyx_string_tab[479]
#define __pyx_n_u_SyncServicerContext_peer_identi __pyx_string_tab[480]
#define __pyx_n_u_SyncServicerContext_peer_identi_2 __pyx_string_tab[481]
#define __pyx_n_u_SyncServicerContext_send_initia __pyx_string_tab[482]
#define __pyx_n_u_SyncServicerContext_set_code __pyx_string_tab[483]
#define __pyx_n_u_SyncServicerContext_set_compres __pyx_string_tab[484]
#define __pyx_n_u_SyncServicerContext_set_details __pyx_string_tab[485]
#define __pyx_n_u_SyncServicerContext_set_trailin __pyx_string_tab[486]
#define __pyx_n_u_SyncServicerContext_time_remain __pyx_string_tab[487]
#define __pyx_n_u_SystemExit __pyx_string_tab[488]
#define __pyx_n_u_TRUE __pyx_string_tab[489]
#define __pyx_n_u_TRUE_VALUES __pyx_string_tab[490]
#define __pyx_n_u_TYPE_METADATA_STRING __pyx_string_tab[491]
#define __pyx_n_u_Tag __pyx_string_tab[492]
#define __pyx_n_u_Tag___reduce_cython __pyx_string_tab[493]
#define __pyx_n_u_Tag___setstate_cython __pyx_string_tab[494]
#define __pyx_kp_u_The_base_class_for_exceptions_ge __pyx_string_tab[495]
#define __pyx_n_u_Thread __pyx_string_tab[496]
#define __pyx_kp_u_Timed_out __pyx_string_tab[497]
#define __pyx_kp_u_Timed_out_waiting_for_C_core_cle __pyx_string_tab[498]
#define __pyx_n_u_TimeoutError __pyx_string_tab[499]
#define __pyx_n_u_True __pyx_string_tab[500]
#define __pyx_kp_u_Tuple_Tuple_str_Union_str_bytes __pyx_string_tab[501]
#define __pyx_n_u_TypeError __pyx_string_tab[502]
#define __pyx_n_u_UNKNOWN_CANCELLATION_DETAILS __pyx_string_tab[503]
#define __pyx_kp_u_Unexpected __pyx_string_tab[504]
#define __pyx_kp_u_Unexpected_2 __pyx_string_tab[505]
#define __pyx_n_u_UnicodeDecodeError __pyx_string_tab[506]
#define __pyx_n_u_Unknown __pyx_string_tab[507]
#define __pyx_kp_u_Unsupported_engine_type_s __pyx_string_tab[508]
#define __pyx_n_u_UsageError __pyx_string_tab[509]
#define __pyx_kp_u_Using_s_as_I_O_engine __pyx_string_tab[510]
#define __pyx_n_u_ValueError __pyx_string_tab[511]
#define __pyx_n_u_WatchConnectivityFailed __pyx_string_tab[512]
#define __pyx_n_u_WriteFlag __pyx_string_tab[513]
#define __pyx_n_u_XDSChannelCredentials __pyx_string_tab[514]
#define __pyx_n_u_XDSChannelCredentials___reduce_c __pyx_string_tab[515]
#define __pyx_n_u_XDSChannelCredentials___setstate __pyx_string_tab[516]
#define __pyx_n_u_YES __pyx_string_tab[517]
#define __pyx_n_u_Yes __pyx_string_tab[518]
#define __pyx_kp_u__12 __pyx_string_tab[519]
#define __pyx_kp_u__13 __pyx_string_tab[520]
#define __pyx_kp_u__3 __pyx_string_tab[521]
#define __pyx_kp_u__4 __pyx_string_tab[522]
#define __pyx_n_u__5 __pyx_string_tab[523]
#define __pyx_kp_u__6 __pyx_string_tab[524]
#define __pyx_kp_u__7 __pyx_string_tab[525]
#define __pyx_kp_u__8 __pyx_string_tab[526]
#define __pyx_kp_u__9 __pyx_string_tab[527]
#define __pyx_n_u_abort __pyx_string_tab[528]
#define __pyx_n_u_abort_with_status __pyx_string_tab[529]
#define __pyx_n_u_aborted __pyx_string_tab[530]
#define __pyx_n_u_active_thread_count __pyx_string_tab[531]
#define __pyx_n_u_actual_code __pyx_string_tab[532]
#define __pyx_n_u_add __pyx_string_tab[533]
#define __pyx_n_u_add_callback __pyx_string_tab[534]
#define __pyx_n_u_add_callback_handler_locals_han __pyx_string_tab[535]
#define __pyx_n_u_add_done_callback __pyx_string_tab[536]
#define __pyx_n_u_add_generic_rpc_handlers __pyx_string_tab[537]
#define __pyx_n_u_add_http2_port __pyx_string_tab[538]
#define __pyx_n_u_add_insecure_port __pyx_string_tab[539]
#define __pyx_kp_u_add_note __pyx_string_tab[540]
#define __pyx_n_u_add_reader __pyx_string_tab[541]
#define __pyx_n_u_add_secure_port __pyx_string_tab[542]
#define __pyx_n_u_address __pyx_string_tab[543]
#define __pyx_n_u_address_c_string __pyx_string_tab[544]
#define __pyx_n_u_aenter __pyx_string_tab[545]
#define __pyx_n_u_aexit __pyx_string_tab[546]
#define __pyx_n_u_after_in_child __pyx_string_tab[547]
#define __pyx_n_u_after_in_parent __pyx_string_tab[548]
#define __pyx_n_u_agen __pyx_string_tab[549]
#define __pyx_n_u_aiter __pyx_string_tab[550]
#define __pyx_n_u_algorithm __pyx_string_tab[551]
#define __pyx_n_u_already_accepted __pyx_string_tab[552]
#define __pyx_n_u_already_exists __pyx_string_tab[553]
#define __pyx_n_u_already_finished __pyx_string_tab[554]
#define __pyx_n_u_already_invoked __pyx_string_tab[555]
#define __pyx_kp_u_and_max_results __pyx_string_tab[556]
#define __pyx_kp_u_and_start_socket_id __pyx_string_tab[557]
#define __pyx_n_u_anext __pyx_string_tab[558]
#define __pyx_n_u_append __pyx_string_tab[559]
#define __pyx_n_u_apply __pyx_string_tab[560]
#define __pyx_n_u_args __pyx_string_tab[561]
#define __pyx_n_u_arguments __pyx_string_tab[562]
#define __pyx_n_u_ascii __pyx_string_tab[563]
#define __pyx_n_u_async_callback_func __pyx_string_tab[564]
#define __pyx_n_u_async_generator_to_generator __pyx_string_tab[565]
#define __pyx_n_u_async_message_receiver __pyx_string_tab[566]
#define __pyx_n_u_async_response_generator __pyx_string_tab[567]
#define __pyx_n_u_asyncio __pyx_string_tab[568]
#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[569]
#define __pyx_n_u_atexit __pyx_string_tab[570]
#define __pyx_n_u_auth_context __pyx_string_tab[571]
#define __pyx_n_u_await __pyx_string_tab[572]
#define __pyx_n_u_await_zero_threads __pyx_string_tab[573]
#define __pyx_n_u_backup_queue __pyx_string_tab[574]
#define __pyx_n_u_batch_error __pyx_string_tab[575]
#define __pyx_n_u_batch_operation_tag __pyx_string_tab[576]
#define __pyx_n_u_batch_operations __pyx_string_tab[577]
#define __pyx_n_u_before __pyx_string_tab[578]
#define __pyx_kp_b_bin __pyx_string_tab[579]
#define __pyx_n_u_bind_loop __pyx_string_tab[580]
#define __pyx_n_u_block_if_fork_in_progress __pyx_string_tab[581]
#define __pyx_n_u_bool __pyx_string_tab[582]
#define __pyx_n_u_buffer_hint __pyx_string_tab[583]
#define __pyx_n_u_build_census_context __pyx_string_tab[584]
#define __pyx_n_u_bytes_ctx __pyx_string_tab[585]
#define __pyx_n_u_c_call_credentials __pyx_string_tab[586]
#define __pyx_n_u_c_call_error __pyx_string_tab[587]
#define __pyx_n_u_c_cert_config __pyx_string_tab[588]
#define __pyx_n_u_c_deadline __pyx_string_tab[589]
#define __pyx_n_u_c_details __pyx_string_tab[590]
#define __pyx_n_u_c_error_details __pyx_string_tab[591]
#define __pyx_n_u_c_event __pyx_string_tab[592]
#define __pyx_n_u_c_key __pyx_string_tab[593]
#define __pyx_n_u_c_options __pyx_string_tab[594]
#define __pyx_n_u_c_peer __pyx_string_tab[595]
#define __pyx_n_u_c_pem_root_certs __pyx_string_tab[596]
#define __pyx_n_u_c_returned_str __pyx_string_tab[597]
#define __pyx_n_u_c_target __pyx_string_tab[598]
#define __pyx_n_u_call __pyx_string_tab[599]
#define __pyx_n_u_call_credentials __pyx_string_tab[600]
#define __pyx_n_u_call_credentialses __pyx_string_tab[601]
#define __pyx_n_u_call_creds __pyx_string_tab[602]
#define __pyx_n_u_call_details __pyx_string_tab[603]
#define __pyx_n_u_call_error __pyx_string_tab[604]
#define __pyx_n_u_call_handle __pyx_string_tab[605]
#define __pyx_n_u_call_queue __pyx_string_tab[606]
#define __pyx_n_u_call_soon_threadsafe __pyx_string_tab[607]
#define __pyx_n_u_call_state __pyx_string_tab[608]
#define __pyx_n_u_callback __pyx_string_tab[609]
#define __pyx_n_u_callback_func __pyx_string_tab[610]
#define __pyx_n_u_callback_wrapper __pyx_string_tab[611]
#define __pyx_n_u_cancel __pyx_string_tab[612]
#define __pyx_n_u_cancel_all_calls __pyx_string_tab[613]
#define __pyx_n_u_cancelled __pyx_string_tab[614]
#define __pyx_kp_u_cannot_register_completion_queue __pyx_string_tab[615]
#define __pyx_n_u_capacity __pyx_string_tab[616]
#define __pyx_n_u_capsule __pyx_string_tab[617]
#define __pyx_n_u_capsule_ptr __pyx_string_tab[618]
#define __pyx_n_u_catch_warnings __pyx_string_tab[619]
#define __pyx_n_u_cb __pyx_string_tab[620]
#define __pyx_n_u_cb_func __pyx_string_tab[621]
#define __pyx_n_u_census_ctx __pyx_string_tab[622]
#define __pyx_n_u_cert_config __pyx_string_tab[623]
#define __pyx_n_u_cert_config_fetcher __pyx_string_tab[624]
#define __pyx_kp_u_cert_config_fetcher_must_be_call __pyx_string_tab[625]
#define __pyx_n_u_certificate_chain __pyx_string_tab[626]
#define __pyx_n_u_certificate_configuration __pyx_string_tab[627]
#define __pyx_n_u_cfunc_to_py __pyx_string_tab[628]
#define __pyx_n_u_channel __pyx_string_tab[629]
#define __pyx_n_u_channel_credentials __pyx_string_tab[630]
#define __pyx_n_u_channel_credentials_alts __pyx_string_tab[631]
#define __pyx_n_u_channel_credentials_compute_engi __pyx_string_tab[632]
#define __pyx_n_u_channel_credentials_insecure __pyx_string_tab[633]
#define __pyx_n_u_channel_credentials_local __pyx_string_tab[634]
#define __pyx_n_u_channel_id __pyx_string_tab[635]
#define __pyx_n_u_channel_state __pyx_string_tab[636]
#define __pyx_n_u_channels __pyx_string_tab[637]
#define __pyx_n_u_channelz_get_channel __pyx_string_tab[638]
#define __pyx_n_u_channelz_get_server __pyx_string_tab[639]
#define __pyx_n_u_channelz_get_server_sockets __pyx_string_tab[640]
#define __pyx_n_u_channelz_get_servers __pyx_string_tab[641]
#define __pyx_n_u_channelz_get_socket __pyx_string_tab[642]
#define __pyx_n_u_channelz_get_subchannel __pyx_string_tab[643]
#define __pyx_n_u_channelz_get_top_channels __pyx_string_tab[644]
#define __pyx_n_u_check_before_request_call __pyx_string_tab[645]
#define __pyx_n_u_check_connectivity_state __pyx_string_tab[646]
#define __pyx_n_u_class __pyx_string_tab[647]
#define __pyx_n_u_class_getitem __pyx_string_tab[648]
#define __pyx_n_u_clear __pyx_string_tab[649]
#define __pyx_n_u_clear_server_call_tracer_factory __pyx_string_tab[650]
#define __pyx_n_u_client_config_in_slice __pyx_string_tab[651]
#define __pyx_n_u_cline_in_traceback __pyx_string_tab[652]
#define __pyx_n_u_close __pyx_string_tab[653]
#define __pyx_n_u_close_on_fork __pyx_string_tab[654]
#define __pyx_n_u_close_on_fork_2 __pyx_string_tab[655]
#define __pyx_n_u_closed __pyx_string_tab[656]
#define __pyx_n_u_closing __pyx_string_tab[657]
#define __pyx_n_u_code __pyx_string_tab[658]
#define __pyx_n_u_codecs __pyx_string_tab[659]
#define __pyx_n_u_collections __pyx_string_tab[660]
#define __pyx_n_u_common __pyx_string_tab[661]
#define __pyx_n_u_completion_type __pyx_string_tab[662]
#define __pyx_n_u_compression __pyx_string_tab[663]
#define __pyx_n_u_compression_algorithm_name __pyx_string_tab[664]
#define __pyx_n_u_concurrency_exceeded __pyx_string_tab[665]
#define __pyx_n_u_condition __pyx_string_tab[666]
#define __pyx_n_u_connecting __pyx_string_tab[667]
#define __pyx_n_u_context __pyx_string_tab[668]
#define __pyx_n_u_context_loop __pyx_string_tab[669]
#define __pyx_n_u_contextvars __pyx_string_tab[670]
#define __pyx_n_u_contextvars_supported __pyx_string_tab[671]
#define __pyx_n_u_continuation __pyx_string_tab[672]
#define __pyx_n_u_copy __pyx_string_tab[673]
#define __pyx_n_u_copy_context __pyx_string_tab[674]
#define __pyx_n_u_core_function_name __pyx_string_tab[675]
#define __pyx_n_u_coro __pyx_string_tab[676]
#define __pyx_n_u_create_client_call_tracer __pyx_string_tab[677]
#define __pyx_n_u_create_future __pyx_string_tab[678]
#define __pyx_n_u_create_server_call_tracer_factor __pyx_string_tab[679]
#define __pyx_n_u_create_task __pyx_string_tab[680]
#define __pyx_n_u_credentials __pyx_string_tab[681]
#define __pyx_n_u_credentials_2 __pyx_string_tab[682]
#define __pyx_kp_u_credentials_roots_pem __pyx_string_tab[683]
#define __pyx_n_u_creds __pyx_string_tab[684]
#define __pyx_n_u_ctx __pyx_string_tab[685]
#define __pyx_n_u_current_thread __pyx_string_tab[686]
#define __pyx_n_u_custom_io_manager __pyx_string_tab[687]
#define __pyx_n_u_custom_op_on_c_call __pyx_string_tab[688]
#define __pyx_kp_u_cygrpc __pyx_string_tab[689]
#define __pyx_n_u_cython_call_credentials __pyx_string_tab[690]
#define __pyx_n_u_daemon __pyx_string_tab[691]
#define __pyx_n_u_daemonic __pyx_string_tab[692]
#define __pyx_n_u_data __pyx_string_tab[693]
#define __pyx_n_u_data_loss __pyx_string_tab[694]
#define __pyx_n_u_deadline __pyx_string_tab[695]
#define __pyx_n_u_deadline_exceeded __pyx_string_tab[696]
#define __pyx_kp_u_dealloc___called_on_running_se __pyx_string_tab[697]
#define __pyx_n_u_debug __pyx_string_tab[698]
#define __pyx_n_u_debug_error_string __pyx_string_tab[699]
#define __pyx_n_u_decode __pyx_string_tab[700]
#define __pyx_n_u_decrease_active_rpcs_count __pyx_string_tab[701]
#define __pyx_n_u_decrease_once_finished __pyx_string_tab[702]
#define __pyx_n_u_decrement __pyx_string_tab[703]
#define __pyx_n_u_default_authority __pyx_string_tab[704]
#define __pyx_n_u_default_vtable __pyx_string_tab[705]
#define __pyx_n_u_deflate __pyx_string_tab[706]
#define __pyx_n_u_destroy __pyx_string_tab[707]
#define __pyx_n_u_details __pyx_string_tab[708]
#define __pyx_n_u_details_bytes __pyx_string_tab[709]
#define __pyx_n_u_dict __pyx_string_tab[710]
#define __pyx_n_u_dict_2 __pyx_string_tab[711]
#define __pyx_kp_u_disable __pyx_string_tab[712]
#define __pyx_n_u_disable_algorithm __pyx_string_tab[713]
#define __pyx_n_u_disable_next_message_compression __pyx_string_tab[714]
#define __pyx_n_u_discard __pyx_string_tab[715]
#define __pyx_n_u_doc __pyx_string_tab[716]
#define __pyx_n_u_done __pyx_string_tab[717]
#define __pyx_n_u_dump_xds_configs __pyx_string_tab[718]
#define __pyx_n_u_e __pyx_string_tab[719]
#define __pyx_kp_u_enable __pyx_string_tab[720]
#define __pyx_n_u_enable_algorithm __pyx_string_tab[721]
#define __pyx_n_u_enable_census __pyx_string_tab[722]
#define __pyx_n_u_encode __pyx_string_tab[723]
#define __pyx_n_u_end_time __pyx_string_tab[724]
#define __pyx_n_u_endswith __pyx_string_tab[725]
#define __pyx_n_u_enter __pyx_string_tab[726]
#define __pyx_n_u_enter_user_request_generator __pyx_string_tab[727]
#define __pyx_n_u_enum __pyx_string_tab[728]
#define __pyx_n_u_enumerate __pyx_string_tab[729]
#define __pyx_n_u_environ __pyx_string_tab[730]
#define __pyx_n_u_errno __pyx_string_tab[731]
#define __pyx_n_u_error __pyx_string_tab[732]
#define __pyx_n_u_error_code __pyx_string_tab[733]
#define __pyx_n_u_error_details __pyx_string_tab[734]
#define __pyx_n_u_error_str __pyx_string_tab[735]
#define __pyx_n_u_error_string __pyx_string_tab[736]
#define __pyx_n_u_event __pyx_string_tab[737]
#define __pyx_n_u_exc_info __pyx_string_tab[738]
#define __pyx_n_u_exception __pyx_string_tab[739]
#define __pyx_n_u_exception_type __pyx_string_tab[740]
#define __pyx_n_u_execute_batch __pyx_string_tab[741]
#define __pyx_n_u_exit __pyx_string_tab[742]
#define __pyx_n_u_exit_2 __pyx_string_tab[743]
#define __pyx_kp_u_expected_bytes_got __pyx_string_tab[744]
#define __pyx_kp_u_expected_certificate_to_be_bytes __pyx_string_tab[745]
#define __pyx_kp_u_expected_pem_key_cert_pairs_to_b __pyx_string_tab[746]
#define __pyx_kp_u_expected_registered_completion_q __pyx_string_tab[747]
#define __pyx_n_u_failed_precondition __pyx_string_tab[748]
#define __pyx_n_u_failure_handler __pyx_string_tab[749]
#define __pyx_n_u_fallback_credentials __pyx_string_tab[750]
#define __pyx_n_u_fileno __pyx_string_tab[751]
#define __pyx_n_u_find_method_handler __pyx_string_tab[752]
#define __pyx_n_u_find_method_handler_locals_quer __pyx_string_tab[753]
#define __pyx_n_u_finish_handler_with_stream_resp __pyx_string_tab[754]
#define __pyx_n_u_finish_handler_with_unary_respo __pyx_string_tab[755]
#define __pyx_n_u_finish_ops __pyx_string_tab[756]
#define __pyx_n_u_flags __pyx_string_tab[757]
#define __pyx_n_u_fn __pyx_string_tab[758]
#define __pyx_n_u_force_client_auth __pyx_string_tab[759]
#define __pyx_n_u_fork_epoch __pyx_string_tab[760]
#define __pyx_n_u_fork_handler_failed __pyx_string_tab[761]
#define __pyx_n_u_fork_handler_registered __pyx_string_tab[762]
#define __pyx_n_u_fork_handler_registered_lock __pyx_string_tab[763]
#define __pyx_n_u_fork_handlers_and_grpc_init __pyx_string_tab[764]
#define __pyx_n_u_fork_in_progress __pyx_string_tab[765]
#define __pyx_n_u_fork_in_progress_condition __pyx_string_tab[766]
#define __pyx_n_u_fork_register_channel __pyx_string_tab[767]
#define __pyx_n_u_fork_state __pyx_string_tab[768]
#define __pyx_n_u_fork_unregister_channel __pyx_string_tab[769]
#define __pyx_n_u_format __pyx_string_tab[770]
#define __pyx_n_u_format_exception __pyx_string_tab[771]
#define __pyx_n_u_fully_qualified_method __pyx_string_tab[772]
#define __pyx_n_u_func __pyx_string_tab[773]
#define __pyx_n_u_functools __pyx_string_tab[774]
#define __pyx_n_u_future __pyx_string_tab[775]
#define __pyx_n_u_g_gevent_activated __pyx_string_tab[776]
#define __pyx_n_u_g_gevent_pool __pyx_string_tab[777]
#define __pyx_n_u_g_gevent_threadpool __pyx_string_tab[778]
#define __pyx_n_u_g_interrupt_check_period_ms __pyx_string_tab[779]
#define __pyx_n_u_g_shutdown_handler_registered __pyx_string_tab[780]
#define __pyx_kp_u_gc __pyx_string_tab[781]
#define __pyx_n_u_gen __pyx_string_tab[782]
#define __pyx_n_u_generator_to_async_generator __pyx_string_tab[783]
#define __pyx_n_u_generator_to_async_generator_loc __pyx_string_tab[784]
#define __pyx_n_u_generic_handler __pyx_string_tab[785]
#define __pyx_n_u_generic_handlers __pyx_string_tab[786]
#define __pyx_n_u_generic_rpc_handlers __pyx_string_tab[787]
#define __pyx_n_u_genexpr __pyx_string_tab[788]
#define __pyx_n_u_get __pyx_string_tab[789]
#define __pyx_n_u_getLogger __pyx_string_tab[790]
#define __pyx_n_u_get_data __pyx_string_tab[791]
#define __pyx_n_u_get_deadline_from_context __pyx_string_tab[792]
#define __pyx_n_u_get_event_loop __pyx_string_tab[793]
#define __pyx_n_u_get_event_loop_policy __pyx_string_tab[794]
#define __pyx_n_u_get_fork_epoch __pyx_string_tab[795]
#define __pyx_n_u_get_hub __pyx_string_tab[796]
#define __pyx_n_u_get_metadata_locals_callback __pyx_string_tab[797]
#define __pyx_n_u_get_plugin __pyx_string_tab[798]
#define __pyx_n_u_get_registered_call_handle __pyx_string_tab[799]
#define __pyx_n_u_get_running_loop __pyx_string_tab[800]
#define __pyx_n_u_get_server_call_tracer_factory_a __pyx_string_tab[801]
#define __pyx_n_u_get_working_loop __pyx_string_tab[802]
#define __pyx_n_u_getstate __pyx_string_tab[803]
#define __pyx_n_u_gevent __pyx_string_tab[804]
#define __pyx_n_u_gevent_decrement_channel_count __pyx_string_tab[805]
#define __pyx_n_u_gevent_hub __pyx_string_tab[806]
#define __pyx_n_u_gevent_increment_channel_count __pyx_string_tab[807]
#define __pyx_n_u_gevent_pool __pyx_string_tab[808]
#define __pyx_n_u_grace __pyx_string_tab[809]
#define __pyx_n_u_grpc __pyx_string_tab[810]
#define __pyx_n_u_grpc__cython_cygrpc __pyx_string_tab[811]
#define __pyx_kp_u_grpc_aio_EOF __pyx_string_tab[812]
#define __pyx_n_u_grpc_call_error_string __pyx_string_tab[813]
#define __pyx_n_u_grpc_call_wrapper __pyx_string_tab[814]
#define __pyx_n_u_grpc_completion_queue_shutdown __pyx_string_tab[815]
#define __pyx_kp_u_grpc_python__cygrpc__GrpcArgWrap __pyx_string_tab[816]
#define __pyx_n_u_grpc_server_request_call __pyx_string_tab[817]
#define __pyx_n_u_grpc_server_shutdown_and_notify __pyx_string_tab[818]
#define __pyx_n_u_grpc_shutdown_wrapper __pyx_string_tab[819]
#define __pyx_n_u_gzip __pyx_string_tab[820]
#define __pyx_n_u_handle_callback_wrapper __pyx_string_tab[821]
#define __pyx_n_u_handle_callbacks __pyx_string_tab[822]
#define __pyx_n_u_handle_cancellation_from_core __pyx_string_tab[823]
#define __pyx_n_u_handle_events __pyx_string_tab[824]
#define __pyx_n_u_handle_exceptions __pyx_string_tab[825]
#define __pyx_n_u_handle_rpc __pyx_string_tab[826]
#define __pyx_n_u_handle_status_once_received __pyx_string_tab[827]
#define __pyx_n_u_handle_stream_stream_rpc __pyx_string_tab[828]
#define __pyx_n_u_handle_stream_unary_rpc __pyx_string_tab[829]
#define __pyx_n_u_handle_unary_stream_rpc __pyx_string_tab[830]
#define __pyx_n_u_handle_unary_unary_rpc __pyx_string_tab[831]
#define __pyx_n_u_handler __pyx_string_tab[832]
#define __pyx_n_u_handler_call_details __pyx_string_tab[833]
#define __pyx_n_u_hex_codec __pyx_string_tab[834]
#define __pyx_n_u_high __pyx_string_tab[835]
#define __pyx_n_u_host __pyx_string_tab[836]
#define __pyx_n_u_http2_initial_sequence_number __pyx_string_tab[837]
#define __pyx_n_u_hub __pyx_string_tab[838]
#define __pyx_n_u_id __pyx_string_tab[839]
#define __pyx_n_u_identities __pyx_string_tab[840]
#define __pyx_n_u_identity __pyx_string_tab[841]
#define __pyx_n_u_identity_key __pyx_string_tab[842]
#define __pyx_n_u_idle __pyx_string_tab[843]
#define __pyx_kp_u_if_error_code_is_specified_so_mu __pyx_string_tab[844]
#define __pyx_n_u_inbound_ops __pyx_string_tab[845]
#define __pyx_n_u_increment __pyx_string_tab[846]
#define __pyx_n_u_index __pyx_string_tab[847]
#define __pyx_n_u_init __pyx_string_tab[848]
#define __pyx_n_u_init_grpc_aio __pyx_string_tab[849]
#define __pyx_n_u_init_grpc_gevent __pyx_string_tab[850]
#define __pyx_n_u_initial_cert_config __pyx_string_tab[851]
#define __pyx_kp_u_initial_cert_config_must_be_a_gr __pyx_string_tab[852]
#define __pyx_n_u_initial_metadata __pyx_string_tab[853]
#define __pyx_n_u_initial_metadata_op __pyx_string_tab[854]
#define __pyx_n_u_initializing __pyx_string_tab[855]
#define __pyx_n_u_initiate_stream_stream __pyx_string_tab[856]
#define __pyx_n_u_initiate_unary_stream __pyx_string_tab[857]
#define __pyx_n_u_insecure_server_credentials __pyx_string_tab[858]
#define __pyx_n_u_inspect __pyx_string_tab[859]
#define __pyx_n_u_install_context_from_request_cal __pyx_string_tab[860]
#define __pyx_n_u_install_context_from_request_cal_2 __pyx_string_tab[861]
#define __pyx_n_u_int __pyx_string_tab[862]
#define __pyx_n_u_integrated_call __pyx_string_tab[863]
#define __pyx_n_u_integrated_call_locals_on_succe __pyx_string_tab[864]
#define __pyx_n_u_intercept_service __pyx_string_tab[865]
#define __pyx_n_u_interceptor __pyx_string_tab[866]
#define __pyx_n_u_interceptors __pyx_string_tab[867]
#define __pyx_n_u_internal __pyx_string_tab[868]
#define __pyx_kp_u_internal_error_user_data_must_be __pyx_string_tab[869]
#define __pyx_n_u_internal_poll __pyx_string_tab[870]
#define __pyx_n_u_invalid_argument __pyx_string_tab[871]
#define __pyx_kp_u_invalid_call_object_cannot_be_us __pyx_string_tab[872]
#define __pyx_n_u_invalid_flags __pyx_string_tab[873]
#define __pyx_n_u_invalid_metadata __pyx_string_tab[874]
#define __pyx_n_u_invocation_metadata __pyx_string_tab[875]
#define __pyx_n_u_is_algorithm_enabled __pyx_string_tab[876]
#define __pyx_n_u_is_async_handler __pyx_string_tab[877]
#define __pyx_n_u_is_coroutine __pyx_string_tab[878]
#define __pyx_n_u_is_fork_support_enabled __pyx_string_tab[879]
#define __pyx_n_u_is_locally_cancelled __pyx_string_tab[880]
#define __pyx_n_u_is_ok __pyx_string_tab[881]
#define __pyx_n_u_is_running __pyx_string_tab[882]
#define __pyx_n_u_is_sampled __pyx_string_tab[883]
#define __pyx_n_u_is_valid __pyx_string_tab[884]
#define __pyx_kp_u_is_valid_2 __pyx_string_tab[885]
#define __pyx_n_u_isasyncgenfunction __pyx_string_tab[886]
#define __pyx_n_u_isawaitable __pyx_string_tab[887]
#define __pyx_n_u_iscoroutinefunction __pyx_string_tab[888]
#define __pyx_kp_u_isenabled __pyx_string_tab[889]
#define __pyx_n_u_item __pyx_string_tab[890]
#define __pyx_n_u_iter __pyx_string_tab[891]
#define __pyx_n_u_join __pyx_string_tab[892]
#define __pyx_n_u_key __pyx_string_tab[893]
#define __pyx_n_u_keys __pyx_string_tab[894]
#define __pyx_n_u_last_observed_state __pyx_string_tab[895]
#define __pyx_n_u_latent_event_arg __pyx_string_tab[896]
#define __pyx_n_u_len __pyx_string_tab[897]
#define __pyx_n_u_lk __pyx_string_tab[898]
#define __pyx_n_u_local_connect_type __pyx_string_tab[899]
#define __pyx_n_u_local_tcp __pyx_string_tab[900]
#define __pyx_n_u_logging __pyx_string_tab[901]
#define __pyx_n_u_loop __pyx_string_tab[902]
#define __pyx_n_u_low __pyx_string_tab[903]
#define __pyx_n_u_lower __pyx_string_tab[904]
#define __pyx_n_u_main __pyx_string_tab[905]
#define __pyx_n_u_main_thread __pyx_string_tab[906]
#define __pyx_n_u_managed_target __pyx_string_tab[907]
#define __pyx_n_u_max_concurrent_streams __pyx_string_tab[908]
#define __pyx_n_u_max_receive_message_length __pyx_string_tab[909]
#define __pyx_n_u_max_results __pyx_string_tab[910]
#define __pyx_n_u_max_send_message_length __pyx_string_tab[911]
#define __pyx_n_u_maximum_concurrent_rpcs __pyx_string_tab[912]
#define __pyx_kp_u_maximum_concurrent_rpcs_should_b __pyx_string_tab[913]
#define __pyx_n_u_maxsize __pyx_string_tab[914]
#define __pyx_n_u_maybe_register_shutdown_handler __pyx_string_tab[915]
#define __pyx_n_u_maybe_save_server_trace_context __pyx_string_tab[916]
#define __pyx_n_u_medium __pyx_string_tab[917]
#define __pyx_n_u_members __pyx_string_tab[918]
#define __pyx_n_u_message __pyx_string_tab[919]
#define __pyx_n_u_metaclass __pyx_string_tab[920]
#define __pyx_n_u_metadata __pyx_string_tab[921]
#define __pyx_n_u_metadata_locals_genexpr __pyx_string_tab[922]
#define __pyx_n_u_metadata_plugin __pyx_string_tab[923]
#define __pyx_n_u_metadata_sent_observer __pyx_string_tab[924]
#define __pyx_kp_u_metadata_was_invalid_s __pyx_string_tab[925]
#define __pyx_n_u_method __pyx_string_tab[926]
#define __pyx_n_u_method_bytes __pyx_string_tab[927]
#define __pyx_n_u_method_handler __pyx_string_tab[928]
#define __pyx_n_u_module __pyx_string_tab[929]
#define __pyx_n_u_mro_entries __pyx_string_tab[930]
#define __pyx_n_u_name __pyx_string_tab[931]
#define __pyx_n_u_name_2 __pyx_string_tab[932]
#define __pyx_n_u_namedtuple __pyx_string_tab[933]
#define __pyx_n_u_new __pyx_string_tab[934]
#define __pyx_n_u_new_event_loop __pyx_string_tab[935]
#define __pyx_n_u_next __pyx_string_tab[936]
#define __pyx_n_u_next_call_event __pyx_string_tab[937]
#define __pyx_n_u_next_call_event_locals_on_succes __pyx_string_tab[938]
#define __pyx_n_u_next_event __pyx_string_tab[939]
#define __pyx_n_u_next_event_locals_on_failure __pyx_string_tab[940]
#define __pyx_n_u_next_event_locals_on_success __pyx_string_tab[941]
#define __pyx_n_u_no_compress __pyx_string_tab[942]
#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[943]
#define __pyx_n_u_none __pyx_string_tab[944]
#define __pyx_n_u_not_found __pyx_string_tab[945]
#define __pyx_n_u_not_invoked __pyx_string_tab[946]
#define __pyx_n_u_not_on_client __pyx_string_tab[947]
#define __pyx_n_u_not_on_server __pyx_string_tab[948]
#define __pyx_n_u_notify_all __pyx_string_tab[949]
#define __pyx_n_u_num_active_threads __pyx_string_tab[950]
#define __pyx_n_u_object __pyx_string_tab[951]
#define __pyx_kp_u_object_2 __pyx_string_tab[952]
#define __pyx_n_u_observability __pyx_string_tab[953]
#define __pyx_n_u_observability_enabled __pyx_string_tab[954]
#define __pyx_n_u_observability_plugin __pyx_string_tab[955]
#define __pyx_kp_u_of_RPC_that_terminated_with_sta __pyx_string_tab[956]
#define __pyx_kp_u_of_RPC_that_terminated_with_sta_2 __pyx_string_tab[957]
#define __pyx_n_u_ok __pyx_string_tab[958]
#define __pyx_n_u_on_failure __pyx_string_tab[959]
#define __pyx_n_u_on_success __pyx_string_tab[960]
#define __pyx_n_u_op __pyx_string_tab[961]
#define __pyx_n_u_operate __pyx_string_tab[962]
#define __pyx_n_u_operation_complete __pyx_string_tab[963]
#define __pyx_n_u_operations __pyx_string_tab[964]
#define __pyx_n_u_operationses_and_tags __pyx_string_tab[965]
#define __pyx_n_u_ops __pyx_string_tab[966]
#define __pyx_n_u_options __pyx_string_tab[967]
#define __pyx_n_u_os __pyx_string_tab[968]
#define __pyx_n_u_out_of_range __pyx_string_tab[969]
#define __pyx_n_u_outbound_initial_metadata __pyx_string_tab[970]
#define __pyx_n_u_outbound_ops __pyx_string_tab[971]
#define __pyx_n_u_partial __pyx_string_tab[972]
#define __pyx_n_u_peer __pyx_string_tab[973]
#define __pyx_n_u_peer_identities __pyx_string_tab[974]
#define __pyx_n_u_peer_identity_key __pyx_string_tab[975]
#define __pyx_n_u_pem_key_cert_pairs __pyx_string_tab[976]
#define __pyx_n_u_pem_root_certificates __pyx_string_tab[977]
#define __pyx_n_u_pem_root_certs __pyx_string_tab[978]
#define __pyx_n_u_permission_denied __pyx_string_tab[979]
#define __pyx_n_u_pickle __pyx_string_tab[980]
#define __pyx_n_u_pkgutil __pyx_string_tab[981]
#define __pyx_n_u_plugin __pyx_string_tab[982]
#define __pyx_n_u_poll __pyx_string_tab[983]
#define __pyx_n_u_poll_wrapper __pyx_string_tab[984]
#define __pyx_n_u_poller __pyx_string_tab[985]
#define __pyx_n_u_pool __pyx_string_tab[986]
#define __pyx_n_u_pop __pyx_string_tab[987]
#define __pyx_n_u_postfork_state_to_reset __pyx_string_tab[988]
#define __pyx_n_u_postfork_states_to_reset __pyx_string_tab[989]
#define __pyx_n_u_prepare __pyx_string_tab[990]
#define __pyx_n_u_primary_user_agent_string __pyx_string_tab[991]
#define __pyx_n_u_print_exc __pyx_string_tab[992]
#define __pyx_n_u_private_key __pyx_string_tab[993]
#define __pyx_n_u_properties __pyx_string_tab[994]
#define __pyx_n_u_property __pyx_string_tab[995]
#define __pyx_n_u_put __pyx_string_tab[996]
#define __pyx_n_u_py_auth_context __pyx_string_tab[997]
#define __pyx_n_u_python_call_credentials __pyx_string_tab[998]
#define __pyx_n_u_pyx_PickleError __pyx_string_tab[999]
#define __pyx_n_u_pyx_capi __pyx_string_tab[1000]
#define __pyx_n_u_pyx_checksum __pyx_string_tab[1001]
#define __pyx_n_u_pyx_result __pyx_string_tab[1002]
#define __pyx_n_u_pyx_state __pyx_string_tab[1003]
#define __pyx_n_u_pyx_type __pyx_string_tab[1004]
#define __pyx_n_u_pyx_unpickle_AioServer __pyx_string_tab[1005]
#define __pyx_n_u_pyx_unpickle_CensusContext __pyx_string_tab[1006]
#define __pyx_n_u_pyx_unpickle_ChannelCredential __pyx_string_tab[1007]
#define __pyx_n_u_pyx_unpickle_InsecureChannelCr __pyx_string_tab[1008]
#define __pyx_n_u_pyx_unpickle__Tag __pyx_string_tab[1009]
#define __pyx_n_u_pyx_vtable __pyx_string_tab[1010]
#define __pyx_n_u_qualname __pyx_string_tab[1011]
#define __pyx_n_u_query_call __pyx_string_tab[1012]
#define __pyx_n_u_query_handler __pyx_string_tab[1013]
#define __pyx_n_u_query_handlers __pyx_string_tab[1014]
#define __pyx_n_u_queue __pyx_string_tab[1015]
#define __pyx_n_u_queue_deadline __pyx_string_tab[1016]
#define __pyx_kp_u_queue_must_be_live __pyx_string_tab[1017]
#define __pyx_kp_u_queue_must_be_shutting_down_to_b __pyx_string_tab[1018]
#define __pyx_n_u_queue_shutdown __pyx_string_tab[1019]
#define __pyx_n_u_queue_timeout __pyx_string_tab[1020]
#define __pyx_n_u_raise_if_not_valid_trailing_meta __pyx_string_tab[1021]
#define __pyx_kp_u_raised_by_servicer_method __pyx_string_tab[1022]
#define __pyx_n_u_range __pyx_string_tab[1023]
#define __pyx_n_u_raw_message __pyx_string_tab[1024]
#define __pyx_n_u_read __pyx_string_tab[1025]
#define __pyx_n_u_read_socket __pyx_string_tab[1026]
#define __pyx_n_u_ready __pyx_string_tab[1027]
#define __pyx_n_u_receive_close_on_server __pyx_string_tab[1028]
#define __pyx_n_u_receive_initial_metadata __pyx_string_tab[1029]
#define __pyx_n_u_receive_initial_metadata_2 __pyx_string_tab[1030]
#define __pyx_n_u_receive_initial_metadata_op __pyx_string_tab[1031]
#define __pyx_n_u_receive_message __pyx_string_tab[1032]
#define __pyx_n_u_receive_message_2 __pyx_string_tab[1033]
#define __pyx_n_u_receive_message_op __pyx_string_tab[1034]
#define __pyx_n_u_receive_op __pyx_string_tab[1035]
#define __pyx_n_u_receive_serialized_message __pyx_string_tab[1036]
#define __pyx_n_u_receive_status_on_client __pyx_string_tab[1037]
#define __pyx_n_u_receive_status_on_client_op __pyx_string_tab[1038]
#define __pyx_n_u_received_message __pyx_string_tab[1039]
#define __pyx_n_u_recv __pyx_string_tab[1040]
#define __pyx_n_u_reduce __pyx_string_tab[1041]
#define __pyx_n_u_reduce_cython __pyx_string_tab[1042]
#define __pyx_n_u_reduce_ex __pyx_string_tab[1043]
#define __pyx_n_u_register __pyx_string_tab[1044]
#define __pyx_n_u_register_at_fork __pyx_string_tab[1045]
#define __pyx_n_u_register_completion_queue __pyx_string_tab[1046]
#define __pyx_n_u_register_method __pyx_string_tab[1047]
#define __pyx_n_u_registered_call_handle __pyx_string_tab[1048]
#define __pyx_n_u_registered_method __pyx_string_tab[1049]
#define __pyx_n_u_remove_reader __pyx_string_tab[1050]
#define __pyx_n_u_repr __pyx_string_tab[1051]
#define __pyx_n_u_repr_2 __pyx_string_tab[1052]
#define __pyx_n_u_request __pyx_string_tab[1053]
#define __pyx_n_u_request_call __pyx_string_tab[1054]
#define __pyx_n_u_request_call_2 __pyx_string_tab[1055]
#define __pyx_n_u_request_call_tag __pyx_string_tab[1056]
#define __pyx_n_u_request_deserializer __pyx_string_tab[1057]
#define __pyx_n_u_request_iterator __pyx_string_tab[1058]
#define __pyx_n_u_request_message __pyx_string_tab[1059]
#define __pyx_n_u_request_raw __pyx_string_tab[1060]
#define __pyx_n_u_request_registered_call __pyx_string_tab[1061]
#define __pyx_n_u_request_streaming __pyx_string_tab[1062]
#define __pyx_n_u_reset_grpc_config_vars __pyx_string_tab[1063]
#define __pyx_n_u_reset_postfork_child __pyx_string_tab[1064]
#define __pyx_n_u_resource_exhausted __pyx_string_tab[1065]
#define __pyx_n_u_response __pyx_string_tab[1066]
#define __pyx_n_u_response_message __pyx_string_tab[1067]
#define __pyx_n_u_response_raw __pyx_string_tab[1068]
#define __pyx_n_u_response_serializer __pyx_string_tab[1069]
#define __pyx_n_u_response_streaming __pyx_string_tab[1070]
#define __pyx_n_u_result __pyx_string_tab[1071]
#define __pyx_n_u_retain_self __pyx_string_tab[1072]
#define __pyx_n_u_return __pyx_string_tab[1073]
#define __pyx_n_u_return_from_user_request_generat __pyx_string_tab[1074]
#define __pyx_n_u_rpc_coro __pyx_string_tab[1075]
#define __pyx_n_u_rpc_state __pyx_string_tab[1076]
#define __pyx_n_u_rpc_task __pyx_string_tab[1077]
#define __pyx_n_u_rpc_tasks __pyx_string_tab[1078]
#define __pyx_n_u_run __pyx_string_tab[1079]
#define __pyx_n_u_run_2 __pyx_string_tab[1080]
#define __pyx_n_u_run_coroutine_threadsafe __pyx_string_tab[1081]
#define __pyx_n_u_run_in_executor __pyx_string_tab[1082]
#define __pyx_n_u_run_interceptor __pyx_string_tab[1083]
#define __pyx_n_u_run_spawn_greenlets __pyx_string_tab[1084]
#define __pyx_n_u_run_with_context __pyx_string_tab[1085]
#define __pyx_n_u_run_with_context_locals__run __pyx_string_tab[1086]
#define __pyx_n_u_runtime_error __pyx_string_tab[1087]
#define __pyx_n_u_save_registered_method __pyx_string_tab[1088]
#define __pyx_n_u_save_trace_context __pyx_string_tab[1089]
#define __pyx_n_u_schedule_coro_threadsafe __pyx_string_tab[1090]
#define __pyx_n_u_schedule_rpc_coro __pyx_string_tab[1091]
#define __pyx_n_u_secondary_user_agent_string __pyx_string_tab[1092]
#define __pyx_n_u_segregated_call __pyx_string_tab[1093]
#define __pyx_n_u_segregated_call_locals_on_succe __pyx_string_tab[1094]
#define __pyx_n_u_self __pyx_string_tab[1095]
#define __pyx_kp_u_self__cq_cannot_be_converted_to __pyx_string_tab[1096]
#define __pyx_kp_u_self_arg_cannot_be_converted_to __pyx_string_tab[1097]
#define __pyx_kp_u_self_c_argument_cannot_be_conver __pyx_string_tab[1098]
#define __pyx_kp_u_self_c_credentials_cannot_be_con __pyx_string_tab[1099]
#define __pyx_kp_u_self_c_op_cannot_be_converted_to __pyx_string_tab[1100]
#define __pyx_n_u_send __pyx_string_tab[1101]
#define __pyx_n_u_send_close_from_client __pyx_string_tab[1102]
#define __pyx_n_u_send_close_op __pyx_string_tab[1103]
#define __pyx_n_u_send_error_status_from_server __pyx_string_tab[1104]
#define __pyx_n_u_send_initial_metadata __pyx_string_tab[1105]
#define __pyx_n_u_send_initial_metadata_2 __pyx_string_tab[1106]
#define __pyx_n_u_send_initial_metadata_op __pyx_string_tab[1107]
#define __pyx_n_u_send_message __pyx_string_tab[1108]
#define __pyx_n_u_send_message_2 __pyx_string_tab[1109]
#define __pyx_n_u_send_message_op __pyx_string_tab[1110]
#define __pyx_n_u_send_receive_close __pyx_string_tab[1111]
#define __pyx_n_u_send_serialized_message __pyx_string_tab[1112]
#define __pyx_n_u_send_status_from_server __pyx_string_tab[1113]
#define __pyx_n_u_server __pyx_string_tab[1114]
#define __pyx_n_u_server_call_tracer __pyx_string_tab[1115]
#define __pyx_n_u_server_certificate_config_ssl __pyx_string_tab[1116]
#define __pyx_n_u_server_credentials __pyx_string_tab[1117]
#define __pyx_n_u_server_credentials_alts __pyx_string_tab[1118]
#define __pyx_n_u_server_credentials_local __pyx_string_tab[1119]
#define __pyx_n_u_server_credentials_ssl __pyx_string_tab[1120]
#define __pyx_n_u_server_credentials_ssl_dynamic_c __pyx_string_tab[1121]
#define __pyx_n_u_server_id __pyx_string_tab[1122]
#define __pyx_n_u_server_main_loop __pyx_string_tab[1123]
#define __pyx_kp_u_server_must_be_started_and_not_s __pyx_string_tab[1124]
#define __pyx_n_u_server_queue __pyx_string_tab[1125]
#define __pyx_kp_u_server_queue_must_be_a_registere __pyx_string_tab[1126]
#define __pyx_n_u_server_started __pyx_string_tab[1127]
#define __pyx_n_u_service __pyx_string_tab[1128]
#define __pyx_n_u_service_accounts __pyx_string_tab[1129]
#define __pyx_n_u_servicer_context __pyx_string_tab[1130]
#define __pyx_n_u_serving_task_crash_handler __pyx_string_tab[1131]
#define __pyx_n_u_setDaemon __pyx_string_tab[1132]
#define __pyx_n_u_set_async_callback_func __pyx_string_tab[1133]
#define __pyx_n_u_set_census_context_on_call __pyx_string_tab[1134]
#define __pyx_n_u_set_code __pyx_string_tab[1135]
#define __pyx_n_u_set_compression __pyx_string_tab[1136]
#define __pyx_n_u_set_credentials __pyx_string_tab[1137]
#define __pyx_n_u_set_details __pyx_string_tab[1138]
#define __pyx_n_u_set_exception __pyx_string_tab[1139]
#define __pyx_n_u_set_instrumentation_context_on_c __pyx_string_tab[1140]
#define __pyx_n_u_set_internal_error __pyx_string_tab[1141]
#define __pyx_n_u_set_name __pyx_string_tab[1142]
#define __pyx_n_u_set_result __pyx_string_tab[1143]
#define __pyx_n_u_set_trailing_metadata __pyx_string_tab[1144]
#define __pyx_n_u_setblocking __pyx_string_tab[1145]
#define __pyx_n_u_setstate __pyx_string_tab[1146]
#define __pyx_n_u_setstate_cython __pyx_string_tab[1147]
#define __pyx_n_u_shield __pyx_string_tab[1148]
#define __pyx_n_u_shutdown __pyx_string_tab[1149]
#define __pyx_n_u_shutdown_await_next_greenlet __pyx_string_tab[1150]
#define __pyx_n_u_shutdown_cq __pyx_string_tab[1151]
#define __pyx_n_u_shutdown_grpc_aio __pyx_string_tab[1152]
#define __pyx_n_u_shutting_down_server __pyx_string_tab[1153]
#define __pyx_n_u_simplefilter __pyx_string_tab[1154]
#define __pyx_n_u_sleep __pyx_string_tab[1155]
#define __pyx_n_u_socket __pyx_string_tab[1156]
#define __pyx_n_u_socket_id __pyx_string_tab[1157]
#define __pyx_n_u_socketpair __pyx_string_tab[1158]
#define __pyx_n_u_span_id __pyx_string_tab[1159]
#define __pyx_n_u_spawn __pyx_string_tab[1160]
#define __pyx_n_u_spawn_callback_async __pyx_string_tab[1161]
#define __pyx_n_u_spawn_callback_in_thread __pyx_string_tab[1162]
#define __pyx_n_u_spawn_greenlets __pyx_string_tab[1163]
#define __pyx_n_u_spec __pyx_string_tab[1164]
#define __pyx_kp_u_src_python_grpcio_grpc__cython __pyx_string_tab[1165]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_10 __pyx_string_tab[1166]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_11 __pyx_string_tab[1167]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_12 __pyx_string_tab[1168]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_13 __pyx_string_tab[1169]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_14 __pyx_string_tab[1170]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_15 __pyx_string_tab[1171]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_16 __pyx_string_tab[1172]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_17 __pyx_string_tab[1173]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_18 __pyx_string_tab[1174]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_19 __pyx_string_tab[1175]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_2 __pyx_string_tab[1176]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_20 __pyx_string_tab[1177]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_21 __pyx_string_tab[1178]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_22 __pyx_string_tab[1179]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_23 __pyx_string_tab[1180]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_24 __pyx_string_tab[1181]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_3 __pyx_string_tab[1182]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_4 __pyx_string_tab[1183]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_5 __pyx_string_tab[1184]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_6 __pyx_string_tab[1185]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_7 __pyx_string_tab[1186]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_8 __pyx_string_tab[1187]
#define __pyx_kp_u_src_python_grpcio_grpc__cython_9 __pyx_string_tab[1188]
#define __pyx_n_u_ssl_session_cache __pyx_string_tab[1189]
#define __pyx_n_u_ssl_target_name_override __pyx_string_tab[1190]
#define __pyx_n_u_start __pyx_string_tab[1191]
#define __pyx_n_u_start_batch __pyx_string_tab[1192]
#define __pyx_n_u_start_channel_id __pyx_string_tab[1193]
#define __pyx_n_u_start_client_batch __pyx_string_tab[1194]
#define __pyx_n_u_start_server_batch __pyx_string_tab[1195]
#define __pyx_n_u_start_server_id __pyx_string_tab[1196]
#define __pyx_n_u_start_shutting_down __pyx_string_tab[1197]
#define __pyx_n_u_start_socket_id __pyx_string_tab[1198]
#define __pyx_n_u_started_tag __pyx_string_tab[1199]
#define __pyx_n_u_started_tags __pyx_string_tab[1200]
#define __pyx_n_u_state __pyx_string_tab[1201]
#define __pyx_n_u_status __pyx_string_tab[1202]
#define __pyx_n_u_status_code __pyx_string_tab[1203]
#define __pyx_n_u_status_task __pyx_string_tab[1204]
#define __pyx_n_u_stored_ctx __pyx_string_tab[1205]
#define __pyx_n_u_str __pyx_string_tab[1206]
#define __pyx_n_u_str_2 __pyx_string_tab[1207]
#define __pyx_n_u_stream_handler __pyx_string_tab[1208]
#define __pyx_n_u_stream_stream __pyx_string_tab[1209]
#define __pyx_n_u_stream_unary __pyx_string_tab[1210]
#define __pyx_kp_u_stringsource __pyx_string_tab[1211]
#define __pyx_n_u_subchannel_id __pyx_string_tab[1212]
#define __pyx_n_u_success __pyx_string_tab[1213]
#define __pyx_n_u_sync_servicer_context __pyx_string_tab[1214]
#define __pyx_n_u_sys __pyx_string_tab[1215]
#define __pyx_n_u_t __pyx_string_tab[1216]
#define __pyx_n_u_tag __pyx_string_tab[1217]
#define __pyx_n_u_target __pyx_string_tab[1218]
#define __pyx_n_u_task __pyx_string_tab[1219]
#define __pyx_n_u_test __pyx_string_tab[1220]
#define __pyx_kp_u_the_server_has_already_started __pyx_string_tab[1221]
#define __pyx_kp_u_the_server_hasn_t_started_yet __pyx_string_tab[1222]
#define __pyx_kp_u_the_server_must_be_shutting_down __pyx_string_tab[1223]
#define __pyx_n_u_thread __pyx_string_tab[1224]
#define __pyx_n_u_thread_pool __pyx_string_tab[1225]
#define __pyx_n_u_threading __pyx_string_tab[1226]
#define __pyx_n_u_threadpool __pyx_string_tab[1227]
#define __pyx_n_u_throw __pyx_string_tab[1228]
#define __pyx_n_u_time __pyx_string_tab[1229]
#define __pyx_n_u_time_remaining __pyx_string_tab[1230]
#define __pyx_n_u_timeout __pyx_string_tab[1231]
#define __pyx_n_u_timeout_secs __pyx_string_tab[1232]
#define __pyx_n_u_to_call __pyx_string_tab[1233]
#define __pyx_n_u_to_channel_arg __pyx_string_tab[1234]
#define __pyx_n_u_too_many_operations __pyx_string_tab[1235]
#define __pyx_n_u_trace_id __pyx_string_tab[1236]
#define __pyx_n_u_traceback __pyx_string_tab[1237]
#define __pyx_n_u_tracing_enabled __pyx_string_tab[1238]
#define __pyx_n_u_trailing_metadata __pyx_string_tab[1239]
#define __pyx_n_u_transient_failure __pyx_string_tab[1240]
#define __pyx_n_u_true __pyx_string_tab[1241]
#define __pyx_n_u_try_to_connect __pyx_string_tab[1242]
#define __pyx_n_u_type __pyx_string_tab[1243]
#define __pyx_n_u_typing __pyx_string_tab[1244]
#define __pyx_n_u_uds __pyx_string_tab[1245]
#define __pyx_n_u_unary_handler __pyx_string_tab[1246]
#define __pyx_n_u_unary_stream __pyx_string_tab[1247]
#define __pyx_n_u_unary_unary __pyx_string_tab[1248]
#define __pyx_n_u_unauthenticated __pyx_string_tab[1249]
#define __pyx_n_u_unavailable __pyx_string_tab[1250]
#define __pyx_n_u_unimplemented __pyx_string_tab[1251]
#define __pyx_n_u_uninstall_context __pyx_string_tab[1252]
#define __pyx_n_u_unknown __pyx_string_tab[1253]
#define __pyx_n_u_unused_future __pyx_string_tab[1254]
#define __pyx_n_u_unused_task __pyx_string_tab[1255]
#define __pyx_n_u_update __pyx_string_tab[1256]
#define __pyx_n_u_upper __pyx_string_tab[1257]
#define __pyx_n_u_use_setstate __pyx_string_tab[1258]
#define __pyx_n_u_used_mask __pyx_string_tab[1259]
#define __pyx_n_u_user_tag __pyx_string_tab[1260]
#define __pyx_n_u_utf8 __pyx_string_tab[1261]
#define __pyx_kp_u_utf_8 __pyx_string_tab[1262]
#define __pyx_n_u_value __pyx_string_tab[1263]
#define __pyx_n_u_values __pyx_string_tab[1264]
#define __pyx_n_u_wait __pyx_string_tab[1265]
#define __pyx_n_u_wait_for __pyx_string_tab[1266]
#define __pyx_n_u_wait_for_ready __pyx_string_tab[1267]
#define __pyx_n_u_wait_for_ready_explicitly_set __pyx_string_tab[1268]
#define __pyx_n_u_wait_for_termination __pyx_string_tab[1269]
#define __pyx_n_u_wait_time __pyx_string_tab[1270]
#define __pyx_n_u_warning __pyx_string_tab[1271]
#define __pyx_n_u_warnings __pyx_string_tab[1272]
#define __pyx_n_u_watch_connectivity_state __pyx_string_tab[1273]
#define __pyx_n_u_wrap __pyx_string_tab[1274]
#define __pyx_n_u_wrapper __pyx_string_tab[1275]
#define __pyx_n_u_write __pyx_string_tab[1276]
#define __pyx_n_u_write_flag __pyx_string_tab[1277]
#define __pyx_n_u_xds __pyx_string_tab[1278]
#define __pyx_n_u_xds_server_credentials __pyx_string_tab[1279]
#define __pyx_n_u_yes __pyx_string_tab[1280]
#define __pyx_n_u_yield_to_queue __pyx_string_tab[1281]
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
  __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
  #endif
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __Pyx_State_RemoveModule(NULL);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__CallState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Channel);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallHandle);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Operation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallDetails);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Server);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Server);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__Tag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioCall);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioChannel);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RPCState);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioServer);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CensusContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_CLEAR(clear_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_CLEAR(clear_module_state->__pyx_k__10);
  Py_CLEAR(clear_module_state->__pyx_k__11);
  for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_slice[i]); }
  for (int i=0; i<19; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
  for (int i=0; i<389; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1282; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
  Py_CLEAR(clear_module_state->__pyx_float_1_0);
  Py_CLEAR(clear_module_state->__pyx_int_0);
  Py_CLEAR(clear_module_state->__pyx_int_1);
  Py_CLEAR(clear_module_state->__pyx_int_2);
  Py_CLEAR(clear_module_state->__pyx_int_5);
  Py_CLEAR(clear_module_state->__pyx_int_10);
  Py_CLEAR(clear_module_state->__pyx_int_1000);
  Py_CLEAR(clear_module_state->__pyx_int_1500);
  Py_CLEAR(clear_module_state->__pyx_int_118587260);
  Py_CLEAR(clear_module_state->__pyx_int_171381981);
  Py_CLEAR(clear_module_state->__pyx_int_171651213);
  Py_CLEAR(clear_module_state->__pyx_int_222419149);
  Py_CLEAR(clear_module_state->__pyx_int_228825662);
  Py_CLEAR(clear_module_state->__pyx_int_238750788);
  return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
  #endif
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__CallState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ChannelState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Channel);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallHandle);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Operation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallDetails);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_Server);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_Server);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__Tag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__AioCall);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioChannel);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_RPCState);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_AioServer);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc_CensusContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown);
  Py_VISIT(traverse_module_state->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args);
  Py_VISIT(traverse_module_state->__pyx_k__10);
  Py_VISIT(traverse_module_state->__pyx_k__11);
  for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_slice[i]); }
  for (int i=0; i<19; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
  for (int i=0; i<389; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1282; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_float_1_0);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_0);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_1);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_2);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_5);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_10);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_1000);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_1500);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_118587260);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_171381981);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_171651213);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_222419149);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_228825662);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_int_238750788);
  return 0;
}
#endif
/* #### Code section: module_code ### */

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
*/

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap, "wrap() -> 'void'");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap = {"wrap", (PyCFunction)__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap, METH_NOARGS, __pyx_doc_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__wrap(PyObject *__pyx_self) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 0);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap():
 *         """wrap() -> 'void'"""
 *         f()             # <<<<<<<<<<<<<<
 *     return wrap
 * 
*/
  __pyx_cur_scope->__pyx_v_f(); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 69, __pyx_L1_error)

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():
*/

static PyObject *__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*__pyx_v_f)(void)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 65, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap() -> 'void'"""
 *         f()
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_78__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__1wrap, 0, __pyx_mstate_global->__pyx_n_u_Pyx_CFunc_7f0cf6__4grpc_7_cyth, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_cfunc_to_py, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap() -> 'void'"""
 *         f()
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(void (*f)() except *):
 *     def wrap():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
*/

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap, "wrap(latent_event_arg: '_LatentEventArg')");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap = {"wrap", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_latent_event_arg,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 67, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 67, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "wrap", 0) < 0) __PYX_ERR(10, 67, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("wrap", 1, 1, 1, i); __PYX_ERR(10, 67, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 67, __pyx_L3_error)
    }
    __pyx_v_latent_event_arg = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wrap", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_latent_event_arg), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg, 1, "latent_event_arg", 0))) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(__pyx_self, __pyx_v_latent_event_arg);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_wrap(PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 0);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap(_LatentEventArg latent_event_arg):
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)             # <<<<<<<<<<<<<<
 *     return wrap
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(__pyx_v_latent_event_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):
*/

static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *(*__pyx_v_f)(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(__pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 65, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_97__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_1wrap, 0, __pyx_mstate_global->__pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_cfunc_to_py, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap(latent_event_arg: '_LatentEventArg')"""
 *         return f(latent_event_arg)
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(object (*f)(_LatentEventArg) ):
 *     def wrap(_LatentEventArg latent_event_arg):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":30
 *     cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":32
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":30
 *     cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":36
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":38
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":36
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":42
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":44
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":42
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":48
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":50
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":48
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
*/

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap, "wrap()");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap = {"wrap", (PyCFunction)__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap, METH_NOARGS, __pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__wrap(PyObject *__pyx_self) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 0);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap():
 *         """wrap()"""
 *         return f()             # <<<<<<<<<<<<<<
 *     return wrap
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():
*/

static PyObject *__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *(*__pyx_v_f)(void)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(__pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 65, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():             # <<<<<<<<<<<<<<
 *         """wrap()"""
 *         return f()
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__1wrap, 0, __pyx_mstate_global->__pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr_2, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_cfunc_to_py, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap()"""
 *         return f()
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(object (*f)() ):
 *     def wrap():
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
*/

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap, "wrap(cb, args: tuple)");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap = {"wrap", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cb = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cb,&__pyx_mstate_global->__pyx_n_u_args,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 67, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 67, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 67, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "wrap", 0) < 0) __PYX_ERR(10, 67, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("wrap", 1, 2, 2, i); __PYX_ERR(10, 67, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 67, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 67, __pyx_L3_error)
    }
    __pyx_v_cb = values[0];
    __pyx_v_args = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wrap", 1, 2, 2, __pyx_nargs); __PYX_ERR(10, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(10, 67, __pyx_L1_error)
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(__pyx_self, __pyx_v_cb, __pyx_v_args);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_wrap(PyObject *__pyx_self, PyObject *__pyx_v_cb, PyObject *__pyx_v_args) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 0);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap(object cb, tuple args):
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)             # <<<<<<<<<<<<<<
 *     return wrap
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(__pyx_v_cb, __pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):
*/

static PyObject *__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *(*__pyx_v_f)(PyObject *, PyObject *)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(__pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(10, 65, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):             # <<<<<<<<<<<<<<
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_87__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_1wrap, 0, __pyx_mstate_global->__pyx_n_u_Pyx_CFunc_1f6ebd__4grpc_7_cyth, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_cfunc_to_py, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap(cb, args: tuple)"""
 *         return f(cb, args)
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":65
 * 
 * 
 * @cname("__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args")             # <<<<<<<<<<<<<<
 * cdef object __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(object (*f)(object, tuple) ):
 *     def wrap(object cb, tuple args):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/complex.pxd":20
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":23
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
 *             return self.cval.real             # <<<<<<<<<<<<<<
 * 
 *         # unavailable in limited API
*/
  __pyx_r = __pyx_v_self->cval.real;
  goto __pyx_L0;

  /* "cpython/complex.pxd":20
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/complex.pxd":26
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":29
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
 *             return self.cval.imag             # <<<<<<<<<<<<<<
 * 
 *     # PyTypeObject PyComplex_Type
*/
  __pyx_r = __pyx_v_self->cval.imag;
  goto __pyx_L0;

  /* "cpython/complex.pxd":26
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/contextvars.pxd":115
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value *__pyx_optional_args) {

  /* "cpython/contextvars.pxd":116
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
*/
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":121
 *     or None if no such value or default was found.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:
*/
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":122
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)             # <<<<<<<<<<<<<<
 *     if value is NULL:
 *         # context variable does not have a default
*/
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, NULL, (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(11, 122, __pyx_L1_error)

  /* "cpython/contextvars.pxd":123
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
*/
  __pyx_t_2 = (__pyx_v_value == NULL);
  if (__pyx_t_2) {

    /* "cpython/contextvars.pxd":125
 *     if value is NULL:
 *         # context variable does not have a default
 *         pyvalue = default_value             # <<<<<<<<<<<<<<
 *     else:
 *         # value or default value of context variable
*/
    __Pyx_INCREF(__pyx_v_default_value);
    __pyx_v_pyvalue = __pyx_v_default_value;

    /* "cpython/contextvars.pxd":123
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
*/
    goto __pyx_L3;
  }

  /* "cpython/contextvars.pxd":128
 *     else:
 *         # value or default value of context variable
 *         pyvalue = <object>value             # <<<<<<<<<<<<<<
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
*/
  /*else*/ {
    __pyx_t_3 = ((PyObject *)__pyx_v_value);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_pyvalue = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cpython/contextvars.pxd":129
 *         # value or default value of context variable
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
 * 
*/
    Py_XDECREF(__pyx_v_value);
  }
  __pyx_L3:;

  /* "cpython/contextvars.pxd":130
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":115
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cpython.contextvars.get_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/contextvars.pxd":133
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value_no_default(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value_no_default(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default *__pyx_optional_args) {

  /* "cpython/contextvars.pxd":134
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
*/
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value_no_default", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":140
 *     Ignores the default value of the context variable, if any.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
*/
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":141
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)             # <<<<<<<<<<<<<<
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
*/
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, ((PyObject *)__pyx_v_default_value), (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(11, 141, __pyx_L1_error)

  /* "cpython/contextvars.pxd":143
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value             # <<<<<<<<<<<<<<
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_value);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_pyvalue = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cpython/contextvars.pxd":144
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
*/
  Py_XDECREF(__pyx_v_value);

  /* "cpython/contextvars.pxd":145
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":133
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value_no_default(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cpython.contextvars.get_value_no_default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":18
 * # This function will ascii encode unicode string inputs if necessary.
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):             # <<<<<<<<<<<<<<
 *   if s is None or isinstance(s, bytes):
 *     return s
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("str_to_bytes", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":19
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):             # <<<<<<<<<<<<<<
 *     return s
 *   elif isinstance(s, unicode):
*/
  __pyx_t_2 = (__pyx_v_s == Py_None);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyBytes_Check(__pyx_v_s); 
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":20
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):
 *     return s             # <<<<<<<<<<<<<<
 *   elif isinstance(s, unicode):
 *     return s.encode('ascii')
*/
    __Pyx_XDECREF(__pyx_r);
    if (!(likely(PyBytes_CheckExact(__pyx_v_s))||((__pyx_v_s) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_s))) __PYX_ERR(2, 20, __pyx_L1_error)
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = ((PyObject*)__pyx_v_s);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":19
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):
 *   if s is None or isinstance(s, bytes):             # <<<<<<<<<<<<<<
 *     return s
 *   elif isinstance(s, unicode):
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":21
 *   if s is None or isinstance(s, bytes):
 *     return s
 *   elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
 *     return s.encode('ascii')
 *   else:
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_s); 
  if (likely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":22
 *     return s
 *   elif isinstance(s, unicode):
 *     return s.encode('ascii')             # <<<<<<<<<<<<<<
 *   else:
 *     raise TypeError('Expected bytes, str, or unicode, not {}'.format(type(s)))
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __pyx_v_s;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascii};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 22, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(2, 22, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":21
 *   if s is None or isinstance(s, bytes):
 *     return s
 *   elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
 *     return s.encode('ascii')
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":24
 *     return s.encode('ascii')
 *   else:
 *     raise TypeError('Expected bytes, str, or unicode, not {}'.format(type(s)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_6 = __pyx_builtin_TypeError; 
    __pyx_t_8 = __pyx_mstate_global->__pyx_kp_u_Expected_bytes_str_or_unicode_no;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, ((PyObject *)Py_TYPE(__pyx_v_s))};
      __pyx_t_7 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 24, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 24, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 24, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":18
 * # This function will ascii encode unicode string inputs if necessary.
 * # In Python3, unicode strings are the default str type.
 * cdef bytes str_to_bytes(object s):             # <<<<<<<<<<<<<<
 *   if s is None or isinstance(s, bytes):
 *     return s
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.str_to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":32
 * # parameter rather than "object"), but would it be nice for our users? Right
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):             # <<<<<<<<<<<<<<
 *   if string_or_none is None:
 *     return b''
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__encode(PyObject *__pyx_v_string_or_none) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_encode", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":33
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:             # <<<<<<<<<<<<<<
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
*/
  __pyx_t_1 = (__pyx_v_string_or_none == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":34
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:
 *     return b''             # <<<<<<<<<<<<<<
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_);
    __pyx_r = __pyx_mstate_global->__pyx_kp_b_;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":33
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):
 *   if string_or_none is None:             # <<<<<<<<<<<<<<
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":35
 *   if string_or_none is None:
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):             # <<<<<<<<<<<<<<
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
*/
  __pyx_t_1 = PyBytes_Check(__pyx_v_string_or_none); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":36
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none             # <<<<<<<<<<<<<<
 *   elif isinstance(string_or_none, (unicode,)):
 *     return string_or_none.encode('utf8')
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_string_or_none));
    __pyx_r = ((PyObject*)__pyx_v_string_or_none);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":35
 *   if string_or_none is None:
 *     return b''
 *   elif isinstance(string_or_none, (bytes,)):             # <<<<<<<<<<<<<<
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":37
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):             # <<<<<<<<<<<<<<
 *     return string_or_none.encode('utf8')
 *   else:
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_string_or_none); 
  if (likely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":38
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):
 *     return string_or_none.encode('utf8')             # <<<<<<<<<<<<<<
 *   else:
 *     raise TypeError('Expected str, not {}'.format(type(string_or_none)))
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_v_string_or_none;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_n_u_utf8};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 38, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(2, 38, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":37
 *   elif isinstance(string_or_none, (bytes,)):
 *     return <bytes>string_or_none
 *   elif isinstance(string_or_none, (unicode,)):             # <<<<<<<<<<<<<<
 *     return string_or_none.encode('utf8')
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":40
 *     return string_or_none.encode('utf8')
 *   else:
 *     raise TypeError('Expected str, not {}'.format(type(string_or_none)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_5 = __pyx_builtin_TypeError; 
    __pyx_t_7 = __pyx_mstate_global->__pyx_kp_u_Expected_str_not;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, ((PyObject *)Py_TYPE(__pyx_v_string_or_none))};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(2, 40, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":32
 * # parameter rather than "object"), but would it be nice for our users? Right
 * # now we haven't yet heard from enough users to know one way or another.
 * cdef bytes _encode(object string_or_none):             # <<<<<<<<<<<<<<
 *   if string_or_none is None:
 *     return b''
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._encode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":43
 * 
 * 
 * cdef str _decode(bytes bytestring):             # <<<<<<<<<<<<<<
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__decode(PyObject *__pyx_v_bytestring) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  size_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_decode", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":44
 * 
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):             # <<<<<<<<<<<<<<
 *         return <str>bytestring
 *     else:
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_bytestring); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":45
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring             # <<<<<<<<<<<<<<
 *     else:
 *         try:
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_bytestring));
    __pyx_r = ((PyObject*)__pyx_v_bytestring);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":44
 * 
 * cdef str _decode(bytes bytestring):
 *     if isinstance(bytestring, (str,)):             # <<<<<<<<<<<<<<
 *         return <str>bytestring
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
*/
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":48
 *     else:
 *         try:
 *             return bytestring.decode('utf8')             # <<<<<<<<<<<<<<
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
*/
        __Pyx_XDECREF(__pyx_r);
        if (unlikely(__pyx_v_bytestring == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
          __PYX_ERR(2, 48, __pyx_L4_error)
        }
        __pyx_t_5 = __Pyx_decode_bytes(__pyx_v_bytestring, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 48, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_r = ((PyObject*)__pyx_t_5);
        __pyx_t_5 = 0;
        goto __pyx_L8_try_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
*/
      }
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":49
 *         try:
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
 *             return bytestring.decode('latin1')
*/
      __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
      if (__pyx_t_6) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(2, 49, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":50
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)             # <<<<<<<<<<<<<<
 *             return bytestring.decode('latin1')
*/
        __pyx_t_10 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 50, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 50, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_13 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_Invalid_encoding_on_s, __pyx_v_bytestring};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 50, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":51
 *         except UnicodeDecodeError:
 *             _LOGGER.exception('Invalid encoding on %s', bytestring)
 *             return bytestring.decode('latin1')             # <<<<<<<<<<<<<<
*/
        __Pyx_XDECREF(__pyx_r);
        if (unlikely(__pyx_v_bytestring == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
          __PYX_ERR(2, 51, __pyx_L6_except_error)
        }
        __pyx_t_9 = __Pyx_decode_bytes(__pyx_v_bytestring, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 51, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_r = ((PyObject*)__pyx_t_9);
        __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L7_except_return;
      }
      goto __pyx_L6_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":47
 *         return <str>bytestring
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return bytestring.decode('utf8')
 *         except UnicodeDecodeError:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L1_error;
      __pyx_L8_try_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
      __pyx_L7_except_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_string.pyx.pxi":43
 * 
 * 
 * cdef str _decode(bytes bytestring):             # <<<<<<<<<<<<<<
 *     if isinstance(bytestring, (str,)):
 *         return <str>bytestring
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_arg_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_arg_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._GrpcArgWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":21
 * 
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):             # <<<<<<<<<<<<<<
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__wrap_grpc_arg(grpc_arg __pyx_v_arg) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_wrapped = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_wrap_grpc_arg", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":22
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):
 *   wrapped = _GrpcArgWrapper()             # <<<<<<<<<<<<<<
 *   wrapped.arg = arg
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_wrapped = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":23
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg             # <<<<<<<<<<<<<<
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)
 * 
*/
  __pyx_v_wrapped->arg = __pyx_v_arg;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":24
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
 *   return ("grpc.python._cygrpc._GrpcArgWrapper", wrapped)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_grpc_python__cygrpc__GrpcArgWrap);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_grpc_python__cygrpc__GrpcArgWrap);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_kp_u_grpc_python__cygrpc__GrpcArgWrap) != (0)) __PYX_ERR(3, 24, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_wrapped);
  __Pyx_GIVEREF((PyObject *)__pyx_v_wrapped);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_wrapped)) != (0)) __PYX_ERR(3, 24, __pyx_L1_error);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":21
 * 
 * 
 * cdef tuple _wrap_grpc_arg(grpc_arg arg):             # <<<<<<<<<<<<<<
 *   wrapped = _GrpcArgWrapper()
 *   wrapped.arg = arg
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._wrap_grpc_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wrapped);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":27
 * 
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):             # <<<<<<<<<<<<<<
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg
*/

static grpc_arg __pyx_f_4grpc_7_cython_6cygrpc__unwrap_grpc_arg(PyObject *__pyx_v_wrapped_arg) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *__pyx_v_wrapped = 0;
  grpc_arg __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_unwrap_grpc_arg", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":28
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]             # <<<<<<<<<<<<<<
 *   return wrapped.arg
 * 
*/
  if (unlikely(__pyx_v_wrapped_arg == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(3, 28, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_wrapped_arg, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper))))) __PYX_ERR(3, 28, __pyx_L1_error)
  __pyx_v_wrapped = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":29
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_wrapped->arg;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":27
 * 
 * 
 * cdef grpc_arg _unwrap_grpc_arg(tuple wrapped_arg):             # <<<<<<<<<<<<<<
 *   cdef _GrpcArgWrapper wrapped = wrapped_arg[1]
 *   return wrapped.arg
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._unwrap_grpc_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_wrapped);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":34
 * cdef class _ChannelArg:
 * 
 *   cdef void c(self, argument, references) except *:             # <<<<<<<<<<<<<<
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, PyObject *__pyx_v_argument, PyObject *__pyx_v_references) {
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_encoded_key = 0;
  PyObject *__pyx_v_encoded_value = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_t_6;
  char *__pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  grpc_arg __pyx_t_10;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  size_t __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":35
 * 
 *   cdef void c(self, argument, references) except *:
 *     key, value = argument             # <<<<<<<<<<<<<<
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:
*/
  if ((likely(PyTuple_CheckExact(__pyx_v_argument))) || (PyList_CheckExact(__pyx_v_argument))) {
    PyObject* sequence = __pyx_v_argument;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(3, 35, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_2);
    } else {
      __pyx_t_1 = __Pyx_PyList_GetItemRef(sequence, 0);
      if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyList_GetItemRef(sequence, 1);
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 35, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_2);
    }
    #else
    __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3);
    index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) __PYX_ERR(3, 35, __pyx_L1_error)
    __pyx_t_4 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(3, 35, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_key = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_v_value = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":36
 *   cdef void c(self, argument, references) except *:
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)             # <<<<<<<<<<<<<<
 *     if encoded_key is not key:
 *       references.append(encoded_key)
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_encoded_key = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":37
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:             # <<<<<<<<<<<<<<
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
*/
  __pyx_t_5 = (__pyx_v_encoded_key != ((PyObject*)__pyx_v_key));
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":38
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:
 *       references.append(encoded_key)             # <<<<<<<<<<<<<<
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):
*/
    __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_references, __pyx_v_encoded_key); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 38, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":37
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
 *     if encoded_key is not key:             # <<<<<<<<<<<<<<
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":39
 *     if encoded_key is not key:
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key             # <<<<<<<<<<<<<<
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER
*/
  if (unlikely(__pyx_v_encoded_key == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(3, 39, __pyx_L1_error)
  }
  __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoded_key); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(3, 39, __pyx_L1_error)
  __pyx_v_self->c_argument.key = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":40
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
*/
  __pyx_t_5 = PyLong_Check(__pyx_v_value); 
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":41
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER             # <<<<<<<<<<<<<<
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):
*/
    __pyx_v_self->c_argument.type = GRPC_ARG_INTEGER;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":42
 *     if isinstance(value, int):
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value             # <<<<<<<<<<<<<<
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING
*/
    __pyx_t_8 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 42, __pyx_L1_error)
    __pyx_v_self->c_argument.value.integer = __pyx_t_8;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":40
 *       references.append(encoded_key)
 *     self.c_argument.key = encoded_key
 *     if isinstance(value, int):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
*/
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":43
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
*/
  __pyx_t_9 = PyBytes_Check(__pyx_v_value); 
  if (!__pyx_t_9) {
  } else {
    __pyx_t_5 = __pyx_t_9;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_9 = PyUnicode_Check(__pyx_v_value); 
  __pyx_t_5 = __pyx_t_9;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":44
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING             # <<<<<<<<<<<<<<
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:
*/
    __pyx_v_self->c_argument.type = GRPC_ARG_STRING;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":45
 *     elif isinstance(value, (bytes, str, unicode,)):
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)             # <<<<<<<<<<<<<<
 *       if encoded_value is not value:
 *         references.append(encoded_value)
*/
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 45, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_encoded_value = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":46
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:             # <<<<<<<<<<<<<<
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
*/
    __pyx_t_5 = (__pyx_v_encoded_value != ((PyObject*)__pyx_v_value));
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":47
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:
 *         references.append(encoded_value)             # <<<<<<<<<<<<<<
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):
*/
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_references, __pyx_v_encoded_value); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 47, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":46
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
 *       if encoded_value is not value:             # <<<<<<<<<<<<<<
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":48
 *       if encoded_value is not value:
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value             # <<<<<<<<<<<<<<
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
*/
    if (unlikely(__pyx_v_encoded_value == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(3, 48, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoded_value); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(3, 48, __pyx_L1_error)
    __pyx_v_self->c_argument.value.string = __pyx_t_7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":43
 *       self.c_argument.type = GRPC_ARG_INTEGER
 *       self.c_argument.value.integer = value
 *     elif isinstance(value, (bytes, str, unicode,)):             # <<<<<<<<<<<<<<
 *       self.c_argument.type = GRPC_ARG_STRING
 *       encoded_value = _encode(value)
*/
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":49
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):             # <<<<<<<<<<<<<<
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):
*/
  __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_value, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper); 
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":50
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg             # <<<<<<<<<<<<<<
 *     elif hasattr(value, '__int__'):
 *       # Pointer objects must override __int__() to return
*/
    __pyx_t_10 = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)__pyx_v_value)->arg;
    __pyx_v_self->c_argument = __pyx_t_10;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":49
 *         references.append(encoded_value)
 *       self.c_argument.value.string = encoded_value
 *     elif isinstance(value, _GrpcArgWrapper):             # <<<<<<<<<<<<<<
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):
*/
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":51
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):             # <<<<<<<<<<<<<<
 *       # Pointer objects must override __int__() to return
 *       # the underlying C address (Python ints are word size). The
*/
  __pyx_t_5 = __Pyx_HasAttr(__pyx_v_value, __pyx_mstate_global->__pyx_n_u_int); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 51, __pyx_L1_error)
  if (likely(__pyx_t_5)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":56
 *       # lifecycle of the pointer is fixed to the lifecycle of the
 *       # python object wrapping it.
 *       self.c_argument.type = GRPC_ARG_POINTER             # <<<<<<<<<<<<<<
 *       self.c_argument.value.pointer.vtable = &default_vtable
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
*/
    __pyx_v_self->c_argument.type = GRPC_ARG_POINTER;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":57
 *       # python object wrapping it.
 *       self.c_argument.type = GRPC_ARG_POINTER
 *       self.c_argument.value.pointer.vtable = &default_vtable             # <<<<<<<<<<<<<<
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 *     else:
*/
    __pyx_v_self->c_argument.value.pointer.vtable = (&__pyx_v_4grpc_7_cython_6cygrpc_default_vtable);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":58
 *       self.c_argument.type = GRPC_ARG_POINTER
 *       self.c_argument.value.pointer.vtable = &default_vtable
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))             # <<<<<<<<<<<<<<
 *     else:
 *       raise TypeError(
*/
    __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = PyLong_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 58, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_self->c_argument.value.pointer.p = ((void *)((__pyx_t_4grpc_7_cython_6cygrpc_intptr_t)__pyx_t_11));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":51
 *     elif isinstance(value, _GrpcArgWrapper):
 *       self.c_argument = (<_GrpcArgWrapper>value).arg
 *     elif hasattr(value, '__int__'):             # <<<<<<<<<<<<<<
 *       # Pointer objects must override __int__() to return
 *       # the underlying C address (Python ints are word size). The
*/
    goto __pyx_L6;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":60
 *       self.c_argument.value.pointer.address = <void*>(<intptr_t>int(value))
 *     else:
 *       raise TypeError(             # <<<<<<<<<<<<<<
 *           'Expected int, bytes, or behavior, got {}'.format(type(value)))
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_3 = __pyx_builtin_TypeError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":61
 *     else:
 *       raise TypeError(
 *           'Expected int, bytes, or behavior, got {}'.format(type(value)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_13 = __pyx_mstate_global->__pyx_kp_u_Expected_int_bytes_or_behavior_g;
    __Pyx_INCREF(__pyx_t_13);
    __pyx_t_14 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_13, ((PyObject *)Py_TYPE(__pyx_v_value))};
      __pyx_t_12 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 61, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
    }
    __pyx_t_14 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_12};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 60, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 60, __pyx_L1_error)
  }
  __pyx_L6:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":34
 * cdef class _ChannelArg:
 * 
 *   cdef void c(self, argument, references) except *:             # <<<<<<<<<<<<<<
 *     key, value = argument
 *     cdef bytes encoded_key = _encode(key)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_encoded_key);
  __Pyx_XDECREF(__pyx_v_encoded_value);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_argument_cannot_be_conver, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11_ChannelArg_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_argument_cannot_be_conver, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArg.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":66
 * cdef class _ChannelArgs:
 * 
 *   def __cinit__(self, arguments):             # <<<<<<<<<<<<<<
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arguments = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_arguments,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(3, 66, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 66, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(3, 66, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(3, 66, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 66, __pyx_L3_error)
    }
    __pyx_v_arguments = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 66, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self), __pyx_v_arguments);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, PyObject *__pyx_v_arguments) {
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_v_argument = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *__pyx_v_channel_arg = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  grpc_arg __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":67
 * 
 *   def __cinit__(self, arguments):
 *     self._arguments = () if arguments is None else tuple(arguments)             # <<<<<<<<<<<<<<
 *     self._channel_args = []
 *     self._references = []
*/
  __pyx_t_2 = (__pyx_v_arguments == Py_None);
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
    __pyx_t_1 = __pyx_mstate_global->__pyx_empty_tuple;
  } else {
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_arguments); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_arguments);
  __Pyx_DECREF(__pyx_v_self->_arguments);
  __pyx_v_self->_arguments = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":68
 *   def __cinit__(self, arguments):
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []             # <<<<<<<<<<<<<<
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_channel_args);
  __Pyx_DECREF(__pyx_v_self->_channel_args);
  __pyx_v_self->_channel_args = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":69
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
 *     self._references = []             # <<<<<<<<<<<<<<
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_references);
  __Pyx_DECREF(__pyx_v_self->_references);
  __pyx_v_self->_references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":70
 *     self._channel_args = []
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments_length != 0:
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
*/
  __pyx_t_1 = __pyx_v_self->_arguments;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 70, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(3, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->_c_arguments.num_args = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":71
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:             # <<<<<<<<<<<<<<
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
*/
  __pyx_t_2 = (__pyx_v_self->_c_arguments.num_args != 0);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":72
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(             # <<<<<<<<<<<<<<
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):
*/
    __pyx_v_self->_c_arguments.args = ((grpc_arg *)gpr_malloc((__pyx_v_self->_c_arguments.num_args * (sizeof(grpc_arg)))));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":74
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):             # <<<<<<<<<<<<<<
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
    __pyx_t_1 = __pyx_mstate_global->__pyx_int_0;
    __pyx_t_3 = __pyx_v_self->_arguments; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 74, __pyx_L1_error)
        #endif
        if (__pyx_t_4 >= __pyx_temp) break;
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4));
      #else
      __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_4);
      #endif
      ++__pyx_t_4;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_argument, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_1);
      __pyx_t_5 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":75
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):
 *         channel_arg = _ChannelArg()             # <<<<<<<<<<<<<<
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
*/
      __pyx_t_6 = NULL;
      __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg);
      __pyx_t_7 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg); 
      __pyx_t_8 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 75, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_channel_arg, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":76
 *       for index, argument in enumerate(self._arguments):
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)             # <<<<<<<<<<<<<<
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
 *         self._channel_args.append(channel_arg)
*/
      __pyx_t_5 = __pyx_v_self->_references;
      __Pyx_INCREF(__pyx_t_5);
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg *)__pyx_v_channel_arg->__pyx_vtab)->c(__pyx_v_channel_arg, __pyx_v_argument, __pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 76, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":77
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument             # <<<<<<<<<<<<<<
 *         self._channel_args.append(channel_arg)
 * 
*/
      __pyx_t_9 = __pyx_v_channel_arg->c_argument;
      __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 77, __pyx_L1_error)
      (__pyx_v_self->_c_arguments.args[__pyx_t_10]) = __pyx_t_9;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":78
 *         channel_arg.c(argument, self._references)
 *         self._c_arguments.arguments[index] = channel_arg.c_argument
 *         self._channel_args.append(channel_arg)             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_args *c_args(self) except *:
*/
      if (unlikely(__pyx_v_self->_channel_args == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
        __PYX_ERR(3, 78, __pyx_L1_error)
      }
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_self->_channel_args, ((PyObject *)__pyx_v_channel_arg)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(3, 78, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":74
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
 *       for index, argument in enumerate(self._arguments):             # <<<<<<<<<<<<<<
 *         channel_arg = _ChannelArg()
 *         channel_arg.c(argument, self._references)
*/
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":71
 *     self._references = []
 *     self._c_arguments.arguments_length = len(self._arguments)
 *     if self._c_arguments.arguments_length != 0:             # <<<<<<<<<<<<<<
 *       self._c_arguments.arguments = <grpc_arg *>gpr_malloc(
 *           self._c_arguments.arguments_length * sizeof(grpc_arg))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":66
 * cdef class _ChannelArgs:
 * 
 *   def __cinit__(self, arguments):             # <<<<<<<<<<<<<<
 *     self._arguments = () if arguments is None else tuple(arguments)
 *     self._channel_args = []
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XDECREF(__pyx_v_argument);
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_arg);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":80
 *         self._channel_args.append(channel_arg)
 * 
 *   cdef grpc_channel_args *c_args(self) except *:             # <<<<<<<<<<<<<<
 *     return &self._c_arguments
 * 
*/

static grpc_channel_args *__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  grpc_channel_args *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":81
 * 
 *   cdef grpc_channel_args *c_args(self) except *:
 *     return &self._c_arguments             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __pyx_r = (&__pyx_v_self->_c_arguments);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":80
 *         self._channel_args.append(channel_arg)
 * 
 *   cdef grpc_channel_args *c_args(self) except *:             # <<<<<<<<<<<<<<
 *     return &self._c_arguments
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":83
 *     return &self._c_arguments
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":84
 * 
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:             # <<<<<<<<<<<<<<
 *       gpr_free(self._c_arguments.arguments)
*/
  __pyx_t_1 = (__pyx_v_self->_c_arguments.args != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":85
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)             # <<<<<<<<<<<<<<
*/
    gpr_free(__pyx_v_self->_c_arguments.args);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":84
 * 
 *   def __dealloc__(self):
 *     if self._c_arguments.arguments != NULL:             # <<<<<<<<<<<<<<
 *       gpr_free(self._c_arguments.arguments)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pyx.pxi":83
 *     return &self._c_arguments
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._c_arguments.arguments != NULL:
 *       gpr_free(self._c_arguments.arguments)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":31
 * cdef class _ChannelArgs:
 * 
 *   cdef readonly tuple _arguments             # <<<<<<<<<<<<<<
 *   cdef list _channel_args
 *   cdef readonly list _references
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_arguments);
  __pyx_r = __pyx_v_self->_arguments;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/arguments.pxd.pxi":33
 *   cdef readonly tuple _arguments
 *   cdef list _channel_args
 *   cdef readonly list _references             # <<<<<<<<<<<<<<
 *   cdef grpc_channel_args _c_arguments
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_references);
  __pyx_r = __pyx_v_self->_references;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12_ChannelArgs_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelArgs.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":18
 * cdef class Call:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_4Call___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":20
 *   def __cinit__(self):
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_call = NULL
 *     self.references = []
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":21
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
 *     self.c_call = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 * 
*/
  __pyx_v_self->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":22
 *     fork_handlers_and_grpc_init()
 *     self.c_call = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 * 
 *   def _start_batch(self, operations, tag, retain_self):
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":18
 * cdef class Call:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     # Create an *empty* call
 *     fork_handlers_and_grpc_init()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_3_start_batch = {"_start_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  PyObject *__pyx_v_retain_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_tag,&__pyx_mstate_global->__pyx_n_u_retain_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 24, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_start_batch", 0) < 0) __PYX_ERR(4, 24, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_start_batch", 1, 3, 3, i); __PYX_ERR(4, 24, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 24, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 24, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 24, __pyx_L3_error)
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
    __pyx_v_retain_self = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_start_batch", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._start_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag, __pyx_v_retain_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_2_start_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag, PyObject *__pyx_v_retain_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_batch_operation_tag = 0;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_start_batch", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":25
 * 
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_is_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(4, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":26
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")             # <<<<<<<<<<<<<<
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_invalid_call_object_cannot_be_us};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 26, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 26, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":25
 * 
 *   def _start_batch(self, operations, tag, retain_self):
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":27
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(             # <<<<<<<<<<<<<<
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()
*/
  __pyx_t_5 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":28
 *       raise ValueError("invalid call object cannot be used from Python")
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)             # <<<<<<<<<<<<<<
 *     batch_operation_tag.prepare()
 *     cpython.Py_INCREF(batch_operation_tag)
*/
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_retain_self); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(4, 28, __pyx_L1_error)
  if (__pyx_t_3) {
    __Pyx_INCREF((PyObject *)__pyx_v_self);
    __pyx_t_7 = ((PyObject *)__pyx_v_self);
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_7 = Py_None;
  }
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_v_tag, __pyx_v_operations, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_batch_operation_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":29
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_batch_operation_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 29, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":30
 *         tag, operations, self if retain_self else None)
 *     batch_operation_tag.prepare()
 *     cpython.Py_INCREF(batch_operation_tag)             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error error
 *     with nogil:
*/
  Py_INCREF(((PyObject *)__pyx_v_batch_operation_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":32
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
 *     with nogil:             # <<<<<<<<<<<<<<
 *       error = grpc_call_start_batch(
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":33
 *     cdef grpc_call_error error
 *     with nogil:
 *       error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 *           <cpython.PyObject *>batch_operation_tag, NULL)
*/
        __pyx_v_error = grpc_call_start_batch(__pyx_v_self->c_call, __pyx_v_batch_operation_tag->c_ops, __pyx_v_batch_operation_tag->c_nops, ((PyObject *)__pyx_v_batch_operation_tag), NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":32
 *     cpython.Py_INCREF(batch_operation_tag)
 *     cdef grpc_call_error error
 *     with nogil:             # <<<<<<<<<<<<<<
 *       error = grpc_call_start_batch(
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":36
 *           self.c_call, batch_operation_tag.c_ops, batch_operation_tag.c_nops,
 *           <cpython.PyObject *>batch_operation_tag, NULL)
 *     return error             # <<<<<<<<<<<<<<
 * 
 *   def start_client_batch(self, operations, tag):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._start_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_batch_operation_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_5start_client_batch = {"start_client_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start_client_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 38, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 38, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 38, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "start_client_batch", 0) < 0) __PYX_ERR(4, 38, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("start_client_batch", 1, 2, 2, i); __PYX_ERR(4, 38, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 38, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 38, __pyx_L3_error)
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start_client_batch", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 38, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_client_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_4start_client_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start_client_batch", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":41
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
 *     return self._start_batch(operations, tag, False)             # <<<<<<<<<<<<<<
 * 
 *   def start_server_batch(self, operations, tag):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_operations, __pyx_v_tag, Py_False};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start_batch, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_client_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_7start_server_batch = {"start_server_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start_server_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 43, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 43, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 43, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "start_server_batch", 0) < 0) __PYX_ERR(4, 43, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("start_server_batch", 1, 2, 2, i); __PYX_ERR(4, 43, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 43, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 43, __pyx_L3_error)
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start_server_batch", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 43, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_server_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_6start_server_batch(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start_server_batch", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":44
 * 
 *   def start_server_batch(self, operations, tag):
 *     return self._start_batch(operations, tag, True)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_operations, __pyx_v_tag, Py_True};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start_batch, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.start_server_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_9cancel = {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_status_code __pyx_v_error_code;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_error_code,&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 46, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "cancel", 0) < 0) __PYX_ERR(4, 46, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":48
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):             # <<<<<<<<<<<<<<
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
*/
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    if (values[0]) {
      __pyx_v_error_code = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 47, __pyx_L3_error)
    } else {
      __pyx_v_error_code = __pyx_mstate_global->__pyx_k__2;
    }
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 0, 0, 2, __pyx_nargs); __PYX_ERR(4, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_error_code, __pyx_v_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, grpc_status_code __pyx_v_error_code, PyObject *__pyx_v_details) {
  grpc_call_error __pyx_v_result;
  char *__pyx_v_c_details;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  char *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 0);
  __Pyx_INCREF(__pyx_v_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":49
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
 *     details = str_to_bytes(details)             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_details, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":50
 *       details=None):
 *     details = str_to_bytes(details)
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_is_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":51
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")             # <<<<<<<<<<<<<<
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 *       raise ValueError("if error_code is specified, so must details "
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_invalid_call_object_cannot_be_us};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 51, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":50
 *       details=None):
 *     details = str_to_bytes(details)
 *     if not self.is_valid:             # <<<<<<<<<<<<<<
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":52
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):             # <<<<<<<<<<<<<<
 *       raise ValueError("if error_code is specified, so must details "
 *                        "(and vice-versa)")
*/
  __pyx_t_3 = (__pyx_v_details == Py_None);
  __pyx_t_2 = (__pyx_t_3 != (__pyx_v_error_code == GRPC_STATUS__DO_NOT_USE));
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":53
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):
 *       raise ValueError("if error_code is specified, so must details "             # <<<<<<<<<<<<<<
 *                        "(and vice-versa)")
 *     cdef grpc_call_error result
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_if_error_code_is_specified_so_mu};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 53, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(4, 53, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":52
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
 *     if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE):             # <<<<<<<<<<<<<<
 *       raise ValueError("if error_code is specified, so must details "
 *                        "(and vice-versa)")
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":56
 *                        "(and vice-versa)")
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL             # <<<<<<<<<<<<<<
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)
*/
  __pyx_v_c_details = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":57
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:             # <<<<<<<<<<<<<<
 *       self.references.append(details)
 *       c_details = details
*/
  __pyx_t_2 = (__pyx_v_error_code != GRPC_STATUS__DO_NOT_USE);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":58
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)             # <<<<<<<<<<<<<<
 *       c_details = details
 *       with nogil:
*/
    if (unlikely(__pyx_v_self->references == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(4, 58, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_details); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(4, 58, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":59
 *     if error_code != GRPC_STATUS__DO_NOT_USE:
 *       self.references.append(details)
 *       c_details = details             # <<<<<<<<<<<<<<
 *       with nogil:
 *         result = grpc_call_cancel_with_status(
*/
    __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_details); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(4, 59, __pyx_L1_error)
    __pyx_v_c_details = __pyx_t_8;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":60
 *       self.references.append(details)
 *       c_details = details
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":61
 *       c_details = details
 *       with nogil:
 *         result = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             self.c_call, error_code, c_details, NULL)
 *       return result
*/
          __pyx_v_result = grpc_call_cancel_with_status(__pyx_v_self->c_call, __pyx_v_error_code, __pyx_v_c_details, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":60
 *       self.references.append(details)
 *       c_details = details
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L8;
          }
          __pyx_L8:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":63
 *         result = grpc_call_cancel_with_status(
 *             self.c_call, error_code, c_details, NULL)
 *       return result             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":57
 *     cdef grpc_call_error result
 *     cdef char *c_details = NULL
 *     if error_code != GRPC_STATUS__DO_NOT_USE:             # <<<<<<<<<<<<<<
 *       self.references.append(details)
 *       c_details = details
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":65
 *       return result
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result
*/
  /*else*/ {
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":66
 *     else:
 *       with nogil:
 *         result = grpc_call_cancel(self.c_call, NULL)             # <<<<<<<<<<<<<<
 *       return result
 * 
*/
          __pyx_v_result = grpc_call_cancel(__pyx_v_self->c_call, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":65
 *       return result
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L11;
          }
          __pyx_L11:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":67
 *       with nogil:
 *         result = grpc_call_cancel(self.c_call, NULL)
 *       return result             # <<<<<<<<<<<<<<
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_details);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_11set_credentials = {"set_credentials", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_credentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 69, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_credentials", 0) < 0) __PYX_ERR(4, 69, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_credentials", 1, 1, 1, i); __PYX_ERR(4, 69, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 69, __pyx_L3_error)
    }
    __pyx_v_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_credentials", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.set_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 0, "call_credentials", 0))) __PYX_ERR(4, 69, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_call_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_10set_credentials(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials) {
  grpc_call_credentials *__pyx_v_c_call_credentials;
  grpc_call_error __pyx_v_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_call_credentials *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_credentials", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":70
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 *         self.c_call, c_call_credentials)
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_call_credentials->__pyx_vtab)->c(__pyx_v_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 70, __pyx_L1_error)
  __pyx_v_c_call_credentials = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":71
 *   def set_credentials(self, CallCredentials call_credentials not None):
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(             # <<<<<<<<<<<<<<
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)
*/
  __pyx_v_call_error = grpc_call_set_credentials(__pyx_v_self->c_call, __pyx_v_c_call_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":73
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)             # <<<<<<<<<<<<<<
 *     return call_error
 * 
*/
  grpc_call_credentials_release(__pyx_v_c_call_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":74
 *         self.c_call, c_call_credentials)
 *     grpc_call_credentials_release(c_call_credentials)
 *     return call_error             # <<<<<<<<<<<<<<
 * 
 *   def peer(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.set_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_13peer = {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_12peer(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  char *__pyx_v_peer;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":77
 * 
 *   def peer(self):
 *     cdef char *peer = NULL             # <<<<<<<<<<<<<<
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)
*/
  __pyx_v_peer = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":78
 *   def peer(self):
 *     cdef char *peer = NULL
 *     with nogil:             # <<<<<<<<<<<<<<
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":79
 *     cdef char *peer = NULL
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)             # <<<<<<<<<<<<<<
 *     result = <bytes>peer
 *     with nogil:
*/
        __pyx_v_peer = grpc_call_get_peer(__pyx_v_self->c_call);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":78
 *   def peer(self):
 *     cdef char *peer = NULL
 *     with nogil:             # <<<<<<<<<<<<<<
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":80
 *     with nogil:
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer             # <<<<<<<<<<<<<<
 *     with nogil:
 *       gpr_free(peer)
*/
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_peer); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":81
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 *     with nogil:             # <<<<<<<<<<<<<<
 *       gpr_free(peer)
 *     return result
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":82
 *     result = <bytes>peer
 *     with nogil:
 *       gpr_free(peer)             # <<<<<<<<<<<<<<
 *     return result
 * 
*/
        gpr_free(__pyx_v_peer);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":81
 *       peer = grpc_call_get_peer(self.c_call)
 *     result = <bytes>peer
 *     with nogil:             # <<<<<<<<<<<<<<
 *       gpr_free(peer)
 *     return result
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L8;
        }
        __pyx_L8:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":83
 *     with nogil:
 *       gpr_free(peer)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":85
 *     return result
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       if self.c_call != NULL:
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_4Call_14__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":86
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":87
 *   def __dealloc__(self):
 *     with nogil:
 *       if self.c_call != NULL:             # <<<<<<<<<<<<<<
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()
*/
        __pyx_t_1 = (__pyx_v_self->c_call != NULL);
        if (__pyx_t_1) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":88
 *     with nogil:
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 * 
*/
          grpc_call_unref(__pyx_v_self->c_call);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":87
 *   def __dealloc__(self):
 *     with nogil:
 *       if self.c_call != NULL:             # <<<<<<<<<<<<<<
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":89
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
*/
        grpc_shutdown();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":86
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       if self.c_call != NULL:
 *         grpc_call_unref(self.c_call)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":85
 *     return result
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       if self.c_call != NULL:
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":92
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
 *   @property             # <<<<<<<<<<<<<<
 *   def is_valid(self):
 *     return self.c_call != NULL
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_8is_valid___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":94
 *   @property
 *   def is_valid(self):
 *     return self.c_call != NULL             # <<<<<<<<<<<<<<
 * 
 *   def _custom_op_on_c_call(self, int op):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->c_call != NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":92
 * 
 *   # The object *should* always be valid from Python. Used for debugging.
 *   @property             # <<<<<<<<<<<<<<
 *   def is_valid(self):
 *     return self.c_call != NULL
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.is_valid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call = {"_custom_op_on_c_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_op;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_custom_op_on_c_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_op,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(4, 96, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 96, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_custom_op_on_c_call", 0) < 0) __PYX_ERR(4, 96, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_custom_op_on_c_call", 1, 1, 1, i); __PYX_ERR(4, 96, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 96, __pyx_L3_error)
    }
    __pyx_v_op = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_op == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 96, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_custom_op_on_c_call", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 96, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v_op);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_16_custom_op_on_c_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, int __pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_custom_op_on_c_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":97
 * 
 *   def _custom_op_on_c_call(self, int op):
 *     return _custom_op_on_c_call(op, self.c_call)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(__pyx_v_op, __pyx_v_self->c_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4Call_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Call.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":22
 * 
 * 
 * cdef str _call_error_metadata(metadata):             # <<<<<<<<<<<<<<
 *   return 'metadata was invalid: %s' % metadata
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":23
 * 
 * cdef str _call_error_metadata(metadata):
 *   return 'metadata was invalid: %s' % metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_metadata_was_invalid_s, __pyx_v_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":22
 * 
 * 
 * cdef str _call_error_metadata(metadata):             # <<<<<<<<<<<<<<
 *   return 'metadata was invalid: %s' % metadata
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":26
 * 
 * 
 * cdef str _call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error_no_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":27
 * 
 * cdef str _call_error_no_metadata(c_call_error):
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INTERNAL_CALL_ERROR_MESSAGE_FOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Remainder(__pyx_t_1, __pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(12, 27, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":26
 * 
 * 
 * cdef str _call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":30
 * 
 * 
 * cdef str _call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call_error", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":31
 * 
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":32
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)             # <<<<<<<<<<<<<<
 *   else:
 *     return _call_error_no_metadata(c_call_error)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(__pyx_v_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":31
 * 
 * cdef str _call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":34
 *     return _call_error_metadata(metadata)
 *   else:
 *     return _call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":30
 * 
 * 
 * cdef str _call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":37
 * 
 * 
 * cdef _check_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_call_error_no_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":38
 * 
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_OK); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":39
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error             # <<<<<<<<<<<<<<
 *   else:
 *     return None
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_INTERNAL_CALL_ERROR_MESSAGE_FOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_2, __pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":38
 * 
 * cdef _check_call_error_no_metadata(c_call_error):
 *   if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":41
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
 *   else:
 *     return None             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":37
 * 
 * 
 * cdef _check_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   if c_call_error != GRPC_CALL_OK:
 *     return _INTERNAL_CALL_ERROR_MESSAGE_FORMAT % c_call_error
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":44
 * 
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  PyObject *__pyx_v_error = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_and_raise_call_error_no_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":45
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *   if error is not None:
 *     raise ValueError(error)
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_error = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":46
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:             # <<<<<<<<<<<<<<
 *     raise ValueError(error)
 * 
*/
  __pyx_t_2 = (__pyx_v_error != Py_None);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":47
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
 *     raise ValueError(error)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_error};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 47, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(12, 47, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":46
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:             # <<<<<<<<<<<<<<
 *     raise ValueError(error)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":44
 * 
 * 
 * cdef _check_and_raise_call_error_no_metadata(c_call_error):             # <<<<<<<<<<<<<<
 *   error = _check_call_error_no_metadata(c_call_error)
 *   if error is not None:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_and_raise_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_error);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":50
 * 
 * 
 * cdef _check_call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__check_call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_check_call_error", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":51
 * 
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_c_call_error, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(12, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":52
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)             # <<<<<<<<<<<<<<
 *   else:
 *     return _check_call_error_no_metadata(c_call_error)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_metadata(__pyx_v_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 52, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":51
 * 
 * cdef _check_call_error(c_call_error, metadata):
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:             # <<<<<<<<<<<<<<
 *     return _call_error_metadata(metadata)
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":54
 *     return _call_error_metadata(metadata)
 *   else:
 *     return _check_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 54, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":50
 * 
 * 
 * cdef _check_call_error(c_call_error, metadata):             # <<<<<<<<<<<<<<
 *   if c_call_error == GRPC_CALL_ERROR_INVALID_METADATA:
 *     return _call_error_metadata(metadata)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._check_call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":57
 * 
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error_no_metadata(c_call_error))
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(PyObject *__pyx_v_c_call_error) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_raise_call_error_no_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":58
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:
 *   raise ValueError(_call_error_no_metadata(c_call_error))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_ValueError);
  __pyx_t_3 = __pyx_builtin_ValueError; 
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__call_error_no_metadata(__pyx_v_c_call_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(12, 58, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":57
 * 
 * 
 * cdef void _raise_call_error_no_metadata(c_call_error) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error_no_metadata(c_call_error))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._raise_call_error_no_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":61
 * 
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error(c_call_error, metadata))
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(PyObject *__pyx_v_c_call_error, PyObject *__pyx_v_metadata) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_raise_call_error", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":62
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:
 *   raise ValueError(_call_error(c_call_error, metadata))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_ValueError);
  __pyx_t_3 = __pyx_builtin_ValueError; 
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__call_error(__pyx_v_c_call_error, __pyx_v_metadata); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 62, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(12, 62, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":61
 * 
 * 
 * cdef void _raise_call_error(c_call_error, metadata) except *:             # <<<<<<<<<<<<<<
 *   raise ValueError(_call_error(c_call_error, metadata))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._raise_call_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":65
 * 
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(grpc_completion_queue *__pyx_v_c_completion_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_destroy_c_completion_queue", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":66
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):
 *   grpc_completion_queue_shutdown(c_completion_queue)             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_destroy(c_completion_queue)
 * 
*/
  grpc_completion_queue_shutdown(__pyx_v_c_completion_queue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":67
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_completion_queue_destroy(__pyx_v_c_completion_queue);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":65
 * 
 * 
 * cdef _destroy_c_completion_queue(grpc_completion_queue *c_completion_queue):             # <<<<<<<<<<<<<<
 *   grpc_completion_queue_shutdown(c_completion_queue)
 *   grpc_completion_queue_destroy(c_completion_queue)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":72
 * cdef class _CallState:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     self.due = set()
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":73
 * 
 *   def __cinit__(self):
 *     self.due = set()             # <<<<<<<<<<<<<<
 * 
 *   cdef void delete_call(self) except *:
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->due);
  __Pyx_DECREF(__pyx_v_self->due);
  __pyx_v_self->due = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":72
 * cdef class _CallState:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     self.due = set()
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":75
 *     self.due = set()
 * 
 *   cdef void delete_call(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_unref(self.c_call)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":76
 * 
 *   cdef void delete_call(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":77
 *   cdef void delete_call(self) except *:
 *     with nogil:
 *       grpc_call_unref(self.c_call)             # <<<<<<<<<<<<<<
 *     self.c_call = NULL
 * 
*/
        grpc_call_unref(__pyx_v_self->c_call);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":76
 * 
 *   cdef void delete_call(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":78
 *     with nogil:
 *       grpc_call_unref(self.c_call)
 *     self.c_call = NULL             # <<<<<<<<<<<<<<
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
*/
  __pyx_v_self->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":75
 *     self.due = set()
 * 
 *   cdef void delete_call(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_unref(self.c_call)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":80
 *     self.c_call = NULL
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name) {
  PyObject *__pyx_v_plugin = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_save_registered_method", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
*/
  /*with:*/ {
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_plugin); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 81, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = NULL;
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 81, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 81, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_3 = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":82
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         plugin.save_registered_method(method_name)
 * 
*/
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(12, 82, __pyx_L7_error)
          if (__pyx_t_11) {
          } else {
            __pyx_t_10 = __pyx_t_11;
            goto __pyx_L14_bool_binop_done;
          }
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_mstate_global->__pyx_n_u_observability_enabled); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 82, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(12, 82, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_10 = __pyx_t_11;
          __pyx_L14_bool_binop_done:;
          if (__pyx_t_10) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":83
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)             # <<<<<<<<<<<<<<
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
*/
            __pyx_t_1 = __pyx_v_plugin;
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_5 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_method_name};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_save_registered_method, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 83, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":82
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         plugin.save_registered_method(method_name)
 * 
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_save_registered_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_2 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(12, 81, __pyx_L9_except_error)
          __pyx_t_11 = (!__pyx_t_10);
          if (unlikely(__pyx_t_11)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_4);
            __pyx_t_3 = 0;  __pyx_t_1 = 0;  __pyx_t_4 = 0; 
            __PYX_ERR(12, 81, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_6) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 81, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L19;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L1_error;
    __pyx_L19:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":80
 *     self.c_call = NULL
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_save_registered_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":85
 *         plugin.save_registered_method(method_name)
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, PyObject *__pyx_v_method_name, PyObject *__pyx_v_target) {
  PyObject *__pyx_v_exclude_prefix = NULL;
  PyObject *__pyx_v_plugin = NULL;
  PyObject *__pyx_v_capsule = NULL;
  void *__pyx_v_capsule_ptr;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  void *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_set_client_call_tracer_on_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":87
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:             # <<<<<<<<<<<<<<
 *       if exclude_prefix in method_name:
 *         return
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SERVICES_TO_EXCLUDE); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 87, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        __pyx_t_2 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_3);
        ++__pyx_t_3;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 87, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3));
        #else
        __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3);
        #endif
        ++__pyx_t_3;
      }
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error)
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(12, 87, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_exclude_prefix, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":88
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:             # <<<<<<<<<<<<<<
 *         return
 *     with _observability.get_plugin() as plugin:
*/
    __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_exclude_prefix, __pyx_v_method_name, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(12, 88, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":89
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:
 *         return             # <<<<<<<<<<<<<<
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
*/
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":88
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
 *       if exclude_prefix in method_name:             # <<<<<<<<<<<<<<
 *         return
 *     with _observability.get_plugin() as plugin:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":87
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:             # <<<<<<<<<<<<<<
 *       if exclude_prefix in method_name:
 *         return
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":90
 *       if exclude_prefix in method_name:
 *         return
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
*/
  /*with:*/ {
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_plugin); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 90, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = NULL;
    __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 90, __pyx_L7_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 90, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_6 = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_12);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_6;
          __pyx_t_6 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":91
 *         return
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
*/
          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(12, 91, __pyx_L11_error)
          if (__pyx_t_13) {
          } else {
            __pyx_t_5 = __pyx_t_13;
            goto __pyx_L18_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_mstate_global->__pyx_n_u_observability_enabled); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 91, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(12, 91, __pyx_L11_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_5 = __pyx_t_13;
          __pyx_L18_bool_binop_done:;
          if (__pyx_t_5) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":92
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)             # <<<<<<<<<<<<<<
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)
*/
            __pyx_t_1 = __pyx_v_plugin;
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_8 = 0;
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_method_name, __pyx_v_target};
              __pyx_t_6 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_client_call_tracer, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 92, __pyx_L11_error)
              __Pyx_GOTREF(__pyx_t_6);
            }
            __pyx_v_capsule = __pyx_t_6;
            __pyx_t_6 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":93
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)             # <<<<<<<<<<<<<<
 *         _set_call_tracer(self.c_call, capsule_ptr)
 *         self.call_tracer_capsule = capsule
*/
            __pyx_t_14 = PyCapsule_GetPointer(__pyx_v_capsule, __pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER); if (unlikely(__pyx_t_14 == ((void *)0) && PyErr_Occurred())) __PYX_ERR(12, 93, __pyx_L11_error)
            __pyx_v_capsule_ptr = __pyx_t_14;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":94
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)             # <<<<<<<<<<<<<<
 *         self.call_tracer_capsule = capsule
 * 
*/
            __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(__pyx_v_self->c_call, __pyx_v_capsule_ptr); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 94, __pyx_L11_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":95
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
 *         _set_call_tracer(self.c_call, capsule_ptr)
 *         self.call_tracer_capsule = capsule             # <<<<<<<<<<<<<<
 * 
 * cdef class _ChannelState:
*/
            __Pyx_INCREF(__pyx_v_capsule);
            __Pyx_GIVEREF(__pyx_v_capsule);
            __Pyx_GOTREF(__pyx_v_self->call_tracer_capsule);
            __Pyx_DECREF(__pyx_v_self->call_tracer_capsule);
            __pyx_v_self->call_tracer_capsule = __pyx_v_capsule;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":91
 *         return
 *     with _observability.get_plugin() as plugin:
 *       if plugin and plugin.observability_enabled:             # <<<<<<<<<<<<<<
 *         capsule = plugin.create_client_call_tracer(method_name, target)
 *         capsule_ptr = cpython.PyCapsule_GetPointer(capsule, CLIENT_CALL_TRACER)
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":90
 *       if exclude_prefix in method_name:
 *         return
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         capsule = plugin.create_client_call_tracer(method_name, target)
*/
        }
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L16_try_end;
        __pyx_L11_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_set_client_call_tracer_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_XGOTREF(__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_2 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_2, NULL);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (__pyx_t_5 < 0) __PYX_ERR(12, 90, __pyx_L13_except_error)
          __pyx_t_13 = (!__pyx_t_5);
          if (unlikely(__pyx_t_13)) {
            __Pyx_GIVEREF(__pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_7);
            __Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_1, __pyx_t_7);
            __pyx_t_6 = 0;  __pyx_t_1 = 0;  __pyx_t_7 = 0; 
            __PYX_ERR(12, 90, __pyx_L13_except_error)
          }
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          goto __pyx_L12_exception_handled;
        }
        __pyx_L13_except_error:;
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        goto __pyx_L1_error;
        __pyx_L12_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        __pyx_L16_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_9) {
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 90, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
        goto __pyx_L10;
      }
      __pyx_L10:;
    }
    goto __pyx_L23;
    __pyx_L7_error:;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L1_error;
    __pyx_L23:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":85
 *         plugin.save_registered_method(method_name)
 * 
 *   cdef void maybe_set_client_call_tracer_on_call(self, bytes method_name, bytes target) except *:             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): use channel args to exclude those metrics.
 *     for exclude_prefix in _observability._SERVICES_TO_EXCLUDE:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.maybe_set_client_call_tracer_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_exclude_prefix);
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_XDECREF(__pyx_v_capsule);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_CallState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._CallState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":99
 * cdef class _ChannelState:
 * 
 *   def __cinit__(self, target):             # <<<<<<<<<<<<<<
 *     self.target = target
 *     self.condition = threading.Condition()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 99, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 99, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(12, 99, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(12, 99, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 99, __pyx_L3_error)
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 99, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self), __pyx_v_target);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, PyObject *__pyx_v_target) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":100
 * 
 *   def __cinit__(self, target):
 *     self.target = target             # <<<<<<<<<<<<<<
 *     self.condition = threading.Condition()
 *     self.open = True
*/
  __pyx_t_1 = __pyx_v_target;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(12, 100, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->target);
  __Pyx_DECREF(__pyx_v_self->target);
  __pyx_v_self->target = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":101
 *   def __cinit__(self, target):
 *     self.target = target
 *     self.condition = threading.Condition()             # <<<<<<<<<<<<<<
 *     self.open = True
 *     self.integrated_call_states = {}
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->condition);
  __Pyx_DECREF(__pyx_v_self->condition);
  __pyx_v_self->condition = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":102
 *     self.target = target
 *     self.condition = threading.Condition()
 *     self.open = True             # <<<<<<<<<<<<<<
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()
*/
  __Pyx_INCREF(Py_True);
  __Pyx_GIVEREF(Py_True);
  __Pyx_GOTREF(__pyx_v_self->open);
  __Pyx_DECREF(__pyx_v_self->open);
  __pyx_v_self->open = Py_True;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":103
 *     self.condition = threading.Condition()
 *     self.open = True
 *     self.integrated_call_states = {}             # <<<<<<<<<<<<<<
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->integrated_call_states);
  __Pyx_DECREF(__pyx_v_self->integrated_call_states);
  __pyx_v_self->integrated_call_states = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":104
 *     self.open = True
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()             # <<<<<<<<<<<<<<
 *     self.connectivity_due = set()
 *     self.closed_reason = None
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->segregated_call_states);
  __Pyx_DECREF(__pyx_v_self->segregated_call_states);
  __pyx_v_self->segregated_call_states = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":105
 *     self.integrated_call_states = {}
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()             # <<<<<<<<<<<<<<
 *     self.closed_reason = None
 * 
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->connectivity_due);
  __Pyx_DECREF(__pyx_v_self->connectivity_due);
  __pyx_v_self->connectivity_due = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":106
 *     self.segregated_call_states = set()
 *     self.connectivity_due = set()
 *     self.closed_reason = None             # <<<<<<<<<<<<<<
 * 
 * cdef class CallHandle:
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->closed_reason);
  __Pyx_DECREF(__pyx_v_self->closed_reason);
  __pyx_v_self->closed_reason = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":99
 * cdef class _ChannelState:
 * 
 *   def __cinit__(self, target):             # <<<<<<<<<<<<<<
 *     self.target = target
 *     self.condition = threading.Condition()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_ChannelState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ChannelState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":110
 * cdef class CallHandle:
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(method)
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  PyObject *__pyx_v_method = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel_state,&__pyx_mstate_global->__pyx_n_u_method,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 110, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 110, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 110, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(12, 110, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(12, 110, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 110, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 110, __pyx_L3_error)
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_method = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 110, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 110, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_method);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, PyObject *__pyx_v_method) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":111
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):
 *     self.method = method             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(method)
 *     # Note that since we always pass None for host, we set the
*/
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":112
 *   def __cinit__(self, _ChannelState channel_state, object method):
 *     self.method = method
 *     cpython.Py_INCREF(method)             # <<<<<<<<<<<<<<
 *     # Note that since we always pass None for host, we set the
 *     # second-to-last parameter of grpc_channel_register_call to a fixed
*/
  Py_INCREF(__pyx_v_method);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":117
 *     # NULL value.
 *     self.c_call_handle = grpc_channel_register_call(
 *       channel_state.c_channel, <const char *>method, NULL, NULL)             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_method); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(12, 117, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":116
 *     # second-to-last parameter of grpc_channel_register_call to a fixed
 *     # NULL value.
 *     self.c_call_handle = grpc_channel_register_call(             # <<<<<<<<<<<<<<
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
*/
  __pyx_v_self->c_call_handle = grpc_channel_register_call(__pyx_v_channel_state->c_channel, ((char const *)__pyx_t_1), NULL, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":110
 * cdef class CallHandle:
 * 
 *   def __cinit__(self, _ChannelState channel_state, object method):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(method)
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":119
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cpython.Py_DECREF(self.method)
 * 
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":120
 * 
 *   def __dealloc__(self):
 *     cpython.Py_DECREF(self.method)             # <<<<<<<<<<<<<<
 * 
 *   @property
*/
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":119
 *       channel_state.c_channel, <const char *>method, NULL, NULL)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cpython.Py_DECREF(self.method)
 * 
*/

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":122
 *     cpython.Py_DECREF(self.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":124
 *   @property
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyLong_FromVoidPtr(__pyx_v_self->c_call_handle); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":122
 *     cpython.Py_DECREF(self.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def call_handle(self):
 *     return cpython.PyLong_FromVoidPtr(self.c_call_handle)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.call_handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10CallHandle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallHandle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":128
 * 
 * 
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):             # <<<<<<<<<<<<<<
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate(grpc_call *__pyx_v_c_call, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":130
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)             # <<<<<<<<<<<<<<
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_user_tag, __pyx_v_operations, Py_None};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 130, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":131
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 *   tag.prepare()             # <<<<<<<<<<<<<<
 *   cpython.Py_INCREF(tag)
 *   with nogil:
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 131, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":132
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)             # <<<<<<<<<<<<<<
 *   with nogil:
 *     c_call_error = grpc_call_start_batch(
*/
  Py_INCREF(((PyObject *)__pyx_v_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":133
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":134
 *   cpython.Py_INCREF(tag)
 *   with nogil:
 *     c_call_error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 *   return c_call_error, tag
*/
        __pyx_v_c_call_error = grpc_call_start_batch(__pyx_v_c_call, __pyx_v_tag->c_ops, __pyx_v_tag->c_nops, ((PyObject *)__pyx_v_tag), NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":133
 *   tag.prepare()
 *   cpython.Py_INCREF(tag)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":136
 *     c_call_error = grpc_call_start_batch(
 *         c_call, tag.c_ops, tag.c_nops, <cpython.PyObject *>tag, NULL)
 *   return c_call_error, tag             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(12, 136, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_tag);
  __Pyx_GIVEREF((PyObject *)__pyx_v_tag);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tag)) != (0)) __PYX_ERR(12, 136, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":128
 * 
 * 
 * cdef tuple _operate(grpc_call *c_call, object operations, object user_tag):             # <<<<<<<<<<<<<<
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag = _BatchOperationTag(user_tag, operations, None)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":139
 * 
 * 
 * cdef object _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  grpc_call_error __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate_from_integrated_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":144
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 144, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 144, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":145
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
*/
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_9 < 0))) __PYX_ERR(12, 145, __pyx_L7_error)
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":146
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
*/
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 146, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (likely(__pyx_t_2 != Py_None)) {
              PyObject* sequence = __pyx_t_2;
              Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(12, 146, __pyx_L7_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
              __Pyx_INCREF(__pyx_t_3);
              #else
              __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 146, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 146, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            } else {
              __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 146, __pyx_L7_error)
            }
            __pyx_t_10 = ((grpc_call_error)__Pyx_PyLong_As_grpc_call_error(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 146, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 146, __pyx_L7_error)
            __pyx_v_c_call_error = __pyx_t_10;
            __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_3);
            __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":147
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
*/
            __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":148
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)             # <<<<<<<<<<<<<<
 *         channel_state.integrated_call_states[tag] = call_state
 *         return True
*/
              if (unlikely(__pyx_v_call_state->due == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(12, 148, __pyx_L7_error)
              }
              __pyx_t_11 = PySet_Add(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 148, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":149
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state             # <<<<<<<<<<<<<<
 *         return True
 *       else:
*/
              if (unlikely(__pyx_v_channel_state->integrated_call_states == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(12, 149, __pyx_L7_error)
              }
              if (unlikely((PyDict_SetItem(__pyx_v_channel_state->integrated_call_states, ((PyObject *)__pyx_v_tag), ((PyObject *)__pyx_v_call_state)) < 0))) __PYX_ERR(12, 149, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":150
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
 *         return True             # <<<<<<<<<<<<<<
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":147
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         channel_state.integrated_call_states[tag] = call_state
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":152
 *         return True
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *     else:
 *       return False
*/
            /*else*/ {
              __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 152, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 152, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":145
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":154
 *         _raise_call_error_no_metadata(c_call_error)
 *     else:
 *       return False             # <<<<<<<<<<<<<<
 * 
 * 
*/
          /*else*/ {
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(Py_False);
            __pyx_r = Py_False;
            goto __pyx_L11_try_return;
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":144
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 144, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_9);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0;  __pyx_t_3 = 0;  __pyx_t_4 = 0; 
            __PYX_ERR(12, 144, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 144, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 144, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L18;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L18:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":139
 * 
 * 
 * cdef object _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":157
 * 
 * 
 * cdef object _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, PyObject *__pyx_v_operations, PyObject *__pyx_v_user_tag) {
  grpc_call_error __pyx_v_c_call_error;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  grpc_call_error __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_operate_from_segregated_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":162
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 162, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 162, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":163
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
*/
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_9 < 0))) __PYX_ERR(12, 163, __pyx_L7_error)
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":164
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
*/
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 164, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (likely(__pyx_t_2 != Py_None)) {
              PyObject* sequence = __pyx_t_2;
              Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(12, 164, __pyx_L7_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
              __Pyx_INCREF(__pyx_t_3);
              #else
              __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 164, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 164, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            } else {
              __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 164, __pyx_L7_error)
            }
            __pyx_t_10 = ((grpc_call_error)__Pyx_PyLong_As_grpc_call_error(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 164, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 164, __pyx_L7_error)
            __pyx_v_c_call_error = __pyx_t_10;
            __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_3);
            __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":165
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         return True
*/
            __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":166
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)             # <<<<<<<<<<<<<<
 *         return True
 *       else:
*/
              if (unlikely(__pyx_v_call_state->due == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(12, 166, __pyx_L7_error)
              }
              __pyx_t_11 = PySet_Add(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(12, 166, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":167
 *       if c_call_error == GRPC_CALL_OK:
 *         call_state.due.add(tag)
 *         return True             # <<<<<<<<<<<<<<
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":165
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         call_state.due.add(tag)
 *         return True
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":169
 *         return True
 *       else:
 *         _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *     else:
 *       return False
*/
            /*else*/ {
              __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 169, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 169, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":163
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *       if c_call_error == GRPC_CALL_OK:
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":171
 *         _raise_call_error_no_metadata(c_call_error)
 *     else:
 *       return False             # <<<<<<<<<<<<<<
 * 
 * 
*/
          /*else*/ {
            __Pyx_XDECREF(__pyx_r);
            __Pyx_INCREF(Py_False);
            __pyx_r = Py_False;
            goto __pyx_L11_try_return;
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":162
 *   cdef grpc_call_error c_call_error
 *   cdef _BatchOperationTag tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_12 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 162, __pyx_L9_except_error)
          __pyx_t_14 = (!__pyx_t_9);
          if (unlikely(__pyx_t_14)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_4);
            __pyx_t_2 = 0;  __pyx_t_3 = 0;  __pyx_t_4 = 0; 
            __PYX_ERR(12, 162, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L18;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L18:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":157
 * 
 * 
 * cdef object _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, object operations,
 *     object user_tag):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._operate_from_segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":174
 * 
 * 
 * cdef _cancel(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, grpc_status_code code,
 *     str details):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details) {
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  char const *__pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cancel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":178
 *     str details):
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 178, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 178, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":179
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
*/
          __pyx_t_9 = (__pyx_v_call_state->due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
          if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_9 < 0))) __PYX_ERR(12, 179, __pyx_L7_error)
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":181
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)             # <<<<<<<<<<<<<<
 *       _check_and_raise_call_error_no_metadata(c_call_error)
 * 
*/
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_details); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 181, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (unlikely(__pyx_t_2 == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
              __PYX_ERR(12, 181, __pyx_L7_error)
            }
            __pyx_t_10 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(12, 181, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":180
 *   with channel_state.condition:
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *           call_state.c_call, code, _encode(details), NULL)
 *       _check_and_raise_call_error_no_metadata(c_call_error)
*/
            __pyx_v_c_call_error = grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_10, NULL);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":182
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
 *       _check_and_raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 * 
 * 
*/
            __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 182, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 182, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":179
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:
 *     if call_state.due:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_call_cancel_with_status(
 *           call_state.c_call, code, _encode(details), NULL)
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":178
 *     str details):
 *   cdef grpc_call_error c_call_error
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if call_state.due:
 *       c_call_error = grpc_call_cancel_with_status(
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_11 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 178, __pyx_L9_except_error)
          __pyx_t_13 = (!__pyx_t_9);
          if (unlikely(__pyx_t_13)) {
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_2, __pyx_t_3);
            __pyx_t_4 = 0;  __pyx_t_2 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(12, 178, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":174
 * 
 * 
 * cdef _cancel(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state, grpc_status_code code,
 *     str details):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("grpc._cython.cygrpc._cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":185
 * 
 * 
 * cdef _next_call_event(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, grpc_completion_queue *c_completion_queue,
 *     on_success, on_failure, deadline):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_on_success, PyObject *__pyx_v_on_failure, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_v_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_next_call_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":205
 *   """
 *   try:
 *     tag, event = _latent_event(c_completion_queue, deadline)             # <<<<<<<<<<<<<<
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 *   # propagating any exceptions raised by signal handlers to the application.
*/
      __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__latent_event(__pyx_v_c_completion_queue, __pyx_v_deadline); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 205, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(12, 205, __pyx_L3_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_5);
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_6);
        } else {
          __pyx_t_5 = __Pyx_PyList_GetItemRef(sequence, 0);
          if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 205, __pyx_L3_error)
          __Pyx_XGOTREF(__pyx_t_5);
          __pyx_t_6 = __Pyx_PyList_GetItemRef(sequence, 1);
          if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 205, __pyx_L3_error)
          __Pyx_XGOTREF(__pyx_t_6);
        }
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 205, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
        index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L9_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(12, 205, __pyx_L3_error)
        __pyx_t_8 = NULL;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L10_unpacking_done;
        __pyx_L9_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(12, 205, __pyx_L3_error)
        __pyx_L10_unpacking_done:;
      }
      __pyx_v_tag = __pyx_t_5;
      __pyx_t_5 = 0;
      __pyx_v_event = __pyx_t_6;
      __pyx_t_6 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":213
 *     raise
 *   else:
 *     with channel_state.condition:             # <<<<<<<<<<<<<<
 *       on_success(tag)
 *       channel_state.condition.notify_all()
*/
    /*else:*/ {
      /*with:*/ {
        __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 213, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = NULL;
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 213, __pyx_L11_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_10 = 1;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          assert(__pyx_t_6);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
          __pyx_t_10 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 213, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_12);
            __Pyx_XGOTREF(__pyx_t_13);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":214
 *   else:
 *     with channel_state.condition:
 *       on_success(tag)             # <<<<<<<<<<<<<<
 *       channel_state.condition.notify_all()
 *     return event
*/
              __pyx_t_5 = NULL;
              __Pyx_INCREF(__pyx_v_on_success);
              __pyx_t_6 = __pyx_v_on_success; 
              __pyx_t_10 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
                assert(__pyx_t_5);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
                __Pyx_INCREF(__pyx_t_5);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
                __pyx_t_10 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_tag};
                __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 214, __pyx_L15_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":215
 *     with channel_state.condition:
 *       on_success(tag)
 *       channel_state.condition.notify_all()             # <<<<<<<<<<<<<<
 *     return event
 * 
*/
              __pyx_t_6 = __pyx_v_channel_state->condition;
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_10 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
                __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_notify_all, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 215, __pyx_L15_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":213
 *     raise
 *   else:
 *     with channel_state.condition:             # <<<<<<<<<<<<<<
 *       on_success(tag)
 *       channel_state.condition.notify_all()
*/
            }
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            goto __pyx_L20_try_end;
            __pyx_L15_error:;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            /*except:*/ {
              __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_XGOTREF(__pyx_t_4);
              __Pyx_XGOTREF(__pyx_t_6);
              __Pyx_XGOTREF(__pyx_t_5);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_14)) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_15 < 0) __PYX_ERR(12, 213, __pyx_L17_except_error)
              __pyx_t_16 = (!__pyx_t_15);
              if (unlikely(__pyx_t_16)) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_5);
                __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_5);
                __pyx_t_4 = 0;  __pyx_t_6 = 0;  __pyx_t_5 = 0; 
                __PYX_ERR(12, 213, __pyx_L17_except_error)
              }
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              goto __pyx_L16_exception_handled;
            }
            __pyx_L17_except_error:;
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            goto __pyx_L5_except_error;
            __pyx_L16_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
            __pyx_L20_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_9) {
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[0], NULL);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              if (unlikely(!__pyx_t_13)) __PYX_ERR(12, 213, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            }
            goto __pyx_L14;
          }
          __pyx_L14:;
        }
        goto __pyx_L24;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L5_except_error;
        __pyx_L24:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":216
 *       on_success(tag)
 *       channel_state.condition.notify_all()
 *     return event             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_event);
      __pyx_r = __pyx_v_event;
      goto __pyx_L6_except_return;
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":208
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:             # <<<<<<<<<<<<<<
 *     if on_failure is not None:
 *       on_failure()
*/
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(12, 208, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":209
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:
 *     if on_failure is not None:             # <<<<<<<<<<<<<<
 *       on_failure()
 *     raise
*/
      __pyx_t_16 = (__pyx_v_on_failure != Py_None);
      if (__pyx_t_16) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":210
 *   except:
 *     if on_failure is not None:
 *       on_failure()             # <<<<<<<<<<<<<<
 *     raise
 *   else:
*/
        __pyx_t_17 = NULL;
        __Pyx_INCREF(__pyx_v_on_failure);
        __pyx_t_18 = __pyx_v_on_failure; 
        __pyx_t_10 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_18))) {
          __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18);
          assert(__pyx_t_17);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18);
          __Pyx_INCREF(__pyx_t_17);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_18, __pyx__function);
          __pyx_t_10 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_17, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_18, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 210, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":209
 *   # propagating any exceptions raised by signal handlers to the application.
 *   except:
 *     if on_failure is not None:             # <<<<<<<<<<<<<<
 *       on_failure()
 *     raise
*/
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":211
 *     if on_failure is not None:
 *       on_failure()
 *     raise             # <<<<<<<<<<<<<<
 *   else:
 *     with channel_state.condition:
*/
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_6, __pyx_t_4);
      __pyx_t_5 = 0;  __pyx_t_6 = 0;  __pyx_t_4 = 0; 
      __PYX_ERR(12, 211, __pyx_L5_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":204
 *     deadline: The point after which the RPC will time out.
 *   """
 *   try:             # <<<<<<<<<<<<<<
 *     tag, event = _latent_event(c_completion_queue, deadline)
 *   # NOTE(rbellevi): This broad except enables us to clean up resources before
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":185
 * 
 * 
 * cdef _next_call_event(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, grpc_completion_queue *c_completion_queue,
 *     on_success, on_failure, deadline):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("grpc._cython.cygrpc._next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":220
 * 
 * # TODO(https://github.com/grpc/grpc/issues/14569): This could be a lot simpler.
 * cdef void _call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, on_success, int flags, method,
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_on_success, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_metadata, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  grpc_slice __pyx_v_method_slice;
  grpc_slice __pyx_v_host_slice;
  grpc_slice *__pyx_v_host_slice_ptr;
  grpc_call_credentials *__pyx_v_c_call_credentials;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_v_started_tags = NULL;
  PyObject *__pyx_v_operations = NULL;
  PyObject *__pyx_v_user_tag = NULL;
  PyObject *__pyx_v_tag = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  void *__pyx_t_10;
  gpr_timespec __pyx_t_11;
  grpc_call_credentials *__pyx_t_12;
  Py_ssize_t __pyx_t_13;
  PyObject *(*__pyx_t_14)(PyObject *);
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *(*__pyx_t_17)(PyObject *);
  grpc_call_error __pyx_t_18;
  int __pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_t_21;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":262
 *   cdef tuple error_and_wrapper_tag
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_channel_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 262, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 262, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":263
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:
 *     if channel_state.open:             # <<<<<<<<<<<<<<
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
*/
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_channel_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 263, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":264
 *   with channel_state.condition:
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)             # <<<<<<<<<<<<<<
 *       if host is None:
 *         host_slice_ptr = NULL
*/
            if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 264, __pyx_L7_error)
            __pyx_v_method_slice = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_method));

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":265
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:             # <<<<<<<<<<<<<<
 *         host_slice_ptr = NULL
 *       else:
*/
            __pyx_t_9 = (__pyx_v_host == Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":266
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
 *         host_slice_ptr = NULL             # <<<<<<<<<<<<<<
 *       else:
 *         host_slice = _slice_from_bytes(host)
*/
              __pyx_v_host_slice_ptr = NULL;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":265
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:             # <<<<<<<<<<<<<<
 *         host_slice_ptr = NULL
 *       else:
*/
              goto __pyx_L14;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":268
 *         host_slice_ptr = NULL
 *       else:
 *         host_slice = _slice_from_bytes(host)             # <<<<<<<<<<<<<<
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:
*/
            /*else*/ {
              if (!(likely(PyBytes_CheckExact(__pyx_v_host))||((__pyx_v_host) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_host))) __PYX_ERR(12, 268, __pyx_L7_error)
              __pyx_v_host_slice = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_host));

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":269
 *       else:
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice             # <<<<<<<<<<<<<<
 *       if registered_call_handle:
 *         call_state.c_call = grpc_channel_create_registered_call(
*/
              __pyx_v_host_slice_ptr = (&__pyx_v_host_slice);
            }
            __pyx_L14:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":270
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:             # <<<<<<<<<<<<<<
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
*/
            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_registered_call_handle); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 270, __pyx_L7_error)
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":273
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),             # <<<<<<<<<<<<<<
 *             _timespec_from_time(deadline), NULL)
 *         call_state.maybe_save_registered_method(method)
*/
              __pyx_t_10 = PyLong_AsVoidPtr(__pyx_v_registered_call_handle); if (unlikely(__pyx_t_10 == ((void *)0) && PyErr_Occurred())) __PYX_ERR(12, 273, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":274
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
 *             _timespec_from_time(deadline), NULL)             # <<<<<<<<<<<<<<
 *         call_state.maybe_save_registered_method(method)
 *       else:
*/
              __pyx_t_11 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 274, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":271
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:
 *         call_state.c_call = grpc_channel_create_registered_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
*/
              __pyx_v_call_state->c_call = grpc_channel_create_registered_call(__pyx_v_channel_state->c_channel, NULL, __pyx_v_flags, __pyx_v_c_completion_queue, __pyx_t_10, __pyx_t_11, NULL);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":275
 *             c_completion_queue, cpython.PyLong_AsVoidPtr(registered_call_handle),
 *             _timespec_from_time(deadline), NULL)
 *         call_state.maybe_save_registered_method(method)             # <<<<<<<<<<<<<<
 *       else:
 *         call_state.c_call = grpc_channel_create_call(
*/
              if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 275, __pyx_L7_error)
              ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->maybe_save_registered_method(__pyx_v_call_state, ((PyObject*)__pyx_v_method)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 275, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":270
 *         host_slice = _slice_from_bytes(host)
 *         host_slice_ptr = &host_slice
 *       if registered_call_handle:             # <<<<<<<<<<<<<<
 *         call_state.c_call = grpc_channel_create_registered_call(
 *             channel_state.c_channel, NULL, flags,
*/
              goto __pyx_L15;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":277
 *         call_state.maybe_save_registered_method(method)
 *       else:
 *         call_state.c_call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
*/
            /*else*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":280
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
 *             _timespec_from_time(deadline), NULL)             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:
*/
              __pyx_t_11 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 280, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":277
 *         call_state.maybe_save_registered_method(method)
 *       else:
 *         call_state.c_call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             channel_state.c_channel, NULL, flags,
 *             c_completion_queue, method_slice, host_slice_ptr,
*/
              __pyx_v_call_state->c_call = grpc_channel_create_call(__pyx_v_channel_state->c_channel, NULL, __pyx_v_flags, __pyx_v_c_completion_queue, __pyx_v_method_slice, __pyx_v_host_slice_ptr, __pyx_t_11, NULL);
            }
            __pyx_L15:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":281
 *             c_completion_queue, method_slice, host_slice_ptr,
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)             # <<<<<<<<<<<<<<
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)
*/
            grpc_slice_unref(__pyx_v_method_slice);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":282
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:             # <<<<<<<<<<<<<<
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
*/
            __pyx_t_9 = (__pyx_v_host_slice_ptr != 0);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":283
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)             # <<<<<<<<<<<<<<
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:
*/
              grpc_slice_unref(__pyx_v_host_slice);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":282
 *             _timespec_from_time(deadline), NULL)
 *       grpc_slice_unref(method_slice)
 *       if host_slice_ptr:             # <<<<<<<<<<<<<<
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":284
 *       if host_slice_ptr:
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)             # <<<<<<<<<<<<<<
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
*/
            if (!(likely(PyBytes_CheckExact(__pyx_v_method))||((__pyx_v_method) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_method))) __PYX_ERR(12, 284, __pyx_L7_error)
            __pyx_t_2 = __pyx_v_channel_state->target;
            __Pyx_INCREF(__pyx_t_2);
            ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->maybe_set_client_call_tracer_on_call(__pyx_v_call_state, ((PyObject*)__pyx_v_method), ((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 284, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":285
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:             # <<<<<<<<<<<<<<
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
*/
            __pyx_t_9 = (__pyx_v_context != Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":286
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)             # <<<<<<<<<<<<<<
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()
*/
              __pyx_t_4 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_census_context_on_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 286, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_5 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_3))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
                assert(__pyx_t_4);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
                __pyx_t_5 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_call_state), __pyx_v_context};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 286, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":285
 *         grpc_slice_unref(host_slice)
 *       call_state.maybe_set_client_call_tracer_on_call(method, channel_state.target)
 *       if context is not None:             # <<<<<<<<<<<<<<
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":287
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:             # <<<<<<<<<<<<<<
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(
*/
            __pyx_t_9 = (((PyObject *)__pyx_v_credentials) != Py_None);
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":288
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()             # <<<<<<<<<<<<<<
 *         c_call_error = grpc_call_set_credentials(
 *             call_state.c_call, c_call_credentials)
*/
              __pyx_t_12 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 288, __pyx_L7_error)
              __pyx_v_c_call_credentials = __pyx_t_12;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":289
 *       if credentials is not None:
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(             # <<<<<<<<<<<<<<
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
*/
              __pyx_v_c_call_error = grpc_call_set_credentials(__pyx_v_call_state->c_call, __pyx_v_c_call_credentials);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":291
 *         c_call_error = grpc_call_set_credentials(
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)             # <<<<<<<<<<<<<<
 *         if c_call_error != GRPC_CALL_OK:
 *           #TODO(xuanwn): Expand the scope of nogil
*/
              grpc_call_credentials_release(__pyx_v_c_call_credentials);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":292
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
 *         if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
*/
              __pyx_t_9 = (__pyx_v_c_call_error != GRPC_CALL_OK);
              if (__pyx_t_9) {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":294
 *         if c_call_error != GRPC_CALL_OK:
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()             # <<<<<<<<<<<<<<
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
*/
                ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 294, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":295
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 *           _raise_call_error_no_metadata(c_call_error)             # <<<<<<<<<<<<<<
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:
*/
                __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 295, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
                __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error_no_metadata(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 295, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":292
 *             call_state.c_call, c_call_credentials)
 *         grpc_call_credentials_release(c_call_credentials)
 *         if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
*/
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":287
 *       if context is not None:
 *         set_census_context_on_call(call_state, context)
 *       if credentials is not None:             # <<<<<<<<<<<<<<
 *         c_call_credentials = credentials.c()
 *         c_call_error = grpc_call_set_credentials(
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":296
 *           call_state.delete_call()
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()             # <<<<<<<<<<<<<<
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
*/
            __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 296, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_v_started_tags = ((PyObject*)__pyx_t_2);
            __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":297
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:             # <<<<<<<<<<<<<<
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
*/
            if (likely(PyList_CheckExact(__pyx_v_operationses_and_user_tags)) || PyTuple_CheckExact(__pyx_v_operationses_and_user_tags)) {
              __pyx_t_2 = __pyx_v_operationses_and_user_tags; __Pyx_INCREF(__pyx_t_2);
              __pyx_t_13 = 0;
              __pyx_t_14 = NULL;
            } else {
              __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_operationses_and_user_tags); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 297, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(12, 297, __pyx_L7_error)
            }
            for (;;) {
              if (likely(!__pyx_t_14)) {
                if (likely(PyList_CheckExact(__pyx_t_2))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                    #endif
                    if (__pyx_t_13 >= __pyx_temp) break;
                  }
                  __pyx_t_3 = __Pyx_PyList_GetItemRef(__pyx_t_2, __pyx_t_13);
                  ++__pyx_t_13;
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 297, __pyx_L7_error)
                    #endif
                    if (__pyx_t_13 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13));
                  #else
                  __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_13);
                  #endif
                  ++__pyx_t_13;
                }
                if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 297, __pyx_L7_error)
              } else {
                __pyx_t_3 = __pyx_t_14(__pyx_t_2);
                if (unlikely(!__pyx_t_3)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(12, 297, __pyx_L7_error)
                    PyErr_Clear();
                  }
                  break;
                }
              }
              __Pyx_GOTREF(__pyx_t_3);
              if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
                PyObject* sequence = __pyx_t_3;
                Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
                if (unlikely(size != 2)) {
                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                  __PYX_ERR(12, 297, __pyx_L7_error)
                }
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                if (likely(PyTuple_CheckExact(sequence))) {
                  __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
                  __Pyx_INCREF(__pyx_t_4);
                  __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1);
                  __Pyx_INCREF(__pyx_t_15);
                } else {
                  __pyx_t_4 = __Pyx_PyList_GetItemRef(sequence, 0);
                  if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 297, __pyx_L7_error)
                  __Pyx_XGOTREF(__pyx_t_4);
                  __pyx_t_15 = __Pyx_PyList_GetItemRef(sequence, 1);
                  if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 297, __pyx_L7_error)
                  __Pyx_XGOTREF(__pyx_t_15);
                }
                #else
                __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_15);
                #endif
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else {
                Py_ssize_t index = -1;
                __pyx_t_16 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 297, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_16);
                index = 0; __pyx_t_4 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_4)) goto __pyx_L22_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_4);
                index = 1; __pyx_t_15 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_15)) goto __pyx_L22_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_15);
                if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 2) < 0) __PYX_ERR(12, 297, __pyx_L7_error)
                __pyx_t_17 = NULL;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                goto __pyx_L23_unpacking_done;
                __pyx_L22_unpacking_failed:;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_17 = NULL;
                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
                __PYX_ERR(12, 297, __pyx_L7_error)
                __pyx_L23_unpacking_done:;
              }
              __Pyx_XDECREF_SET(__pyx_v_operations, __pyx_t_4);
              __pyx_t_4 = 0;
              __Pyx_XDECREF_SET(__pyx_v_user_tag, __pyx_t_15);
              __pyx_t_15 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":298
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)             # <<<<<<<<<<<<<<
 *         if c_call_error == GRPC_CALL_OK:
 *           started_tags.add(tag)
*/
              __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate(__pyx_v_call_state->c_call, __pyx_v_operations, __pyx_v_user_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 298, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              if (likely(__pyx_t_3 != Py_None)) {
                PyObject* sequence = __pyx_t_3;
                Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(sequence);
                if (unlikely(size != 2)) {
                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                  __PYX_ERR(12, 298, __pyx_L7_error)
                }
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0);
                __Pyx_INCREF(__pyx_t_15);
                __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
                __Pyx_INCREF(__pyx_t_4);
                #else
                __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 298, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_15);
                __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 298, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else {
                __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(12, 298, __pyx_L7_error)
              }
              __pyx_t_18 = ((grpc_call_error)__Pyx_PyLong_As_grpc_call_error(__pyx_t_15)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 298, __pyx_L7_error)
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __pyx_v_c_call_error = __pyx_t_18;
              __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_4);
              __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":299
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           started_tags.add(tag)
 *         else:
*/
              __pyx_t_9 = (__pyx_v_c_call_error == GRPC_CALL_OK);
              if (__pyx_t_9) {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":300
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
 *           started_tags.add(tag)             # <<<<<<<<<<<<<<
 *         else:
 *           grpc_call_cancel(call_state.c_call, NULL)
*/
                __pyx_t_19 = PySet_Add(__pyx_v_started_tags, __pyx_v_tag); if (unlikely(__pyx_t_19 == ((int)-1))) __PYX_ERR(12, 300, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":299
 *       for operations, user_tag in operationses_and_user_tags:
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *           started_tags.add(tag)
 *         else:
*/
                goto __pyx_L24;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":302
 *           started_tags.add(tag)
 *         else:
 *           grpc_call_cancel(call_state.c_call, NULL)             # <<<<<<<<<<<<<<
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
*/
              /*else*/ {
                (void)(grpc_call_cancel(__pyx_v_call_state->c_call, NULL));

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":304
 *           grpc_call_cancel(call_state.c_call, NULL)
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()             # <<<<<<<<<<<<<<
 *           _raise_call_error(c_call_error, metadata)
 *       else:
*/
                ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 304, __pyx_L7_error)

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":305
 *           #TODO(xuanwn): Expand the scope of nogil
 *           call_state.delete_call()
 *           _raise_call_error(c_call_error, metadata)             # <<<<<<<<<<<<<<
 *       else:
 *         call_state.due.update(started_tags)
*/
                __pyx_t_3 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 305, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_f_4grpc_7_cython_6cygrpc__raise_call_error(__pyx_t_3, __pyx_v_metadata); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 305, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              }
              __pyx_L24:;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":297
 *           _raise_call_error_no_metadata(c_call_error)
 *       started_tags = set()
 *       for operations, user_tag in operationses_and_user_tags:             # <<<<<<<<<<<<<<
 *         c_call_error, tag = _operate(call_state.c_call, operations, user_tag)
 *         if c_call_error == GRPC_CALL_OK:
*/
            }
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            /*else*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":307
 *           _raise_call_error(c_call_error, metadata)
 *       else:
 *         call_state.due.update(started_tags)             # <<<<<<<<<<<<<<
 *         on_success(started_tags)
 *     else:
*/
              __pyx_t_3 = __pyx_v_call_state->due;
              __Pyx_INCREF(__pyx_t_3);
              __pyx_t_5 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_started_tags};
                __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 307, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":308
 *       else:
 *         call_state.due.update(started_tags)
 *         on_success(started_tags)             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot invoke RPC: %s' % channel_state.closed_reason)
*/
              __pyx_t_3 = NULL;
              __Pyx_INCREF(__pyx_v_on_success);
              __pyx_t_4 = __pyx_v_on_success; 
              __pyx_t_5 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_4))) {
                __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
                assert(__pyx_t_3);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
                __pyx_t_5 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_started_tags};
                __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 308, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":263
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:
 *     if channel_state.open:             # <<<<<<<<<<<<<<
 *       method_slice = _slice_from_bytes(method)
 *       if host is None:
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":310
 *         on_success(started_tags)
 *     else:
 *       raise ValueError('Cannot invoke RPC: %s' % channel_state.closed_reason)             # <<<<<<<<<<<<<<
 * 
 * 
*/
          /*else*/ {
            __pyx_t_4 = NULL;
            __Pyx_INCREF(__pyx_builtin_ValueError);
            __pyx_t_3 = __pyx_builtin_ValueError; 
            __pyx_t_15 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Cannot_invoke_RPC_s, __pyx_v_channel_state->closed_reason); if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 310, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_5 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_15};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 310, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(12, 310, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":262
 *   cdef tuple error_and_wrapper_tag
 *   cdef _BatchOperationTag wrapper_tag
 *   with channel_state.condition:             # <<<<<<<<<<<<<<
 *     if channel_state.open:
 *       method_slice = _slice_from_bytes(method)
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_15) < 0) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_15);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_20)) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 262, __pyx_L9_except_error)
          __pyx_t_21 = (!__pyx_t_9);
          if (unlikely(__pyx_t_21)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_15);
            __pyx_t_2 = 0;  __pyx_t_3 = 0;  __pyx_t_15 = 0; 
            __PYX_ERR(12, 262, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L30;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L30:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":220
 * 
 * # TODO(https://github.com/grpc/grpc/issues/14569): This could be a lot simpler.
 * cdef void _call(             # <<<<<<<<<<<<<<
 *     _ChannelState channel_state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, on_success, int flags, method,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("grpc._cython.cygrpc._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_started_tags);
  __Pyx_XDECREF(__pyx_v_operations);
  __Pyx_XDECREF(__pyx_v_user_tag);
  __Pyx_XDECREF(__pyx_v_tag);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":313
 * 
 * 
 * cdef void _process_integrated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_process_integrated_call_tag", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":315
 * cdef void _process_integrated_call_tag(
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)             # <<<<<<<<<<<<<<
 *   call_state.due.remove(tag)
 *   if not call_state.due:
*/
  if (unlikely(__pyx_v_state->integrated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
    __PYX_ERR(12, 315, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Pop(__pyx_v_state->integrated_call_states, ((PyObject *)__pyx_v_tag), ((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 315, __pyx_L1_error)
  __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":316
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)             # <<<<<<<<<<<<<<
 *   if not call_state.due:
 *     call_state.delete_call()
*/
  if (unlikely(__pyx_v_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 316, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PySet_Remove(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 316, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":317
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     call_state.delete_call()
 * 
*/
  __pyx_t_3 = (__pyx_v_call_state->due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_3 < 0))) __PYX_ERR(12, 317, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":318
 *   call_state.due.remove(tag)
 *   if not call_state.due:
 *     call_state.delete_call()             # <<<<<<<<<<<<<<
 * 
 * cdef class IntegratedCall:
*/
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 318, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":317
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     call_state.delete_call()
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":313
 * 
 * 
 * cdef void _process_integrated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _BatchOperationTag tag) except *:
 *   cdef _CallState call_state = state.integrated_call_states.pop(tag)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._process_integrated_call_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_call_state);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":322
 * cdef class IntegratedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel_state,&__pyx_mstate_global->__pyx_n_u_call_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 322, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 322, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 322, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(12, 322, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(12, 322, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 322, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 322, __pyx_L3_error)
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 322, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(12, 322, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_call_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":323
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state             # <<<<<<<<<<<<<<
 *     self._call_state = call_state
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_state);
  __pyx_v_self->_channel_state = __pyx_v_channel_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":324
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state
 *     self._call_state = call_state             # <<<<<<<<<<<<<<
 * 
 *   def operate(self, operations, tag):
*/
  __Pyx_INCREF((PyObject *)__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_call_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_call_state);
  __pyx_v_self->_call_state = __pyx_v_call_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":322
 * cdef class IntegratedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate = {"operate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("operate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 326, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 326, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 326, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "operate", 0) < 0) __PYX_ERR(12, 326, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, i); __PYX_ERR(12, 326, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 326, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 326, __pyx_L3_error)
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("operate", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":327
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":328
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(self, code, details):
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":327
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_integrated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate_from_integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_v_operations, __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel = {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 330, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 330, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 330, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "cancel", 0) < 0) __PYX_ERR(12, 330, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, i); __PYX_ERR(12, 330, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 330, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 330, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 330, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":331
 * 
 *   def cancel(self, code, details):
 *     _cancel(self._channel_state, self._call_state, code, details)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 331, __pyx_L1_error)
  if (!(likely(PyUnicode_CheckExact(__pyx_v_details))||((__pyx_v_details) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_details))) __PYX_ERR(12, 331, __pyx_L1_error)
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_t_3, ((PyObject*)__pyx_v_details)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14IntegratedCall_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.IntegratedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success = {"on_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_started_tags = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_started_tags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 340, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 340, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "on_success", 0) < 0) __PYX_ERR(12, 340, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, i); __PYX_ERR(12, 340, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 340, __pyx_L3_error)
    }
    __pyx_v_started_tags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 340, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(__pyx_self, __pyx_v_started_tags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_integrated_call_on_success(PyObject *__pyx_self, PyObject *__pyx_v_started_tags) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_outer_scope;
  PyObject *__pyx_v_started_tag = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":341
 * 
 *   def on_success(started_tags):
 *     for started_tag in started_tags:             # <<<<<<<<<<<<<<
 *       state.integrated_call_states[started_tag] = call_state
 * 
*/
  if (likely(PyList_CheckExact(__pyx_v_started_tags)) || PyTuple_CheckExact(__pyx_v_started_tags)) {
    __pyx_t_1 = __pyx_v_started_tags; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_started_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 341, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 341, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_2);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(12, 341, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 341, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(12, 341, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_started_tag, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":342
 *   def on_success(started_tags):
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state             # <<<<<<<<<<<<<<
 * 
 *   _call(
*/
    if (unlikely(!__pyx_cur_scope->__pyx_v_call_state)) { __Pyx_RaiseClosureNameError("call_state"); __PYX_ERR(12, 342, __pyx_L1_error) }
    if (unlikely(!__pyx_cur_scope->__pyx_v_state)) { __Pyx_RaiseClosureNameError("state"); __PYX_ERR(12, 342, __pyx_L1_error) }
    if (unlikely(__pyx_cur_scope->__pyx_v_state->integrated_call_states == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(12, 342, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_cur_scope->__pyx_v_state->integrated_call_states, __pyx_v_started_tag, ((PyObject *)__pyx_cur_scope->__pyx_v_call_state)) < 0))) __PYX_ERR(12, 342, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":341
 * 
 *   def on_success(started_tags):
 *     for started_tag in started_tags:             # <<<<<<<<<<<<<<
 *       state.integrated_call_states[started_tag] = call_state
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_started_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/

static struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_integrated_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 334, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_state = __pyx_v_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":338
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 *     object context, object registered_call_handle):
 *   call_state = _CallState()             # <<<<<<<<<<<<<<
 * 
 *   def on_success(started_tags):
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 338, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":340
 *   call_state = _CallState()
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     for started_tag in started_tags:
 *       state.integrated_call_states[started_tag] = call_state
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_integrated_call_1on_success, 0, __pyx_mstate_global->__pyx_n_u_integrated_call_locals_on_succe, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":345
 * 
 *   _call(
 *       state, call_state, state.c_call_completion_queue, on_success, flags,             # <<<<<<<<<<<<<<
 *       method, host, deadline, credentials, operationses_and_user_tags,
 *       metadata, context, registered_call_handle)
*/
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_INCREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":344
 *       state.integrated_call_states[started_tag] = call_state
 * 
 *   _call(             # <<<<<<<<<<<<<<
 *       state, call_state, state.c_call_completion_queue, on_success, flags,
 *       method, host, deadline, credentials, operationses_and_user_tags,
*/
  __pyx_f_4grpc_7_cython_6cygrpc__call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_3), __pyx_cur_scope->__pyx_v_state->c_call_completion_queue, __pyx_v_on_success, __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_credentials, __pyx_v_operationses_and_user_tags, __pyx_v_metadata, __pyx_v_context, __pyx_v_registered_call_handle); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":349
 *       metadata, context, registered_call_handle)
 * 
 *   return IntegratedCall(state, call_state)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_state), ((PyObject *)__pyx_cur_scope->__pyx_v_call_state)};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 349, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":334
 * 
 * 
 * cdef IntegratedCall _integrated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":352
 * 
 * 
 * cdef object _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, grpc_completion_queue *__pyx_v_c_completion_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_process_segregated_call_tag", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":355
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)             # <<<<<<<<<<<<<<
 *   if not call_state.due:
 *     #TODO(xuanwn): Expand the scope of nogil
*/
  if (unlikely(__pyx_v_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 355, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PySet_Remove(__pyx_v_call_state->due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 355, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":356
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
*/
  __pyx_t_2 = (__pyx_v_call_state->due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_call_state->due) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_2 < 0))) __PYX_ERR(12, 356, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":358
 *   if not call_state.due:
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)
*/
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_v_call_state->__pyx_vtab)->delete_call(__pyx_v_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 358, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":359
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
 *     state.segregated_call_states.remove(call_state)             # <<<<<<<<<<<<<<
 *     _destroy_c_completion_queue(c_completion_queue)
 *     return True
*/
    if (unlikely(__pyx_v_state->segregated_call_states == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
      __PYX_ERR(12, 359, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PySet_Remove(__pyx_v_state->segregated_call_states, ((PyObject *)__pyx_v_call_state)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 359, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":360
 *     call_state.delete_call()
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)             # <<<<<<<<<<<<<<
 *     return True
 *   else:
*/
    __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_c_completion_queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":361
 *     state.segregated_call_states.remove(call_state)
 *     _destroy_c_completion_queue(c_completion_queue)
 *     return True             # <<<<<<<<<<<<<<
 *   else:
 *     return False
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":356
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
 *   call_state.due.remove(tag)
 *   if not call_state.due:             # <<<<<<<<<<<<<<
 *     #TODO(xuanwn): Expand the scope of nogil
 *     call_state.delete_call()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":363
 *     return True
 *   else:
 *     return False             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":352
 * 
 * 
 * cdef object _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *     _ChannelState state, _CallState call_state,
 *     grpc_completion_queue *c_completion_queue, _BatchOperationTag tag):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._process_segregated_call_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":368
 * cdef class SegregatedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel_state,&__pyx_mstate_global->__pyx_n_u_call_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 368, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 368, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 368, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(12, 368, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(12, 368, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 368, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 368, __pyx_L3_error)
    }
    __pyx_v_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)values[0]);
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 368, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState, 1, "channel_state", 0))) __PYX_ERR(12, 368, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(12, 368, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_channel_state, __pyx_v_call_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_channel_state, struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":369
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state             # <<<<<<<<<<<<<<
 *     self._call_state = call_state
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_state);
  __pyx_v_self->_channel_state = __pyx_v_channel_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":370
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):
 *     self._channel_state = channel_state
 *     self._call_state = call_state             # <<<<<<<<<<<<<<
 * 
 *   def operate(self, operations, tag):
*/
  __Pyx_INCREF((PyObject *)__pyx_v_call_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_call_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_call_state);
  __pyx_v_self->_call_state = __pyx_v_call_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":368
 * cdef class SegregatedCall:
 * 
 *   def __cinit__(self, _ChannelState channel_state, _CallState call_state):             # <<<<<<<<<<<<<<
 *     self._channel_state = channel_state
 *     self._call_state = call_state
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate = {"operate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("operate (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 372, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 372, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 372, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "operate", 0) < 0) __PYX_ERR(12, 372, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, i); __PYX_ERR(12, 372, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 372, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 372, __pyx_L3_error)
    }
    __pyx_v_operations = values[0];
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("operate", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 372, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_operations, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_2operate(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_operations, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("operate", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":373
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":374
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)             # <<<<<<<<<<<<<<
 * 
 *   def cancel(self, code, details):
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":373
 * 
 *   def operate(self, operations, tag):
 *     return _operate_from_segregated_call(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, operations, tag)
 * 
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__operate_from_segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_v_operations, __pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.operate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel = {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 376, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 376, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 376, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "cancel", 0) < 0) __PYX_ERR(12, 376, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, i); __PYX_ERR(12, 376, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 376, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 376, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 376, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_4cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":377
 * 
 *   def cancel(self, code, details):
 *     _cancel(self._channel_state, self._call_state, code, details)             # <<<<<<<<<<<<<<
 * 
 *   def next_event(self):
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 377, __pyx_L1_error)
  if (!(likely(PyUnicode_CheckExact(__pyx_v_details))||((__pyx_v_details) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_v_details))) __PYX_ERR(12, 377, __pyx_L1_error)
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_t_3, ((PyObject*)__pyx_v_details)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event = {"next_event", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("next_event", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("next_event", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success = {"on_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 380, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 380, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "on_success", 0) < 0) __PYX_ERR(12, 380, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, i); __PYX_ERR(12, 380, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 380, __pyx_L3_error)
    }
    __pyx_v_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 380, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(__pyx_self, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":382
 *     def on_success(tag):
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)             # <<<<<<<<<<<<<<
 *     def on_failure():
 *       self._call_state.due.clear()
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 382, __pyx_L1_error) }
  if (!(likely(((__pyx_v_tag) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_tag, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 382, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":381
 *   def next_event(self):
 *     def on_success(tag):
 *       _process_segregated_call_tag(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__process_segregated_call_tag(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_2), __pyx_cur_scope->__pyx_v_self->_c_completion_queue, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure = {"on_failure", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_failure (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_2on_failure(PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_failure", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":384
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():
 *       self._call_state.due.clear()             # <<<<<<<<<<<<<<
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 384, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_call_state->due == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
    __PYX_ERR(12, 384, __pyx_L1_error)
  }
  __pyx_t_1 = PySet_Clear(__pyx_cur_scope->__pyx_v_self->_call_state->due); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 384, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":385
 *     def on_failure():
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()             # <<<<<<<<<<<<<<
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 385, __pyx_L1_error) }
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState *)__pyx_cur_scope->__pyx_v_self->_call_state->__pyx_vtab)->delete_call(__pyx_cur_scope->__pyx_v_self->_call_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 385, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":386
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)             # <<<<<<<<<<<<<<
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 386, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_channel_state->segregated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
    __PYX_ERR(12, 386, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 386, __pyx_L1_error) }
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_call_state);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_self->_channel_state->segregated_call_states, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":387
 *       self._call_state.delete_call()
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)             # <<<<<<<<<<<<<<
 *     return _next_call_event(
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 387, __pyx_L1_error) }
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_cur_scope->__pyx_v_self->_c_completion_queue); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event.on_failure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_6next_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  PyObject *__pyx_v_on_failure = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_event", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 379, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":380
 * 
 *   def next_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_1on_success, 0, __pyx_mstate_global->__pyx_n_u_next_event_locals_on_success, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":383
 *       _process_segregated_call_tag(
 *         self._channel_state, self._call_state, self._c_completion_queue, tag)
 *     def on_failure():             # <<<<<<<<<<<<<<
 *       self._call_state.due.clear()
 *       self._call_state.delete_call()
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_10next_event_3on_failure, 0, __pyx_mstate_global->__pyx_n_u_next_event_locals_on_failure, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_failure = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":388
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":389
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_channel_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":388
 *       self._channel_state.segregated_call_states.remove(self._call_state)
 *       _destroy_c_completion_queue(self._c_completion_queue)
 *     return _next_call_event(             # <<<<<<<<<<<<<<
 *         self._channel_state, self._c_completion_queue, on_success, on_failure, None)
 * 
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_cur_scope->__pyx_v_self->_c_completion_queue, __pyx_v_on_success, __pyx_v_on_failure, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.next_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_XDECREF(__pyx_v_on_failure);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14SegregatedCall_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SegregatedCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success = {"on_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_started_tags = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_started_tags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 400, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 400, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "on_success", 0) < 0) __PYX_ERR(12, 400, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, i); __PYX_ERR(12, 400, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 400, __pyx_L3_error)
    }
    __pyx_v_started_tags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 400, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(__pyx_self, __pyx_v_started_tags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_segregated_call_on_success(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_started_tags) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":401
 * 
 *   def on_success(started_tags):
 *     state.segregated_call_states.add(call_state)             # <<<<<<<<<<<<<<
 * 
 *   with state.condition:
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_state)) { __Pyx_RaiseClosureNameError("state"); __PYX_ERR(12, 401, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_state->segregated_call_states == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
    __PYX_ERR(12, 401, __pyx_L1_error)
  }
  if (unlikely(!__pyx_cur_scope->__pyx_v_call_state)) { __Pyx_RaiseClosureNameError("call_state"); __PYX_ERR(12, 401, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PySet_Add(__pyx_cur_scope->__pyx_v_state->segregated_call_states, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/

static struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_user_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_v_segregated_call = 0;
  grpc_completion_queue *__pyx_v_c_completion_queue;
  PyObject *__pyx_v_on_success = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_segregated_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 392, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_state = __pyx_v_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":396
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
 *     object context, object registered_call_handle):
 *   cdef _CallState call_state = _CallState()             # <<<<<<<<<<<<<<
 *   cdef SegregatedCall segregated_call
 *   cdef grpc_completion_queue *c_completion_queue
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 396, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":400
 *   cdef grpc_completion_queue *c_completion_queue
 * 
 *   def on_success(started_tags):             # <<<<<<<<<<<<<<
 *     state.segregated_call_states.add(call_state)
 * 
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_segregated_call_1on_success, 0, __pyx_mstate_global->__pyx_n_u_segregated_call_locals_on_succe, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":403
 *     state.segregated_call_states.add(call_state)
 * 
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
*/
  /*with:*/ {
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = NULL;
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 403, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 403, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":404
 * 
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
*/
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 404, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":405
 *   with state.condition:
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot invoke RPC on closed channel!')
*/
            __pyx_v_c_completion_queue = grpc_completion_queue_create_for_next(NULL);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":404
 * 
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":407
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
 *     else:
 *       raise ValueError('Cannot invoke RPC on closed channel!')             # <<<<<<<<<<<<<<
 * 
 *   try:
*/
          /*else*/ {
            __pyx_t_2 = NULL;
            __Pyx_INCREF(__pyx_builtin_ValueError);
            __pyx_t_3 = __pyx_builtin_ValueError; 
            __pyx_t_4 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Cannot_invoke_RPC_on_closed_chan};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 407, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_1);
            }
            __Pyx_Raise(__pyx_t_1, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __PYX_ERR(12, 407, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":403
 *     state.segregated_call_states.add(call_state)
 * 
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       c_completion_queue = (grpc_completion_queue_create_for_next(NULL))
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 403, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_2);
            __pyx_t_1 = 0;  __pyx_t_3 = 0;  __pyx_t_2 = 0; 
            __PYX_ERR(12, 403, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_5) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_8, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":411
 *   try:
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,             # <<<<<<<<<<<<<<
 *         deadline, credentials, operationses_and_user_tags, metadata,
 *         context, registered_call_handle)
*/
      __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_state);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_call_state);
      __Pyx_INCREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":410
 * 
 *   try:
 *     _call(             # <<<<<<<<<<<<<<
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
 *         deadline, credentials, operationses_and_user_tags, metadata,
*/
      __pyx_f_4grpc_7_cython_6cygrpc__call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_2), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_3), __pyx_v_c_completion_queue, __pyx_v_on_success, __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_credentials, __pyx_v_operationses_and_user_tags, __pyx_v_metadata, __pyx_v_context, __pyx_v_registered_call_handle); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 410, __pyx_L18_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
*/
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L23_try_end;
    __pyx_L18_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":414
 *         deadline, credentials, operationses_and_user_tags, metadata,
 *         context, registered_call_handle)
 *   except:             # <<<<<<<<<<<<<<
 *     _destroy_c_completion_queue(c_completion_queue)
 *     raise
*/
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(12, 414, __pyx_L20_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_1);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":415
 *         context, registered_call_handle)
 *   except:
 *     _destroy_c_completion_queue(c_completion_queue)             # <<<<<<<<<<<<<<
 *     raise
 * 
*/
      __pyx_t_10 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_c_completion_queue); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 415, __pyx_L20_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":416
 *   except:
 *     _destroy_c_completion_queue(c_completion_queue)
 *     raise             # <<<<<<<<<<<<<<
 * 
 *   segregated_call = SegregatedCall(state, call_state)
*/
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_1);
      __pyx_t_3 = 0;  __pyx_t_2 = 0;  __pyx_t_1 = 0; 
      __PYX_ERR(12, 416, __pyx_L20_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":409
 *       raise ValueError('Cannot invoke RPC on closed channel!')
 * 
 *   try:             # <<<<<<<<<<<<<<
 *     _call(
 *         state, call_state, c_completion_queue, on_success, flags, method, host,
*/
    __pyx_L20_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_8, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L23_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":418
 *     raise
 * 
 *   segregated_call = SegregatedCall(state, call_state)             # <<<<<<<<<<<<<<
 *   segregated_call._c_completion_queue = c_completion_queue
 *   return segregated_call
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_state), ((PyObject *)__pyx_cur_scope->__pyx_v_call_state)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 418, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_segregated_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":419
 * 
 *   segregated_call = SegregatedCall(state, call_state)
 *   segregated_call._c_completion_queue = c_completion_queue             # <<<<<<<<<<<<<<
 *   return segregated_call
 * 
*/
  __pyx_v_segregated_call->_c_completion_queue = __pyx_v_c_completion_queue;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":420
 *   segregated_call = SegregatedCall(state, call_state)
 *   segregated_call._c_completion_queue = c_completion_queue
 *   return segregated_call             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_segregated_call);
  __pyx_r = __pyx_v_segregated_call;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":392
 * 
 * 
 * cdef SegregatedCall _segregated_call(             # <<<<<<<<<<<<<<
 *     _ChannelState state, int flags, method, host, object deadline,
 *     object metadata, CallCredentials credentials, operationses_and_user_tags,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc._segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_segregated_call);
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":423
 * 
 * 
 * cdef object _watch_connectivity_state(             # <<<<<<<<<<<<<<
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_tag = 0;
  PyObject *__pyx_v_completed_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  gpr_timespec __pyx_t_13;
  int __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  PyObject *(*__pyx_t_17)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_watch_connectivity_state", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":426
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())             # <<<<<<<<<<<<<<
 *   with state.condition:
 *     if state.open:
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag); 
  __pyx_t_5 = NULL;
  __Pyx_INCREF(__pyx_builtin_object);
  __pyx_t_6 = __pyx_builtin_object; 
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 426, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":427
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       cpython.Py_INCREF(tag)
*/
  /*with:*/ {
    __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 427, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 427, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_11);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":428
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
*/
          __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_state->open); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(12, 428, __pyx_L7_error)
          if (likely(__pyx_t_12)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":429
 *   with state.condition:
 *     if state.open:
 *       cpython.Py_INCREF(tag)             # <<<<<<<<<<<<<<
 *       grpc_channel_watch_connectivity_state(
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
*/
            Py_INCREF(((PyObject *)__pyx_v_tag));

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":431
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),             # <<<<<<<<<<<<<<
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
 *       state.connectivity_due.add(tag)
*/
            __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 431, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":430
 *     if state.open:
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(             # <<<<<<<<<<<<<<
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
*/
            grpc_channel_watch_connectivity_state(__pyx_v_state->c_channel, __pyx_v_last_observed_state, __pyx_t_13, __pyx_v_state->c_connectivity_completion_queue, ((PyObject *)__pyx_v_tag));

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":433
 *           state.c_channel, last_observed_state, _timespec_from_time(deadline),
 *           state.c_connectivity_completion_queue, <cpython.PyObject *>tag)
 *       state.connectivity_due.add(tag)             # <<<<<<<<<<<<<<
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)
*/
            if (unlikely(__pyx_v_state->connectivity_due == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
              __PYX_ERR(12, 433, __pyx_L7_error)
            }
            __pyx_t_14 = PySet_Add(__pyx_v_state->connectivity_due, ((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(12, 433, __pyx_L7_error)

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":428
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       cpython.Py_INCREF(tag)
 *       grpc_channel_watch_connectivity_state(
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":435
 *       state.connectivity_due.add(tag)
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)             # <<<<<<<<<<<<<<
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
*/
          /*else*/ {
            __pyx_t_4 = NULL;
            __Pyx_INCREF(__pyx_builtin_ValueError);
            __pyx_t_3 = __pyx_builtin_ValueError; 
            __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Cannot_monitor_channel_state_s, __pyx_v_state->closed_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 435, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 435, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_1);
            }
            __Pyx_Raise(__pyx_t_1, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __PYX_ERR(12, 435, __pyx_L7_error)
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":427
 *     object deadline):
 *   cdef _ConnectivityTag tag = _ConnectivityTag(object())
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       cpython.Py_INCREF(tag)
*/
        }
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (__pyx_t_12 < 0) __PYX_ERR(12, 427, __pyx_L9_except_error)
          __pyx_t_16 = (!__pyx_t_12);
          if (unlikely(__pyx_t_16)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_2);
            __pyx_t_1 = 0;  __pyx_t_3 = 0;  __pyx_t_2 = 0; 
            __PYX_ERR(12, 427, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_8) {
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 427, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":436
 *     else:
 *       raise ValueError('Cannot monitor channel state: %s' % state.closed_reason)
 *   completed_tag, event = _latent_event(             # <<<<<<<<<<<<<<
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__latent_event(__pyx_v_state->c_connectivity_completion_queue, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(12, 436, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_3 = __Pyx_PyList_GetItemRef(sequence, 0);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 436, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyList_GetItemRef(sequence, 1);
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 436, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_1);
    }
    #else
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4);
    index = 0; __pyx_t_3 = __pyx_t_17(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_1 = __pyx_t_17(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_4), 2) < 0) __PYX_ERR(12, 436, __pyx_L1_error)
    __pyx_t_17 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L19_unpacking_done;
    __pyx_L18_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_17 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(12, 436, __pyx_L1_error)
    __pyx_L19_unpacking_done:;
  }
  __pyx_v_completed_tag = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_v_event = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":438
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
*/
  /*with:*/ {
    __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = NULL;
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 438, __pyx_L20_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 438, __pyx_L20_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":439
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:
 *     state.connectivity_due.remove(completed_tag)             # <<<<<<<<<<<<<<
 *     state.condition.notify_all()
 *   return event
*/
          if (unlikely(__pyx_v_state->connectivity_due == Py_None)) {
            PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
            __PYX_ERR(12, 439, __pyx_L24_error)
          }
          __pyx_t_14 = __Pyx_PySet_Remove(__pyx_v_state->connectivity_due, __pyx_v_completed_tag); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(12, 439, __pyx_L24_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":440
 *   with state.condition:
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()             # <<<<<<<<<<<<<<
 *   return event
 * 
*/
          __pyx_t_3 = __pyx_v_state->condition;
          __Pyx_INCREF(__pyx_t_3);
          __pyx_t_7 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
            __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_notify_all, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 440, __pyx_L24_error)
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":438
 *   completed_tag, event = _latent_event(
 *       state.c_connectivity_completion_queue, None)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
*/
        }
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L29_try_end;
        __pyx_L24_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (__pyx_t_16 < 0) __PYX_ERR(12, 438, __pyx_L26_except_error)
          __pyx_t_12 = (!__pyx_t_16);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_1);
            __pyx_t_2 = 0;  __pyx_t_3 = 0;  __pyx_t_1 = 0; 
            __PYX_ERR(12, 438, __pyx_L26_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L25_exception_handled;
        }
        __pyx_L26_except_error:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L25_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
        __pyx_L29_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_8) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 438, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L23;
      }
      __pyx_L23:;
    }
    goto __pyx_L33;
    __pyx_L20_error:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L1_error;
    __pyx_L33:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":441
 *     state.connectivity_due.remove(completed_tag)
 *     state.condition.notify_all()
 *   return event             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_event);
  __pyx_r = __pyx_v_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":423
 * 
 * 
 * cdef object _watch_connectivity_state(             # <<<<<<<<<<<<<<
 *     _ChannelState state, grpc_connectivity_state last_observed_state,
 *     object deadline):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XDECREF(__pyx_v_completed_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":444
 * 
 * 
 * cdef _close(Channel channel, grpc_status_code code, object details,             # <<<<<<<<<<<<<<
 *     drain_calls):
 *   cdef _ChannelState state = channel._state
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_channel, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_drain_calls) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  PyObject *__pyx_v_encoded_details = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  char const *__pyx_t_14;
  int __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_close", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":446
 * cdef _close(Channel channel, grpc_status_code code, object details,
 *     drain_calls):
 *   cdef _ChannelState state = channel._state             # <<<<<<<<<<<<<<
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_channel->_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":448
 *   cdef _ChannelState state = channel._state
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)             # <<<<<<<<<<<<<<
 *   with state.condition:
 *     if state.open:
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_encoded_details = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":449
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       state.open = False
*/
  /*with:*/ {
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 449, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 449, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":450
 *   encoded_details = _encode(details)
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       state.open = False
 *       state.closed_reason = details
*/
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 450, __pyx_L7_error)
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":451
 *   with state.condition:
 *     if state.open:
 *       state.open = False             # <<<<<<<<<<<<<<
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):
*/
            __Pyx_INCREF(Py_False);
            __Pyx_GIVEREF(Py_False);
            __Pyx_GOTREF(__pyx_v_state->open);
            __Pyx_DECREF(__pyx_v_state->open);
            __pyx_v_state->open = Py_False;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":452
 *     if state.open:
 *       state.open = False
 *       state.closed_reason = details             # <<<<<<<<<<<<<<
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(
*/
            __Pyx_INCREF(__pyx_v_details);
            __Pyx_GIVEREF(__pyx_v_details);
            __Pyx_GOTREF(__pyx_v_state->closed_reason);
            __Pyx_DECREF(__pyx_v_state->closed_reason);
            __pyx_v_state->closed_reason = __pyx_v_details;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":453
 *       state.open = False
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):             # <<<<<<<<<<<<<<
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
*/
            __pyx_t_10 = 0;
            if (unlikely(__pyx_v_state->integrated_call_states == Py_None)) {
              PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
              __PYX_ERR(12, 453, __pyx_L7_error)
            }
            __pyx_t_4 = __Pyx_PyDict_Values(__pyx_v_state->integrated_call_states); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_3 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_set_iterator(__pyx_t_3, 1, (&__pyx_t_11), (&__pyx_t_12)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 453, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_1);
            __pyx_t_1 = __pyx_t_4;
            __pyx_t_4 = 0;
            while (1) {
              __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_11, &__pyx_t_10, &__pyx_t_4, __pyx_t_12);
              if (unlikely(__pyx_t_13 == 0)) break;
              if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(12, 453, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 453, __pyx_L7_error)
              __Pyx_XDECREF_SET(__pyx_v_call_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_4));
              __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":455
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)             # <<<<<<<<<<<<<<
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(
*/
              if (unlikely(__pyx_v_encoded_details == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
                __PYX_ERR(12, 455, __pyx_L7_error)
              }
              __pyx_t_14 = __Pyx_PyBytes_AsString(__pyx_v_encoded_details); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(12, 455, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":454
 *       state.closed_reason = details
 *       for call_state in set(state.integrated_call_states.values()):
 *         grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:
*/
              (void)(grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_14, NULL));
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":456
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:             # <<<<<<<<<<<<<<
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)
*/
            __pyx_t_11 = 0;
            __pyx_t_4 = __Pyx_set_iterator(__pyx_v_state->segregated_call_states, 1, (&__pyx_t_10), (&__pyx_t_12)); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 456, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_1);
            __pyx_t_1 = __pyx_t_4;
            __pyx_t_4 = 0;
            while (1) {
              __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_10, &__pyx_t_11, &__pyx_t_4, __pyx_t_12);
              if (unlikely(__pyx_t_13 == 0)) break;
              if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(12, 456, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
              if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState))))) __PYX_ERR(12, 456, __pyx_L7_error)
              __Pyx_XDECREF_SET(__pyx_v_call_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)__pyx_t_4));
              __pyx_t_4 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":458
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(
 *             call_state.c_call, code, encoded_details, NULL)             # <<<<<<<<<<<<<<
 *       # TODO(https://github.com/grpc/grpc/issues/3064): Cancel connectivity
 *       # watching.
*/
              if (unlikely(__pyx_v_encoded_details == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
                __PYX_ERR(12, 458, __pyx_L7_error)
              }
              __pyx_t_14 = __Pyx_PyBytes_AsString(__pyx_v_encoded_details); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(12, 458, __pyx_L7_error)

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":457
 *             call_state.c_call, code, encoded_details, NULL)
 *       for call_state in state.segregated_call_states:
 *         grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             call_state.c_call, code, encoded_details, NULL)
 *       # TODO(https://github.com/grpc/grpc/issues/3064): Cancel connectivity
*/
              (void)(grpc_call_cancel_with_status(__pyx_v_call_state->c_call, __pyx_v_code, __pyx_t_14, NULL));
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":462
 *       # watching.
 * 
 *       if drain_calls:             # <<<<<<<<<<<<<<
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
*/
            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_drain_calls); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 462, __pyx_L7_error)
            if (__pyx_t_9) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":463
 * 
 *       if drain_calls:
 *         while not _calls_drained(state):             # <<<<<<<<<<<<<<
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:
*/
              while (1) {
                __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__calls_drained(__pyx_v_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 463, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 463, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_15 = (!__pyx_t_9);
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":464
 *       if drain_calls:
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()             # <<<<<<<<<<<<<<
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue
*/
                __pyx_t_4 = ((PyObject *)__pyx_v_channel);
                __Pyx_INCREF(__pyx_t_4);
                __pyx_t_5 = 0;
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                  __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_next_call_event, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 464, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_1);
                }
                __Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_1);
                __pyx_t_1 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":465
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:             # <<<<<<<<<<<<<<
 *               continue
 *           event.tag(event)
*/
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event, __pyx_mstate_global->__pyx_n_u_completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CompletionType); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_queue_timeout); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_3);
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_15 < 0))) __PYX_ERR(12, 465, __pyx_L7_error)
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (__pyx_t_15) {

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":466
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue             # <<<<<<<<<<<<<<
 *           event.tag(event)
 *       else:
*/
                  goto __pyx_L19_continue;

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":465
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
 *           if event.completion_type == CompletionType.queue_timeout:             # <<<<<<<<<<<<<<
 *               continue
 *           event.tag(event)
*/
                }

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":467
 *           if event.completion_type == CompletionType.queue_timeout:
 *               continue
 *           event.tag(event)             # <<<<<<<<<<<<<<
 *       else:
 *         while state.integrated_call_states:
*/
                __pyx_t_3 = __pyx_v_event;
                __Pyx_INCREF(__pyx_t_3);
                __pyx_t_5 = 0;
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_event};
                  __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_tag, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 467, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_4);
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_L19_continue:;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":462
 *       # watching.
 * 
 *       if drain_calls:             # <<<<<<<<<<<<<<
 *         while not _calls_drained(state):
 *           event = channel.next_call_event()
*/
              goto __pyx_L18;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":469
 *           event.tag(event)
 *       else:
 *         while state.integrated_call_states:             # <<<<<<<<<<<<<<
 *           state.condition.wait()
 *         while state.connectivity_due:
*/
            /*else*/ {
              while (1) {
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_v_state->integrated_call_states); if (unlikely((__pyx_t_15 < 0))) __PYX_ERR(12, 469, __pyx_L7_error)
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":470
 *       else:
 *         while state.integrated_call_states:
 *           state.condition.wait()             # <<<<<<<<<<<<<<
 *         while state.connectivity_due:
 *           state.condition.wait()
*/
                __pyx_t_3 = __pyx_v_state->condition;
                __Pyx_INCREF(__pyx_t_3);
                __pyx_t_5 = 0;
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
                  __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_wait, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 470, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_4);
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":471
 *         while state.integrated_call_states:
 *           state.condition.wait()
 *         while state.connectivity_due:             # <<<<<<<<<<<<<<
 *           state.condition.wait()
 * 
*/
              while (1) {
                __pyx_t_15 = (__pyx_v_state->connectivity_due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_state->connectivity_due) != 0);
                if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_15 < 0))) __PYX_ERR(12, 471, __pyx_L7_error)
                if (!__pyx_t_15) break;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":472
 *           state.condition.wait()
 *         while state.connectivity_due:
 *           state.condition.wait()             # <<<<<<<<<<<<<<
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
*/
                __pyx_t_3 = __pyx_v_state->condition;
                __Pyx_INCREF(__pyx_t_3);
                __pyx_t_5 = 0;
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
                  __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_wait, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 472, __pyx_L7_error)
                  __Pyx_GOTREF(__pyx_t_4);
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              }
            }
            __pyx_L18:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":474
 *           state.condition.wait()
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)             # <<<<<<<<<<<<<<
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)
*/
            __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_state->c_call_completion_queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 474, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":475
 * 
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)             # <<<<<<<<<<<<<<
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL
*/
            __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__destroy_c_completion_queue(__pyx_v_state->c_connectivity_completion_queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 475, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":476
 *       _destroy_c_completion_queue(state.c_call_completion_queue)
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)             # <<<<<<<<<<<<<<
 *       state.c_channel = NULL
 *       grpc_shutdown()
*/
            grpc_channel_destroy(__pyx_v_state->c_channel);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":477
 *       _destroy_c_completion_queue(state.c_connectivity_completion_queue)
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
 *       state.condition.notify_all()
*/
            __pyx_v_state->c_channel = NULL;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":478
 *       grpc_channel_destroy(state.c_channel)
 *       state.c_channel = NULL
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
 *       state.condition.notify_all()
 *     else:
*/
            grpc_shutdown();

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":479
 *       state.c_channel = NULL
 *       grpc_shutdown()
 *       state.condition.notify_all()             # <<<<<<<<<<<<<<
 *     else:
 *       # Another call to close already completed in the past or is currently
*/
            __pyx_t_3 = __pyx_v_state->condition;
            __Pyx_INCREF(__pyx_t_3);
            __pyx_t_5 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
              __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_notify_all, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 479, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":450
 *   encoded_details = _encode(details)
 *   with state.condition:
 *     if state.open:             # <<<<<<<<<<<<<<
 *       state.open = False
 *       state.closed_reason = details
*/
            goto __pyx_L13;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":483
 *       # Another call to close already completed in the past or is currently
 *       # being executed in another thread.
 *       while state.c_channel != NULL:             # <<<<<<<<<<<<<<
 *         state.condition.wait()
 * 
*/
          /*else*/ {
            while (1) {
              __pyx_t_15 = (__pyx_v_state->c_channel != NULL);
              if (!__pyx_t_15) break;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":484
 *       # being executed in another thread.
 *       while state.c_channel != NULL:
 *         state.condition.wait()             # <<<<<<<<<<<<<<
 * 
 * 
*/
              __pyx_t_3 = __pyx_v_state->condition;
              __Pyx_INCREF(__pyx_t_3);
              __pyx_t_5 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
                __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_wait, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 484, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
          }
          __pyx_L13:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":449
 *   cdef _CallState call_state
 *   encoded_details = _encode(details)
 *   with state.condition:             # <<<<<<<<<<<<<<
 *     if state.open:
 *       state.open = False
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._close", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_16 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_16, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_17)) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (__pyx_t_15 < 0) __PYX_ERR(12, 449, __pyx_L9_except_error)
          __pyx_t_9 = (!__pyx_t_15);
          if (unlikely(__pyx_t_9)) {
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_3, __pyx_t_1);
            __pyx_t_4 = 0;  __pyx_t_3 = 0;  __pyx_t_1 = 0; 
            __PYX_ERR(12, 449, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 449, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L31;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L31:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":444
 * 
 * 
 * cdef _close(Channel channel, grpc_status_code code, object details,             # <<<<<<<<<<<<<<
 *     drain_calls):
 *   cdef _ChannelState state = channel._state
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("grpc._cython.cygrpc._close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_state);
  __Pyx_XDECREF((PyObject *)__pyx_v_call_state);
  __Pyx_XDECREF(__pyx_v_encoded_details);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":487
 * 
 * 
 * cdef _calls_drained(_ChannelState state):             # <<<<<<<<<<<<<<
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__calls_drained(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *__pyx_v_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_calls_drained", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":488
 * 
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or             # <<<<<<<<<<<<<<
 *               state.connectivity_due)
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_state->integrated_call_states); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(12, 488, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_state->segregated_call_states != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_state->segregated_call_states) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_2 < 0))) __PYX_ERR(12, 488, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":489
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)             # <<<<<<<<<<<<<<
 * 
 * cdef class Channel:
*/
  __pyx_t_2 = (__pyx_v_state->connectivity_due != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_state->connectivity_due) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_2 < 0))) __PYX_ERR(12, 489, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":488
 * 
 * cdef _calls_drained(_ChannelState state):
 *   return not (state.integrated_call_states or state.segregated_call_states or             # <<<<<<<<<<<<<<
 *               state.connectivity_due)
 * 
*/
  __pyx_t_3 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":487
 * 
 * 
 * cdef _calls_drained(_ChannelState state):             # <<<<<<<<<<<<<<
 *   return not (state.integrated_call_states or state.segregated_call_states or
 *               state.connectivity_due)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._calls_drained", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":493
 * cdef class Channel:
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_arguments = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,&__pyx_mstate_global->__pyx_n_u_arguments,&__pyx_mstate_global->__pyx_n_u_channel_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 493, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 493, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 493, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 493, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(12, 493, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(12, 493, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 493, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 493, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 493, __pyx_L3_error)
    }
    __pyx_v_target = ((PyObject*)values[0]);
    __pyx_v_arguments = values[1];
    __pyx_v_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(12, 493, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), (&PyBytes_Type), 1, "target", 1))) __PYX_ERR(12, 494, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, 1, "channel_credentials", 0))) __PYX_ERR(12, 495, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_target, __pyx_v_arguments, __pyx_v_channel_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_7Channel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_arguments, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_channel_credentials) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_channel_credentials *__pyx_v_c_channel_credentials;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  grpc_channel_credentials *__pyx_t_6;
  grpc_channel_credentials *__pyx_t_7;
  char *__pyx_t_8;
  grpc_channel_args *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_arguments);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":496
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
 *     arguments = () if arguments is None else tuple(arguments)             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)
*/
  __pyx_t_2 = (__pyx_v_arguments == Py_None);
  if (__pyx_t_2) {
    __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
    __pyx_t_1 = __pyx_mstate_global->__pyx_empty_tuple;
  } else {
    __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_arguments); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }
  __Pyx_DECREF_SET(__pyx_v_arguments, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":497
 *       ChannelCredentials channel_credentials):
 *     arguments = () if arguments is None else tuple(arguments)
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self._state = _ChannelState(target)
 *     self._state.c_call_completion_queue = (
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":498
 *     arguments = () if arguments is None else tuple(arguments)
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)             # <<<<<<<<<<<<<<
 *     self._state.c_call_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState); 
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_target};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 498, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_state);
  __pyx_v_self->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":499
 *     fork_handlers_and_grpc_init()
 *     self._state = _ChannelState(target)
 *     self._state.c_call_completion_queue = (             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._state.c_connectivity_completion_queue = (
*/
  __pyx_v_self->_state->c_call_completion_queue = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":501
 *     self._state.c_call_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._state.c_connectivity_completion_queue = (             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments
*/
  __pyx_v_self->_state->c_connectivity_completion_queue = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":503
 *     self._state.c_connectivity_completion_queue = (
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments             # <<<<<<<<<<<<<<
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     c_channel_credentials = (
*/
  __pyx_t_1 = __pyx_v_arguments;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(12, 503, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_arguments);
  __Pyx_DECREF(__pyx_v_self->_arguments);
  __pyx_v_self->_arguments = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":504
 *         grpc_completion_queue_create_for_next(NULL))
 *     self._arguments = arguments
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)             # <<<<<<<<<<<<<<
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs); 
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_arguments};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 504, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":506
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None             # <<<<<<<<<<<<<<
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(
*/
  __pyx_t_2 = (((PyObject *)__pyx_v_channel_credentials) != Py_None);
  if (__pyx_t_2) {
    __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_channel_credentials->__pyx_vtab)->c(__pyx_v_channel_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 506, __pyx_L1_error)
    __pyx_t_6 = __pyx_t_7;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":507
 *     c_channel_credentials = (
 *         channel_credentials.c() if channel_credentials is not None
 *         else grpc_insecure_credentials_create())             # <<<<<<<<<<<<<<
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())
*/
    __pyx_t_6 = grpc_insecure_credentials_create();
  }
  __pyx_v_c_channel_credentials = __pyx_t_6;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":509
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())             # <<<<<<<<<<<<<<
 *     self._registered_call_handles = {}
 *     grpc_channel_credentials_release(c_channel_credentials)
*/
  if (unlikely(__pyx_v_target == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(12, 509, __pyx_L1_error)
  }
  __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(12, 509, __pyx_L1_error)
  __pyx_t_9 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 509, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":508
 *         channel_credentials.c() if channel_credentials is not None
 *         else grpc_insecure_credentials_create())
 *     self._state.c_channel = grpc_channel_create(             # <<<<<<<<<<<<<<
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}
*/
  __pyx_v_self->_state->c_channel = grpc_channel_create(((char *)__pyx_t_8), __pyx_v_c_channel_credentials, __pyx_t_9);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":510
 *     self._state.c_channel = grpc_channel_create(
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}             # <<<<<<<<<<<<<<
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_registered_call_handles);
  __Pyx_DECREF(__pyx_v_self->_registered_call_handles);
  __pyx_v_self->_registered_call_handles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":511
 *         <char *>target, c_channel_credentials, channel_args.c_args())
 *     self._registered_call_handles = {}
 *     grpc_channel_credentials_release(c_channel_credentials)             # <<<<<<<<<<<<<<
 * 
 *   def target(self):
*/
  grpc_channel_credentials_release(__pyx_v_c_channel_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":493
 * cdef class Channel:
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, bytes target, object arguments,
 *       ChannelCredentials channel_credentials):
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_XDECREF(__pyx_v_arguments);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_3target = {"target", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("target (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("target", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("target", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_2target(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  char *__pyx_v_c_target;
  PyObject *__pyx_v_target = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("target", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":515
 *   def target(self):
 *     cdef char *c_target
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 515, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 515, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 515, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":516
 *     cdef char *c_target
 *     with self._state.condition:
 *       c_target = grpc_channel_get_target(self._state.c_channel)             # <<<<<<<<<<<<<<
 *       target = <bytes>c_target
 *       gpr_free(c_target)
*/
          __pyx_v_c_target = grpc_channel_get_target(__pyx_v_self->_state->c_channel);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":517
 *     with self._state.condition:
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target             # <<<<<<<<<<<<<<
 *       gpr_free(c_target)
 *       return target
*/
          __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_c_target); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 517, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = __pyx_t_2;
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_target = ((PyObject*)__pyx_t_4);
          __pyx_t_4 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":518
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
 *       gpr_free(c_target)             # <<<<<<<<<<<<<<
 *       return target
 * 
*/
          gpr_free(__pyx_v_c_target);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":519
 *       target = <bytes>c_target
 *       gpr_free(c_target)
 *       return target             # <<<<<<<<<<<<<<
 * 
 *   def integrated_call(
*/
          __Pyx_XDECREF(__pyx_r);
          __Pyx_INCREF(__pyx_v_target);
          __pyx_r = __pyx_v_target;
          goto __pyx_L11_try_return;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":515
 *   def target(self):
 *     cdef char *c_target
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       c_target = grpc_channel_get_target(self._state.c_channel)
 *       target = <bytes>c_target
*/
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.target", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_9 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(12, 515, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_11);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_2, __pyx_t_3);
            __pyx_t_4 = 0;  __pyx_t_2 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(12, 515, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L16;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L16:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_target);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_5integrated_call = {"integrated_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_flags;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_host = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_operationses_and_tags = 0;
  PyObject *__pyx_v_context = 0;
  PyObject *__pyx_v_registered_call_handle = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("integrated_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_host,&__pyx_mstate_global->__pyx_n_u_deadline,&__pyx_mstate_global->__pyx_n_u_metadata,&__pyx_mstate_global->__pyx_n_u_credentials,&__pyx_mstate_global->__pyx_n_u_operationses_and_tags,&__pyx_mstate_global->__pyx_n_u_context,&__pyx_mstate_global->__pyx_n_u_registered_call_handle,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 521, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  9:
        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  8:
        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "integrated_call", 0) < 0) __PYX_ERR(12, 521, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":524
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):             # <<<<<<<<<<<<<<
 *     return _integrated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,
*/
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, i); __PYX_ERR(12, 521, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  9:
        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  8:
        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(12, 521, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 521, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 521, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_flags = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 522, __pyx_L3_error)
    __pyx_v_method = values[1];
    __pyx_v_host = values[2];
    __pyx_v_deadline = values[3];
    __pyx_v_metadata = values[4];
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[5]);
    __pyx_v_operationses_and_tags = values[6];
    __pyx_v_context = values[7];
    __pyx_v_registered_call_handle = values[8];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("integrated_call", 0, 7, 9, __pyx_nargs); __PYX_ERR(12, 521, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "credentials", 0))) __PYX_ERR(12, 523, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_4integrated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("integrated_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":525
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":526
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,             # <<<<<<<<<<<<<<
 *         operationses_and_tags, context, registered_call_handle)
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":525
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _integrated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_4grpc_7_cython_6cygrpc__integrated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.integrated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_7next_call_event = {"next_call_event", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_call_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("next_call_event", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("next_call_event", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success = {"on_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("on_success (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 530, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 530, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "on_success", 0) < 0) __PYX_ERR(12, 530, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, i); __PYX_ERR(12, 530, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 530, __pyx_L3_error)
    }
    __pyx_v_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("on_success", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 530, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(__pyx_self, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_on_success(PyObject *__pyx_self, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("on_success", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":531
 *   def next_call_event(self):
 *     def on_success(tag):
 *       if tag is not None:             # <<<<<<<<<<<<<<
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
*/
  __pyx_t_1 = (__pyx_v_tag != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":532
 *     def on_success(tag):
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)             # <<<<<<<<<<<<<<
 *     if is_fork_support_enabled():
 *       queue_deadline = time.time() + 1.0
*/
    if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(12, 532, __pyx_L1_error) }
    __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_state);
    __Pyx_INCREF(__pyx_t_2);
    if (!(likely(((__pyx_v_tag) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_tag, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag))))) __PYX_ERR(12, 532, __pyx_L1_error)
    __pyx_f_4grpc_7_cython_6cygrpc__process_integrated_call_tag(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_2), ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_tag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 532, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":531
 *   def next_call_event(self):
 *     def on_success(tag):
 *       if tag is not None:             # <<<<<<<<<<<<<<
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event.on_success", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_6next_call_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *__pyx_cur_scope;
  PyObject *__pyx_v_on_success = 0;
  PyObject *__pyx_v_queue_deadline = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_call_event", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 529, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":530
 * 
 *   def next_call_event(self):
 *     def on_success(tag):             # <<<<<<<<<<<<<<
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15next_call_event_1on_success, 0, __pyx_mstate_global->__pyx_n_u_next_call_event_locals_on_succes, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_on_success = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":533
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *       queue_deadline = time.time() + 1.0
 *     else:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_is_fork_support_enabled); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(12, 533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":534
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():
 *       queue_deadline = time.time() + 1.0             # <<<<<<<<<<<<<<
 *     else:
 *       queue_deadline = None
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 534, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_PyFloat_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_queue_deadline = __pyx_t_6;
    __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":533
 *       if tag is not None:
 *         _process_integrated_call_tag(self._state, tag)
 *     if is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *       queue_deadline = time.time() + 1.0
 *     else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":536
 *       queue_deadline = time.time() + 1.0
 *     else:
 *       queue_deadline = None             # <<<<<<<<<<<<<<
 *     # NOTE(gnossen): It is acceptable for on_failure to be None here because
 *     # failure conditions can only ever happen on the main thread and this
*/
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_queue_deadline = Py_None;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":540
 *     # failure conditions can only ever happen on the main thread and this
 *     # method is only ever invoked on the channel spin thread.
 *     return _next_call_event(self._state, self._state.c_call_completion_queue,             # <<<<<<<<<<<<<<
 *                             on_success, None, queue_deadline)
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":541
 *     # method is only ever invoked on the channel spin thread.
 *     return _next_call_event(self._state, self._state.c_call_completion_queue,
 *                             on_success, None, queue_deadline)             # <<<<<<<<<<<<<<
 * 
 *   def segregated_call(
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__next_call_event(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_6), __pyx_cur_scope->__pyx_v_self->_state->c_call_completion_queue, __pyx_v_on_success, Py_None, __pyx_v_queue_deadline); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.next_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_on_success);
  __Pyx_XDECREF(__pyx_v_queue_deadline);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_9segregated_call = {"segregated_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_flags;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_host = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_operationses_and_tags = 0;
  PyObject *__pyx_v_context = 0;
  PyObject *__pyx_v_registered_call_handle = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("segregated_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_host,&__pyx_mstate_global->__pyx_n_u_deadline,&__pyx_mstate_global->__pyx_n_u_metadata,&__pyx_mstate_global->__pyx_n_u_credentials,&__pyx_mstate_global->__pyx_n_u_operationses_and_tags,&__pyx_mstate_global->__pyx_n_u_context,&__pyx_mstate_global->__pyx_n_u_registered_call_handle,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 543, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  9:
        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  8:
        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "segregated_call", 0) < 0) __PYX_ERR(12, 543, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":546
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):             # <<<<<<<<<<<<<<
 *     return _segregated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,
*/
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, i); __PYX_ERR(12, 543, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  9:
        values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  8:
        values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(12, 543, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 543, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 543, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_flags = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 544, __pyx_L3_error)
    __pyx_v_method = values[1];
    __pyx_v_host = values[2];
    __pyx_v_deadline = values[3];
    __pyx_v_metadata = values[4];
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[5]);
    __pyx_v_operationses_and_tags = values[6];
    __pyx_v_context = values[7];
    __pyx_v_registered_call_handle = values[8];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("segregated_call", 0, 7, 9, __pyx_nargs); __PYX_ERR(12, 543, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "credentials", 0))) __PYX_ERR(12, 545, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_8segregated_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_method, PyObject *__pyx_v_host, PyObject *__pyx_v_deadline, PyObject *__pyx_v_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials, PyObject *__pyx_v_operationses_and_tags, PyObject *__pyx_v_context, PyObject *__pyx_v_registered_call_handle) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("segregated_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":547
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":548
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(
 *         self._state, flags, method, host, deadline, metadata, credentials,             # <<<<<<<<<<<<<<
 *         operationses_and_tags, context, registered_call_handle)
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":547
 *       CallCredentials credentials, operationses_and_tags,
 *       object context = None, object registered_call_handle = None):
 *     return _segregated_call(             # <<<<<<<<<<<<<<
 *         self._state, flags, method, host, deadline, metadata, credentials,
 *         operationses_and_tags, context, registered_call_handle)
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_4grpc_7_cython_6cygrpc__segregated_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_flags, __pyx_v_method, __pyx_v_host, __pyx_v_deadline, __pyx_v_metadata, __pyx_v_credentials, __pyx_v_operationses_and_tags, __pyx_v_context, __pyx_v_registered_call_handle)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.segregated_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state = {"check_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_try_to_connect;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_try_to_connect,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 551, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 551, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "check_connectivity_state", 0) < 0) __PYX_ERR(12, 551, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, i); __PYX_ERR(12, 551, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 551, __pyx_L3_error)
    }
    __pyx_v_try_to_connect = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_try_to_connect == (int)-1) && PyErr_Occurred())) __PYX_ERR(12, 551, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 551, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_try_to_connect);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_10check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, int __pyx_v_try_to_connect) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_connectivity_state", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":552
 * 
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->_state->condition, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 552, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 552, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":553
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:
 *       if self._state.open:             # <<<<<<<<<<<<<<
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)
*/
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->_state->open); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(12, 553, __pyx_L7_error)
          if (likely(__pyx_t_9)) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":554
 *     with self._state.condition:
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(             # <<<<<<<<<<<<<<
 *             self._state.c_channel, try_to_connect)
 *       else:
*/
            __Pyx_XDECREF(__pyx_r);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":555
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)             # <<<<<<<<<<<<<<
 *       else:
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
*/
            __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(grpc_channel_check_connectivity_state(__pyx_v_self->_state->c_channel, __pyx_v_try_to_connect)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 554, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_r = __pyx_t_2;
            __pyx_t_2 = 0;
            goto __pyx_L11_try_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":553
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:
 *       if self._state.open:             # <<<<<<<<<<<<<<
 *         return grpc_channel_check_connectivity_state(
 *             self._state.c_channel, try_to_connect)
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":557
 *             self._state.c_channel, try_to_connect)
 *       else:
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)             # <<<<<<<<<<<<<<
 * 
 *   def watch_connectivity_state(
*/
          /*else*/ {
            __pyx_t_4 = NULL;
            __Pyx_INCREF(__pyx_builtin_ValueError);
            __pyx_t_3 = __pyx_builtin_ValueError; 
            __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Cannot_invoke_RPC_s, __pyx_v_self->_state->closed_reason); if (unlikely(!__pyx_t_10)) __PYX_ERR(12, 557, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_5 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_10};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 557, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(12, 557, __pyx_L7_error)
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":552
 * 
 *   def check_connectivity_state(self, bint try_to_connect):
 *     with self._state.condition:             # <<<<<<<<<<<<<<
 *       if self._state.open:
 *         return grpc_channel_check_connectivity_state(
*/
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_10) < 0) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_10);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(12, 552, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_10);
            __pyx_t_2 = 0;  __pyx_t_3 = 0;  __pyx_t_10 = 0; 
            __PYX_ERR(12, 552, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 552, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_8 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_1) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 552, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state = {"watch_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_connectivity_state __pyx_v_last_observed_state;
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_last_observed_state,&__pyx_mstate_global->__pyx_n_u_deadline,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 559, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 559, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 559, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "watch_connectivity_state", 0) < 0) __PYX_ERR(12, 559, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, i); __PYX_ERR(12, 559, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 559, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 559, __pyx_L3_error)
    }
    __pyx_v_last_observed_state = ((grpc_connectivity_state)__Pyx_PyLong_As_grpc_connectivity_state(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 560, __pyx_L3_error)
    __pyx_v_deadline = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 559, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_last_observed_state, __pyx_v_deadline);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_12watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("watch_connectivity_state", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":561
 *   def watch_connectivity_state(
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)             # <<<<<<<<<<<<<<
 * 
 *   def close(self, code, details):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->_state);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)__pyx_t_1), __pyx_v_last_observed_state, __pyx_v_deadline); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15close = {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 563, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 563, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 563, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "close", 0) < 0) __PYX_ERR(12, 563, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("close", 1, 2, 2, i); __PYX_ERR(12, 563, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 563, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 563, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 563, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_14close(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":564
 * 
 *   def close(self, code, details):
 *     _close(self, code, details, False)             # <<<<<<<<<<<<<<
 * 
 *   def close_on_fork(self, code, details):
*/
  __pyx_t_1 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 564, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__close(__pyx_v_self, __pyx_t_1, __pyx_v_details, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork = {"close_on_fork", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close_on_fork (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 566, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 566, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 566, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "close_on_fork", 0) < 0) __PYX_ERR(12, 566, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("close_on_fork", 1, 2, 2, i); __PYX_ERR(12, 566, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 566, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(12, 566, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
    __pyx_v_details = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close_on_fork", 1, 2, 2, __pyx_nargs); __PYX_ERR(12, 566, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close_on_fork", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_code, __pyx_v_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_16close_on_fork(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close_on_fork", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":567
 * 
 *   def close_on_fork(self, code, details):
 *     _close(self, code, details, True)             # <<<<<<<<<<<<<<
 * 
 *   def get_registered_call_handle(self, method):
*/
  __pyx_t_1 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 567, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__close(__pyx_v_self, __pyx_t_1, __pyx_v_details, Py_True); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.close_on_fork", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle, "\n    Get or registers a call handler for a method.\n\n    This method is not thread-safe.\n\n    Args:\n      method: Required, the method name for the RPC.\n\n    Returns:\n      The registered call handle pointer in the form of a Python Long. \n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle = {"get_registered_call_handle", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_registered_call_handle (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(12, 569, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 569, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_registered_call_handle", 0) < 0) __PYX_ERR(12, 569, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_registered_call_handle", 1, 1, 1, i); __PYX_ERR(12, 569, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(12, 569, __pyx_L3_error)
    }
    __pyx_v_method = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_registered_call_handle", 1, 1, 1, __pyx_nargs); __PYX_ERR(12, 569, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.get_registered_call_handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v_method);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, PyObject *__pyx_v_method) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_registered_call_handle", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":581
 *       The registered call handle pointer in the form of a Python Long.
 *     """
 *     if method not in self._registered_call_handles.keys():             # <<<<<<<<<<<<<<
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle
*/
  if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(12, 581, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_self->_registered_call_handles); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_method, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(12, 581, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":582
 *     """
 *     if method not in self._registered_call_handles.keys():
 *       self._registered_call_handles[method] = CallHandle(self._state, method)             # <<<<<<<<<<<<<<
 *     return self._registered_call_handles[method].call_handle
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle);
    __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle); 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self->_state), __pyx_v_method};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 582, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(12, 582, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_registered_call_handles, __pyx_v_method, ((PyObject *)__pyx_t_1)) < 0))) __PYX_ERR(12, 582, __pyx_L1_error)
    __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":581
 *       The registered call handle pointer in the form of a Python Long.
 *     """
 *     if method not in self._registered_call_handles.keys():             # <<<<<<<<<<<<<<
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":583
 *     if method not in self._registered_call_handles.keys():
 *       self._registered_call_handles[method] = CallHandle(self._state, method)
 *     return self._registered_call_handles[method].call_handle             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_registered_call_handles == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(12, 583, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->_registered_call_handles, __pyx_v_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_call_handle); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.get_registered_call_handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_7Channel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Channel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_1channelz_get_top_channels = {"channelz_get_top_channels", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_1channelz_get_top_channels(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start_channel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_top_channels (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start_channel_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_top_channels", 0) < 0) __PYX_ERR(13, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_top_channels", 1, 1, 1, i); __PYX_ERR(13, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 16, __pyx_L3_error)
    }
    __pyx_v_start_channel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_top_channels", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_top_channels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(__pyx_self, __pyx_v_start_channel_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_channelz_get_top_channels(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_channel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_top_channels", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":18
 * def channelz_get_top_channels(start_channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,             # <<<<<<<<<<<<<<
 *     )
 *     if c_returned_str == NULL:
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_start_channel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 18, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":17
 * 
 * def channelz_get_top_channels(start_channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(             # <<<<<<<<<<<<<<
 *         start_channel_id,
 *     )
*/
  __pyx_v_c_returned_str = grpc_channelz_get_top_channels(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":20
 *         start_channel_id,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":21
 *     )
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get top channels, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":22
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_top_channels_pleas, __pyx_v_start_channel_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 22, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 21, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 21, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":20
 *         start_channel_id,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":23
 *         raise ValueError('Failed to get top channels, please ensure your' \
 *                          ' start_channel_id==%s is valid' % start_channel_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_servers(start_server_id):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_top_channels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_3channelz_get_servers = {"channelz_get_servers", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_3channelz_get_servers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start_server_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_servers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start_server_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 25, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 25, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_servers", 0) < 0) __PYX_ERR(13, 25, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_servers", 1, 1, 1, i); __PYX_ERR(13, 25, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 25, __pyx_L3_error)
    }
    __pyx_v_start_server_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_servers", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 25, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_servers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(__pyx_self, __pyx_v_start_server_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_2channelz_get_servers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_start_server_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_servers", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":26
 * 
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_start_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 26, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_servers(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":27
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":28
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' start_server_id==%s is valid' % start_server_id)
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":29
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_servers_please_ens, __pyx_v_start_server_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 28, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 28, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":27
 * def channelz_get_servers(start_server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":30
 *         raise ValueError('Failed to get servers, please ensure your' \
 *                          ' start_server_id==%s is valid' % start_server_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_server(server_id):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_servers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_5channelz_get_server = {"channelz_get_server", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_5channelz_get_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_server (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_server_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 32, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 32, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_server", 0) < 0) __PYX_ERR(13, 32, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_server", 1, 1, 1, i); __PYX_ERR(13, 32, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 32, __pyx_L3_error)
    }
    __pyx_v_server_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_server", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 32, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(__pyx_self, __pyx_v_server_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4channelz_get_server(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_server", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":33
 * 
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 33, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_server(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":34
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":35
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' server_id==%s is valid' % server_id)
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":36
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_the_server_please, __pyx_v_server_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 35, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 35, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":34
 * def channelz_get_server(server_id):
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":37
 *         raise ValueError('Failed to get the server, please ensure your' \
 *                          ' server_id==%s is valid' % server_id)
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets = {"channelz_get_server_sockets", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_id = 0;
  PyObject *__pyx_v_start_socket_id = 0;
  PyObject *__pyx_v_max_results = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_server_sockets (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_server_id,&__pyx_mstate_global->__pyx_n_u_start_socket_id,&__pyx_mstate_global->__pyx_n_u_max_results,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 39, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(13, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(13, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_server_sockets", 0) < 0) __PYX_ERR(13, 39, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_server_sockets", 1, 3, 3, i); __PYX_ERR(13, 39, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 39, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(13, 39, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(13, 39, __pyx_L3_error)
    }
    __pyx_v_server_id = values[0];
    __pyx_v_start_socket_id = values[1];
    __pyx_v_max_results = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_server_sockets", 1, 3, 3, __pyx_nargs); __PYX_ERR(13, 39, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server_sockets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(__pyx_self, __pyx_v_server_id, __pyx_v_start_socket_id, __pyx_v_max_results);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6channelz_get_server_sockets(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_server_id, PyObject *__pyx_v_start_socket_id, PyObject *__pyx_v_max_results) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_2;
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11[7];
  PyObject *__pyx_t_12 = NULL;
  size_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_server_sockets", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":41
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,             # <<<<<<<<<<<<<<
 *         start_socket_id,
 *         max_results,
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_server_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 41, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":42
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
 *         start_socket_id,             # <<<<<<<<<<<<<<
 *         max_results,
 *     )
*/
  __pyx_t_2 = PyLong_AsSsize_t(__pyx_v_start_socket_id); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 42, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":43
 *         server_id,
 *         start_socket_id,
 *         max_results,             # <<<<<<<<<<<<<<
 *     )
 *     if c_returned_str == NULL:
*/
  __pyx_t_3 = PyLong_AsSsize_t(__pyx_v_max_results); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 43, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":40
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(             # <<<<<<<<<<<<<<
 *         server_id,
 *         start_socket_id,
*/
  __pyx_v_c_returned_str = grpc_channelz_get_server_sockets(__pyx_t_1, __pyx_t_2, __pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":45
 *         max_results,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get server sockets, please ensure your' \
 *                          ' server_id==%s and start_socket_id==%s and' \
*/
  __pyx_t_4 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_4)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":46
 *     )
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get server sockets, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %
*/
    __pyx_t_6 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_7 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":49
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %
 *                          (server_id, start_socket_id, max_results))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_server_id), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_start_socket_id), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(13, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_max_results), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(13, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Failed_to_get_server_sockets_ple;
    __pyx_t_11[1] = __pyx_t_8;
    __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_and_start_socket_id;
    __pyx_t_11[3] = __pyx_t_9;
    __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u_and_max_results;
    __pyx_t_11[5] = __pyx_t_10;
    __pyx_t_11[6] = __pyx_mstate_global->__pyx_kp_u_is_valid_2;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":46
 *     )
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get server sockets, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' server_id==%s and start_socket_id==%s and' \
 *                          ' max_results==%s is valid' %
*/
    __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 7, 60 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 22 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 9, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10));
    if (unlikely(!__pyx_t_12)) __PYX_ERR(13, 46, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_13 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_12};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 46, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(13, 46, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":45
 *         max_results,
 *     )
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get server sockets, please ensure your' \
 *                          ' server_id==%s and start_socket_id==%s and' \
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":50
 *                          ' max_results==%s is valid' %
 *                          (server_id, start_socket_id, max_results))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_channel(channel_id):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_server_sockets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9channelz_get_channel = {"channelz_get_channel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9channelz_get_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 52, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 52, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_channel", 0) < 0) __PYX_ERR(13, 52, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_channel", 1, 1, 1, i); __PYX_ERR(13, 52, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 52, __pyx_L3_error)
    }
    __pyx_v_channel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 52, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(__pyx_self, __pyx_v_channel_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8channelz_get_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_channel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":53
 * 
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_channel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 53, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_channel(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":54
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":55
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' channel_id==%s is valid' % (channel_id))
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":56
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_the_channel_please, __pyx_v_channel_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 55, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 55, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":54
 * def channelz_get_channel(channel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":57
 *         raise ValueError('Failed to get the channel, please ensure your' \
 *                          ' channel_id==%s is valid' % (channel_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_subchannel(subchannel_id):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11channelz_get_subchannel = {"channelz_get_subchannel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11channelz_get_subchannel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_subchannel_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_subchannel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_subchannel_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 59, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_subchannel", 0) < 0) __PYX_ERR(13, 59, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_subchannel", 1, 1, 1, i); __PYX_ERR(13, 59, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 59, __pyx_L3_error)
    }
    __pyx_v_subchannel_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_subchannel", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 59, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_subchannel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(__pyx_self, __pyx_v_subchannel_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10channelz_get_subchannel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_subchannel_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_subchannel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":60
 * 
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_subchannel_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 60, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_subchannel(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":61
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":62
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":63
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
 * 
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_the_subchannel_ple, __pyx_v_subchannel_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 62, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":61
 * def channelz_get_subchannel(subchannel_id):
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":64
 *         raise ValueError('Failed to get the subchannel, please ensure your' \
 *                          ' subchannel_id==%s is valid' % (subchannel_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
 * 
 * def channelz_get_socket(socket_id):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_subchannel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13channelz_get_socket = {"channelz_get_socket", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13channelz_get_socket(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_socket_id = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channelz_get_socket (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_socket_id,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(13, 66, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 66, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channelz_get_socket", 0) < 0) __PYX_ERR(13, 66, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channelz_get_socket", 1, 1, 1, i); __PYX_ERR(13, 66, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(13, 66, __pyx_L3_error)
    }
    __pyx_v_socket_id = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channelz_get_socket", 1, 1, 1, __pyx_nargs); __PYX_ERR(13, 66, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_socket", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(__pyx_self, __pyx_v_socket_id);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12channelz_get_socket(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_socket_id) {
  char *__pyx_v_c_returned_str;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_4grpc_7_cython_6cygrpc_intptr_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channelz_get_socket", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":67
 * 
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)             # <<<<<<<<<<<<<<
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \
*/
  __pyx_t_1 = PyLong_AsSsize_t(__pyx_v_socket_id); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(13, 67, __pyx_L1_error)
  __pyx_v_c_returned_str = grpc_channelz_get_socket(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":68
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
*/
  __pyx_t_2 = (__pyx_v_c_returned_str == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":69
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \             # <<<<<<<<<<<<<<
 *                          ' socket_id==%s is valid' % (socket_id))
 *     return c_returned_str
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":70
 *     if c_returned_str == NULL:
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))             # <<<<<<<<<<<<<<
 *     return c_returned_str
*/
    __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Failed_to_get_the_socket_please, __pyx_v_socket_id); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 69, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(13, 69, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":68
 * def channelz_get_socket(socket_id):
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":71
 *         raise ValueError('Failed to get the socket, please ensure your' \
 *                          ' socket_id==%s is valid' % (socket_id))
 *     return c_returned_str             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_c_returned_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channelz_get_socket", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15dump_xds_configs = {"dump_xds_configs", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15dump_xds_configs(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dump_xds_configs (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_14dump_xds_configs(CYTHON_UNUSED PyObject *__pyx_self) {
  grpc_slice __pyx_v_client_config_in_slice;
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dump_xds_configs", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":18
 * def dump_xds_configs():
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:             # <<<<<<<<<<<<<<
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":19
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
 *         client_config_in_slice = grpc_dump_xds_configs()             # <<<<<<<<<<<<<<
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 *     return result
*/
        __pyx_v_client_config_in_slice = grpc_dump_xds_configs();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":18
 * def dump_xds_configs():
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:             # <<<<<<<<<<<<<<
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":20
 *     with nogil:
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)             # <<<<<<<<<<<<<<
 *     return result
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_client_config_in_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":21
 *         client_config_in_slice = grpc_dump_xds_configs()
 *     cdef bytes result = _slice_bytes(client_config_in_slice)
 *     return result             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.dump_xds_configs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":17
 * import atexit
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread = {"_spawn_callback_in_thread", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_cb_func = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_spawn_callback_in_thread (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_cb_func,&__pyx_mstate_global->__pyx_n_u_args,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 17, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 17, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 17, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_spawn_callback_in_thread", 0) < 0) __PYX_ERR(5, 17, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_spawn_callback_in_thread", 1, 2, 2, i); __PYX_ERR(5, 17, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 17, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 17, __pyx_L3_error)
    }
    __pyx_v_cb_func = values[0];
    __pyx_v_args = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_spawn_callback_in_thread", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 17, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_in_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(__pyx_self, __pyx_v_cb_func, __pyx_v_args);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_spawn_callback_in_thread(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cb_func, PyObject *__pyx_v_args) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_spawn_callback_in_thread", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":18
 * 
 * def _spawn_callback_in_thread(cb_func, args):
 *   t = ForkManagedThread(target=cb_func, args=args)             # <<<<<<<<<<<<<<
 *   t.setDaemon(True)
 *   t.start()
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ForkManagedThread); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_target, __pyx_v_cb_func, __pyx_t_5, __pyx_callargs+1, 0) < 0) __PYX_ERR(5, 18, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_args, __pyx_v_args, __pyx_t_5, __pyx_callargs+1, 1) < 0) __PYX_ERR(5, 18, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_t = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":19
 * def _spawn_callback_in_thread(cb_func, args):
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)             # <<<<<<<<<<<<<<
 *   t.start()
 * 
*/
  __pyx_t_3 = __pyx_v_t;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, Py_True};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_setDaemon, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 19, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":20
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
 *   t.start()             # <<<<<<<<<<<<<<
 * 
 * async_callback_func = _spawn_callback_in_thread
*/
  __pyx_t_3 = __pyx_v_t;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":17
 * import atexit
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_in_thread", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":24
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19set_async_callback_func = {"set_async_callback_func", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19set_async_callback_func(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback_func = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_async_callback_func (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback_func,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 24, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_async_callback_func", 0) < 0) __PYX_ERR(5, 24, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_async_callback_func", 1, 1, 1, i); __PYX_ERR(5, 24, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 24, __pyx_L3_error)
    }
    __pyx_v_callback_func = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_async_callback_func", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_async_callback_func", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(__pyx_self, __pyx_v_callback_func);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18set_async_callback_func(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback_func) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_async_callback_func", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":26
 * def set_async_callback_func(callback_func):
 *   global async_callback_func
 *   async_callback_func = callback_func             # <<<<<<<<<<<<<<
 * 
 * def _spawn_callback_async(callback, args):
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_async_callback_func, __pyx_v_callback_func) < 0) __PYX_ERR(5, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":24
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_async_callback_func", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":28
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_spawn_callback_async = {"_spawn_callback_async", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_spawn_callback_async(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_spawn_callback_async (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback,&__pyx_mstate_global->__pyx_n_u_args,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 28, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 28, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_spawn_callback_async", 0) < 0) __PYX_ERR(5, 28, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_spawn_callback_async", 1, 2, 2, i); __PYX_ERR(5, 28, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 28, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 28, __pyx_L3_error)
    }
    __pyx_v_callback = values[0];
    __pyx_v_args = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_spawn_callback_async", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(__pyx_self, __pyx_v_callback, __pyx_v_args);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_spawn_callback_async(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_callback, PyObject *__pyx_v_args) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_spawn_callback_async", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":29
 * 
 * def _spawn_callback_async(callback, args):
 *   async_callback_func(callback, args)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_async_callback_func); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_callback, __pyx_v_args};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":28
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._spawn_callback_async", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":34
 * cdef class CallCredentials:
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self) {
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":35
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(5, 35, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":34
 * cdef class CallCredentials:
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_credentials_cannot_be_con, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallCredentials_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_credentials_cannot_be_con, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":48
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13_get_metadata_1callback = {"callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13_get_metadata_1callback(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  grpc_status_code __pyx_v_status;
  PyObject *__pyx_v_error_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,&__pyx_mstate_global->__pyx_n_u_status,&__pyx_mstate_global->__pyx_n_u_error_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 48, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 48, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 48, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 48, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "callback", 0) < 0) __PYX_ERR(5, 48, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("callback", 1, 3, 3, i); __PYX_ERR(5, 48, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 48, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 48, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 48, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
    __pyx_v_status = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 48, __pyx_L3_error)
    __pyx_v_error_details = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("callback", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 48, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata.callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error_details), (&PyBytes_Type), 1, "error_details", 1))) __PYX_ERR(5, 48, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(__pyx_self, __pyx_v_metadata, __pyx_v_status, __pyx_v_error_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13_get_metadata_callback(PyObject *__pyx_self, PyObject *__pyx_v_metadata, grpc_status_code __pyx_v_status, PyObject *__pyx_v_error_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_outer_scope;
  char *__pyx_v_c_error_details;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("callback", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":49
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL             # <<<<<<<<<<<<<<
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
*/
  __pyx_v_c_error_details = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":50
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:             # <<<<<<<<<<<<<<
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
*/
  __pyx_t_1 = (__pyx_v_error_details != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":51
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
 *       c_error_details = <char*> error_details             # <<<<<<<<<<<<<<
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
*/
    if (unlikely(__pyx_v_error_details == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(5, 51, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_v_error_details); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 51, __pyx_L1_error)
    __pyx_v_c_error_details = ((char *)__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":50
 *   def callback(metadata, grpc_status_code status, bytes error_details):
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:             # <<<<<<<<<<<<<<
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":52
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:             # <<<<<<<<<<<<<<
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
*/
  __pyx_t_3 = __Pyx_PyLong_From_grpc_status_code(__pyx_v_status); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":53
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
*/
    __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_v_metadata, (&__pyx_cur_scope->__pyx_v_c_metadata), (&__pyx_cur_scope->__pyx_v_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 53, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":54
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":55
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)             # <<<<<<<<<<<<<<
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
*/
          __pyx_cur_scope->__pyx_v_cb(__pyx_cur_scope->__pyx_v_user_data, __pyx_cur_scope->__pyx_v_c_metadata, __pyx_cur_scope->__pyx_v_metadata_count, __pyx_v_status, NULL);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":54
 *     if status == StatusCode.ok:
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L7;
          }
          __pyx_L7:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":56
 *       with nogil:
 *         cb(user_data, c_metadata, metadata_count, status, NULL)
 *       _release_c_metadata(c_metadata, metadata_count)             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
*/
    __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_cur_scope->__pyx_v_c_metadata, __pyx_cur_scope->__pyx_v_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 56, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":52
 *     if error_details is not None:
 *       c_error_details = <char*> error_details
 *     if status == StatusCode.ok:             # <<<<<<<<<<<<<<
 *       _store_c_metadata(metadata, &c_metadata, &metadata_count)
 *       with nogil:
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":58
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
*/
  /*else*/ {
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":59
 *     else:
 *       with nogil:
 *         cb(user_data, NULL, 0, status, c_error_details)             # <<<<<<<<<<<<<<
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
*/
          __pyx_cur_scope->__pyx_v_cb(__pyx_cur_scope->__pyx_v_user_data, NULL, 0, __pyx_v_status, __pyx_v_c_error_details);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":58
 *       _release_c_metadata(c_metadata, metadata_count)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L10;
          }
          __pyx_L10:;
        }
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":48
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata.callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":38
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
*/

static int __pyx_f_4grpc_7_cython_6cygrpc__get_metadata(void *__pyx_v_state, grpc_auth_metadata_context __pyx_v_context, grpc_credentials_plugin_metadata_cb __pyx_v_cb, void *__pyx_v_user_data, CYTHON_UNUSED grpc_metadata *__pyx_v_creds_md, CYTHON_UNUSED size_t *__pyx_v_num_creds_md, CYTHON_UNUSED grpc_status_code *__pyx_v_status, CYTHON_UNUSED char const **__pyx_v_error_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *__pyx_cur_scope;
  PyObject *__pyx_v_callback = 0;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_v_plugin = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_RefNannySetupContext("_get_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 38, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_cb = __pyx_v_cb;
  __pyx_cur_scope->__pyx_v_user_data = __pyx_v_user_data;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":48
 *   cdef size_t metadata_count
 *   cdef grpc_metadata *c_metadata
 *   def callback(metadata, grpc_status_code status, bytes error_details):             # <<<<<<<<<<<<<<
 *     cdef char* c_error_details = NULL
 *     if error_details is not None:
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_get_metadata_1callback, 0, __pyx_mstate_global->__pyx_n_u_get_metadata_locals_callback, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_callback = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":60
 *       with nogil:
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,             # <<<<<<<<<<<<<<
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:
*/
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_context.service_url); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_context.method_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 60, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 60, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_callback);
  __Pyx_GIVEREF(__pyx_v_callback);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_callback) != (0)) __PYX_ERR(5, 60, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_args = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":61
 *         cb(user_data, NULL, 0, status, c_error_details)
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state             # <<<<<<<<<<<<<<
 *   if plugin._stored_ctx is not None:
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
*/
  __pyx_t_3 = ((PyObject *)__pyx_v_state);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_v_plugin = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":62
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:             # <<<<<<<<<<<<<<
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_mstate_global->__pyx_n_u_stored_ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = (__pyx_t_3 != Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":63
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)             # <<<<<<<<<<<<<<
 *   else:
 *     _spawn_callback_async(<object>state, args)
*/
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_mstate_global->__pyx_n_u_stored_ctx); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_2 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_spawn_callback_async); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_6, __pyx_v_plugin, __pyx_v_args};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_run, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":62
 *   args = context.service_url, context.method_name, callback,
 *   plugin = <object>state
 *   if plugin._stored_ctx is not None:             # <<<<<<<<<<<<<<
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":65
 *     plugin._stored_ctx.copy().run(_spawn_callback_async, plugin, args)
 *   else:
 *     _spawn_callback_async(<object>state, args)             # <<<<<<<<<<<<<<
 *   return 0  # Asynchronous return
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_spawn_callback_async); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_1, ((PyObject *)__pyx_v_state), __pyx_v_args};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":66
 *   else:
 *     _spawn_callback_async(<object>state, args)
 *   return 0  # Asynchronous return             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":38
 * 
 * 
 * cdef int _get_metadata(void *state,             # <<<<<<<<<<<<<<
 *                        grpc_auth_metadata_context context,
 *                        grpc_credentials_plugin_metadata_cb cb,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_RefNannyFinishContext();
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":80
 * # Python's exit handlers, we mark that Python is shutting down from an exit
 * # handler and don't grab GIL in this function afterwards using a C mutex.
 * cdef void _destroy(void *state) noexcept nogil:             # <<<<<<<<<<<<<<
 *   global g_shutdown_mu
 *   global g_shutting_down
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__destroy(void *__pyx_v_state) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":83
 *   global g_shutdown_mu
 *   global g_shutting_down
 *   g_shutdown_mu.lock()             # <<<<<<<<<<<<<<
 *   if g_shutting_down > -1:
 *     g_shutting_down += 1
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.lock();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":84
 *   global g_shutting_down
 *   g_shutdown_mu.lock()
 *   if g_shutting_down > -1:             # <<<<<<<<<<<<<<
 *     g_shutting_down += 1
 *     g_shutdown_mu.unlock()
*/
  __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down > -1L);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":85
 *   g_shutdown_mu.lock()
 *   if g_shutting_down > -1:
 *     g_shutting_down += 1             # <<<<<<<<<<<<<<
 *     g_shutdown_mu.unlock()
 *     with gil:
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down = (__pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down + 1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":86
 *   if g_shutting_down > -1:
 *     g_shutting_down += 1
 *     g_shutdown_mu.unlock()             # <<<<<<<<<<<<<<
 *     with gil:
 *       cpython.Py_DECREF(<object>state)
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.unlock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":87
 *     g_shutting_down += 1
 *     g_shutdown_mu.unlock()
 *     with gil:             # <<<<<<<<<<<<<<
 *       cpython.Py_DECREF(<object>state)
 *     g_shutdown_mu.lock()
*/
    {
        PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":88
 *     g_shutdown_mu.unlock()
 *     with gil:
 *       cpython.Py_DECREF(<object>state)             # <<<<<<<<<<<<<<
 *     g_shutdown_mu.lock()
 *     g_shutting_down -= 1
*/
          Py_DECREF(((PyObject *)__pyx_v_state));
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":87
 *     g_shutting_down += 1
 *     g_shutdown_mu.unlock()
 *     with gil:             # <<<<<<<<<<<<<<
 *       cpython.Py_DECREF(<object>state)
 *     g_shutdown_mu.lock()
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_PyGILState_Release(__pyx_gilstate_save);
            goto __pyx_L6;
          }
          __pyx_L6:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":89
 *     with gil:
 *       cpython.Py_DECREF(<object>state)
 *     g_shutdown_mu.lock()             # <<<<<<<<<<<<<<
 *     g_shutting_down -= 1
 *   g_shutdown_mu.unlock()
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.lock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":90
 *       cpython.Py_DECREF(<object>state)
 *     g_shutdown_mu.lock()
 *     g_shutting_down -= 1             # <<<<<<<<<<<<<<
 *   g_shutdown_mu.unlock()
 *   grpc_shutdown()
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down = (__pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down - 1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":84
 *   global g_shutting_down
 *   g_shutdown_mu.lock()
 *   if g_shutting_down > -1:             # <<<<<<<<<<<<<<
 *     g_shutting_down += 1
 *     g_shutdown_mu.unlock()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":91
 *     g_shutdown_mu.lock()
 *     g_shutting_down -= 1
 *   g_shutdown_mu.unlock()             # <<<<<<<<<<<<<<
 *   grpc_shutdown()
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.unlock();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":92
 *     g_shutting_down -= 1
 *   g_shutdown_mu.unlock()
 *   grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":80
 * # Python's exit handlers, we mark that Python is shutting down from an exit
 * # handler and don't grab GIL in this function afterwards using a C mutex.
 * cdef void _destroy(void *state) noexcept nogil:             # <<<<<<<<<<<<<<
 *   global g_shutdown_mu
 *   global g_shutting_down
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":97
 * g_shutdown_handler_registered = False
 * 
 * def _maybe_register_shutdown_handler():             # <<<<<<<<<<<<<<
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23_maybe_register_shutdown_handler(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23_maybe_register_shutdown_handler = {"_maybe_register_shutdown_handler", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_23_maybe_register_shutdown_handler, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23_maybe_register_shutdown_handler(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_maybe_register_shutdown_handler (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22_maybe_register_shutdown_handler(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22_maybe_register_shutdown_handler(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_maybe_register_shutdown_handler", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":99
 * def _maybe_register_shutdown_handler():
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:             # <<<<<<<<<<<<<<
 *     return
 *   g_shutdown_handler_registered = True
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_g_shutdown_handler_registered); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(5, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":100
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:
 *     return             # <<<<<<<<<<<<<<
 *   g_shutdown_handler_registered = True
 *   atexit.register(_on_shutdown)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":99
 * def _maybe_register_shutdown_handler():
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:             # <<<<<<<<<<<<<<
 *     return
 *   g_shutdown_handler_registered = True
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":101
 *   if g_shutdown_handler_registered:
 *     return
 *   g_shutdown_handler_registered = True             # <<<<<<<<<<<<<<
 *   atexit.register(_on_shutdown)
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_shutdown_handler_registered, Py_True) < 0) __PYX_ERR(5, 101, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":102
 *     return
 *   g_shutdown_handler_registered = True
 *   atexit.register(_on_shutdown)             # <<<<<<<<<<<<<<
 * 
 * cdef void _on_shutdown() noexcept nogil:
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_atexit); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_register); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc__on_shutdown); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":97
 * g_shutdown_handler_registered = False
 * 
 * def _maybe_register_shutdown_handler():             # <<<<<<<<<<<<<<
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._maybe_register_shutdown_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":104
 *   atexit.register(_on_shutdown)
 * 
 * cdef void _on_shutdown() noexcept nogil:             # <<<<<<<<<<<<<<
 *   global g_shutdown_mu
 *   global g_shutting_down
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__on_shutdown(void) {
  int __pyx_v_wait_ms;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("_on_shutdown", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":108
 *   global g_shutting_down
 *   # Wait for up to ~2s if C-core is still cleaning up.
 *   cdef int wait_ms = 10             # <<<<<<<<<<<<<<
 *   while wait_ms < 1500:
 *     g_shutdown_mu.lock()
*/
  __pyx_v_wait_ms = 10;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":109
 *   # Wait for up to ~2s if C-core is still cleaning up.
 *   cdef int wait_ms = 10
 *   while wait_ms < 1500:             # <<<<<<<<<<<<<<
 *     g_shutdown_mu.lock()
 *     if g_shutting_down == 0:
*/
  while (1) {
    __pyx_t_1 = (__pyx_v_wait_ms < 0x5DC);
    if (!__pyx_t_1) break;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":110
 *   cdef int wait_ms = 10
 *   while wait_ms < 1500:
 *     g_shutdown_mu.lock()             # <<<<<<<<<<<<<<
 *     if g_shutting_down == 0:
 *       g_shutting_down = -1
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.lock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":111
 *   while wait_ms < 1500:
 *     g_shutdown_mu.lock()
 *     if g_shutting_down == 0:             # <<<<<<<<<<<<<<
 *       g_shutting_down = -1
 *       g_shutdown_mu.unlock()
*/
    __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down == 0);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":112
 *     g_shutdown_mu.lock()
 *     if g_shutting_down == 0:
 *       g_shutting_down = -1             # <<<<<<<<<<<<<<
 *       g_shutdown_mu.unlock()
 *       return
*/
      __pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down = -1;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":113
 *     if g_shutting_down == 0:
 *       g_shutting_down = -1
 *       g_shutdown_mu.unlock()             # <<<<<<<<<<<<<<
 *       return
 *     g_shutdown_mu.unlock()
*/
      __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.unlock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":114
 *       g_shutting_down = -1
 *       g_shutdown_mu.unlock()
 *       return             # <<<<<<<<<<<<<<
 *     g_shutdown_mu.unlock()
 *     with gil:
*/
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":111
 *   while wait_ms < 1500:
 *     g_shutdown_mu.lock()
 *     if g_shutting_down == 0:             # <<<<<<<<<<<<<<
 *       g_shutting_down = -1
 *       g_shutdown_mu.unlock()
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":115
 *       g_shutdown_mu.unlock()
 *       return
 *     g_shutdown_mu.unlock()             # <<<<<<<<<<<<<<
 *     with gil:
 *       time.sleep(wait_ms / 1000)
*/
    __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_mu.unlock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":116
 *       return
 *     g_shutdown_mu.unlock()
 *     with gil:             # <<<<<<<<<<<<<<
 *       time.sleep(wait_ms / 1000)
 *     wait_ms = wait_ms * 2
*/
    {
        PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":117
 *     g_shutdown_mu.unlock()
 *     with gil:
 *       time.sleep(wait_ms / 1000)             # <<<<<<<<<<<<<<
 *     wait_ms = wait_ms * 2
 *   with gil:
*/
          __pyx_t_3 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 117, __pyx_L9_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_sleep); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 117, __pyx_L9_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyFloat_FromDouble((((double)__pyx_v_wait_ms) / 1000.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 117, __pyx_L9_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            assert(__pyx_t_3);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 117, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":116
 *       return
 *     g_shutdown_mu.unlock()
 *     with gil:             # <<<<<<<<<<<<<<
 *       time.sleep(wait_ms / 1000)
 *     wait_ms = wait_ms * 2
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_PyGILState_Release(__pyx_gilstate_save);
            goto __pyx_L10;
          }
          __pyx_L9_error: {
            __Pyx_PyGILState_Release(__pyx_gilstate_save);
            goto __pyx_L1_error;
          }
          __pyx_L10:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":118
 *     with gil:
 *       time.sleep(wait_ms / 1000)
 *     wait_ms = wait_ms * 2             # <<<<<<<<<<<<<<
 *   with gil:
 *     _LOGGER.error('Timed out waiting for C-core clean-up')
*/
    __pyx_v_wait_ms = (__pyx_v_wait_ms * 2);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":119
 *       time.sleep(wait_ms / 1000)
 *     wait_ms = wait_ms * 2
 *   with gil:             # <<<<<<<<<<<<<<
 *     _LOGGER.error('Timed out waiting for C-core clean-up')
 * 
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":120
 *     wait_ms = wait_ms * 2
 *   with gil:
 *     _LOGGER.error('Timed out waiting for C-core clean-up')             # <<<<<<<<<<<<<<
 * 
 * cdef class MetadataPluginCallCredentials(CallCredentials):
*/
        __pyx_t_5 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 120, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 120, __pyx_L12_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
          assert(__pyx_t_5);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
          __pyx_t_6 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Timed_out_waiting_for_C_core_cle};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 120, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":119
 *       time.sleep(wait_ms / 1000)
 *     wait_ms = wait_ms * 2
 *   with gil:             # <<<<<<<<<<<<<<
 *     _LOGGER.error('Timed out waiting for C-core clean-up')
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L13;
        }
        __pyx_L12_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L13:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":104
 *   atexit.register(_on_shutdown)
 * 
 * cdef void _on_shutdown() noexcept nogil:             # <<<<<<<<<<<<<<
 *   global g_shutdown_mu
 *   global g_shutting_down
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._on_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":124
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, metadata_plugin, name):             # <<<<<<<<<<<<<<
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_metadata_plugin = 0;
  PyObject *__pyx_v_name = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata_plugin,&__pyx_mstate_global->__pyx_n_u_name,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 124, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 124, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 124, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 124, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(5, 124, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 124, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 124, __pyx_L3_error)
    }
    __pyx_v_metadata_plugin = values[0];
    __pyx_v_name = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self), __pyx_v_metadata_plugin, __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, PyObject *__pyx_v_metadata_plugin, PyObject *__pyx_v_name) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":125
 * 
 *   def __cinit__(self, metadata_plugin, name):
 *     self._metadata_plugin = metadata_plugin             # <<<<<<<<<<<<<<
 *     self._name = name
 * 
*/
  __Pyx_INCREF(__pyx_v_metadata_plugin);
  __Pyx_GIVEREF(__pyx_v_metadata_plugin);
  __Pyx_GOTREF(__pyx_v_self->_metadata_plugin);
  __Pyx_DECREF(__pyx_v_self->_metadata_plugin);
  __pyx_v_self->_metadata_plugin = __pyx_v_metadata_plugin;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":126
 *   def __cinit__(self, metadata_plugin, name):
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
*/
  __pyx_t_1 = __pyx_v_name;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(5, 126, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_name);
  __Pyx_DECREF(__pyx_v_self->_name);
  __pyx_v_self->_name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":124
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, metadata_plugin, name):             # <<<<<<<<<<<<<<
 *     self._metadata_plugin = metadata_plugin
 *     self._name = name
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":128
 *     self._name = name
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
*/

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  grpc_metadata_credentials_plugin __pyx_v_c_metadata_plugin;
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":130
 *   cdef grpc_call_credentials *c(self) except *:
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
*/
  __pyx_v_c_metadata_plugin.get_metadata = __pyx_f_4grpc_7_cython_6cygrpc__get_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":131
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
 *     c_metadata_plugin.destroy = _destroy             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name
*/
  __pyx_v_c_metadata_plugin.destroy = __pyx_f_4grpc_7_cython_6cygrpc__destroy;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":132
 *     c_metadata_plugin.get_metadata = _get_metadata
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin             # <<<<<<<<<<<<<<
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)
*/
  __pyx_v_c_metadata_plugin.state = ((void *)__pyx_v_self->_metadata_plugin);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":133
 *     c_metadata_plugin.destroy = _destroy
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(self._metadata_plugin)
 *     _maybe_register_shutdown_handler()
*/
  if (unlikely(__pyx_v_self->_name == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(5, 133, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_self->_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(5, 133, __pyx_L1_error)
  __pyx_v_c_metadata_plugin.type = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":134
 *     c_metadata_plugin.state = <void *>self._metadata_plugin
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)             # <<<<<<<<<<<<<<
 *     _maybe_register_shutdown_handler()
 *     fork_handlers_and_grpc_init()
*/
  __pyx_t_2 = __pyx_v_self->_metadata_plugin;
  __Pyx_INCREF(__pyx_t_2);
  Py_INCREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":135
 *     c_metadata_plugin.type = self._name
 *     cpython.Py_INCREF(self._metadata_plugin)
 *     _maybe_register_shutdown_handler()             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_maybe_register_shutdown_handler); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":136
 *     cpython.Py_INCREF(self._metadata_plugin)
 *     _maybe_register_shutdown_handler()
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
 *     # applications can decide what minimum security level their plugins require.
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":139
 *     # TODO(yihuazhang): Expose min_security_level via the Python API so that
 *     # applications can decide what minimum security level their plugins require.
 *     return grpc_metadata_credentials_create_from_plugin(c_metadata_plugin, GRPC_PRIVACY_AND_INTEGRITY, NULL)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = grpc_metadata_credentials_create_from_plugin(__pyx_v_c_metadata_plugin, GRPC_PRIVACY_AND_INTEGRITY, NULL);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":128
 *     self._name = name
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_metadata_credentials_plugin c_metadata_plugin
 *     c_metadata_plugin.get_metadata = _get_metadata
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":36
 * cdef class MetadataPluginCallCredentials(CallCredentials):
 * 
 *   cdef readonly object _metadata_plugin             # <<<<<<<<<<<<<<
 *   cdef readonly bytes _name
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_metadata_plugin);
  __pyx_r = __pyx_v_self->_metadata_plugin;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":37
 * 
 *   cdef readonly object _metadata_plugin
 *   cdef readonly bytes _name             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_name);
  __pyx_r = __pyx_v_self->_name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.MetadataPluginCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":142
 * 
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):             # <<<<<<<<<<<<<<
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
*/

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc__composition(PyObject *__pyx_v_call_credentialses) {
  PyObject *__pyx_v_call_credentials_iterator = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_composition = 0;
  grpc_call_credentials *__pyx_v_c_composition;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_additional_call_credentials = 0;
  grpc_call_credentials *__pyx_v_c_additional_call_credentials;
  grpc_call_credentials *__pyx_v_c_next_composition;
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call_credentials *__pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_composition", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":143
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):
 *   call_credentials_iterator = iter(call_credentialses)             # <<<<<<<<<<<<<<
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 *   cdef grpc_call_credentials *c_composition = composition.c()
*/
  __pyx_t_1 = PyObject_GetIter(__pyx_v_call_credentialses); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_call_credentials_iterator = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":144
 * cdef grpc_call_credentials *_composition(call_credentialses):
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)             # <<<<<<<<<<<<<<
 *   cdef grpc_call_credentials *c_composition = composition.c()
 *   cdef CallCredentials additional_call_credentials
*/
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_call_credentials_iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(5, 144, __pyx_L1_error)
  __pyx_v_composition = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":145
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
 *   cdef grpc_call_credentials *c_composition = composition.c()             # <<<<<<<<<<<<<<
 *   cdef CallCredentials additional_call_credentials
 *   cdef grpc_call_credentials *c_additional_call_credentials
*/
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_composition->__pyx_vtab)->c(__pyx_v_composition); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 145, __pyx_L1_error)
  __pyx_v_c_composition = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":149
 *   cdef grpc_call_credentials *c_additional_call_credentials
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:             # <<<<<<<<<<<<<<
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(
*/
  if (likely(PyList_CheckExact(__pyx_v_call_credentials_iterator)) || PyTuple_CheckExact(__pyx_v_call_credentials_iterator)) {
    __pyx_t_1 = __pyx_v_call_credentials_iterator; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_call_credentials_iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 149, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 149, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        __pyx_t_5 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_3);
        ++__pyx_t_3;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 149, __pyx_L1_error)
          #endif
          if (__pyx_t_3 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3));
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3);
        #endif
        ++__pyx_t_3;
      }
      if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 149, __pyx_L1_error)
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 149, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_5);
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(5, 149, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_additional_call_credentials, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":150
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:
 *     c_additional_call_credentials = additional_call_credentials.c()             # <<<<<<<<<<<<<<
 *     c_next_composition = grpc_composite_call_credentials_create(
 *         c_composition, c_additional_call_credentials, NULL)
*/
    __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_additional_call_credentials->__pyx_vtab)->c(__pyx_v_additional_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 150, __pyx_L1_error)
    __pyx_v_c_additional_call_credentials = __pyx_t_2;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":151
 *   for additional_call_credentials in call_credentials_iterator:
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(             # <<<<<<<<<<<<<<
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)
*/
    __pyx_v_c_next_composition = grpc_composite_call_credentials_create(__pyx_v_c_composition, __pyx_v_c_additional_call_credentials, NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":153
 *     c_next_composition = grpc_composite_call_credentials_create(
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)             # <<<<<<<<<<<<<<
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition
*/
    grpc_call_credentials_release(__pyx_v_c_composition);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":154
 *         c_composition, c_additional_call_credentials, NULL)
 *     grpc_call_credentials_release(c_composition)
 *     grpc_call_credentials_release(c_additional_call_credentials)             # <<<<<<<<<<<<<<
 *     c_composition = c_next_composition
 *   return c_composition
*/
    grpc_call_credentials_release(__pyx_v_c_additional_call_credentials);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":155
 *     grpc_call_credentials_release(c_composition)
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition             # <<<<<<<<<<<<<<
 *   return c_composition
 * 
*/
    __pyx_v_c_composition = __pyx_v_c_next_composition;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":149
 *   cdef grpc_call_credentials *c_additional_call_credentials
 *   cdef grpc_call_credentials *c_next_composition
 *   for additional_call_credentials in call_credentials_iterator:             # <<<<<<<<<<<<<<
 *     c_additional_call_credentials = additional_call_credentials.c()
 *     c_next_composition = grpc_composite_call_credentials_create(
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":156
 *     grpc_call_credentials_release(c_additional_call_credentials)
 *     c_composition = c_next_composition
 *   return c_composition             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_c_composition;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":142
 * 
 * 
 * cdef grpc_call_credentials *_composition(call_credentialses):             # <<<<<<<<<<<<<<
 *   call_credentials_iterator = iter(call_credentialses)
 *   cdef CallCredentials composition = next(call_credentials_iterator)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._composition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_call_credentials_iterator);
  __Pyx_XDECREF((PyObject *)__pyx_v_composition);
  __Pyx_XDECREF((PyObject *)__pyx_v_additional_call_credentials);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":161
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, call_credentialses):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_call_credentialses = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_credentialses,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 161, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 161, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 161, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 161, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 161, __pyx_L3_error)
    }
    __pyx_v_call_credentialses = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 161, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self), __pyx_v_call_credentialses);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":162
 * 
 *   def __cinit__(self, call_credentialses):
 *     self._call_credentialses = call_credentialses             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *:
*/
  __pyx_t_1 = __pyx_v_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(5, 162, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_call_credentialses);
  __Pyx_DECREF(__pyx_v_self->_call_credentialses);
  __pyx_v_self->_call_credentialses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":161
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   def __cinit__(self, call_credentialses):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":164
 *     self._call_credentialses = call_credentialses
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return _composition(self._call_credentialses)
 * 
*/

static grpc_call_credentials *__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  grpc_call_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_call_credentials *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":165
 * 
 *   cdef grpc_call_credentials *c(self) except *:
 *     return _composition(self._call_credentialses)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__composition(__pyx_t_1); if (unlikely(__pyx_t_2 == ((grpc_call_credentials *)0) && PyErr_Occurred())) __PYX_ERR(5, 165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":164
 *     self._call_credentialses = call_credentialses
 * 
 *   cdef grpc_call_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return _composition(self._call_credentialses)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":47
 * cdef class CompositeCallCredentials(CallCredentials):
 * 
 *   cdef readonly tuple _call_credentialses             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_call_credentials *c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_call_credentialses);
  __pyx_r = __pyx_v_self->_call_credentialses;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeCallCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":170
 * cdef class ChannelCredentials:
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":171
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(5, 171, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":170
 * cdef class ChannelCredentials:
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ChannelCredential); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ChannelCredential); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18ChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":176
 * cdef class SSLSessionCacheLRU:
 * 
 *   def __cinit__(self, capacity):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_capacity = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_capacity,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 176, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 176, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 176, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error)
    }
    __pyx_v_capacity = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 176, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self), __pyx_v_capacity);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, PyObject *__pyx_v_capacity) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":177
 * 
 *   def __cinit__(self, capacity):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":178
 *   def __cinit__(self, capacity):
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)             # <<<<<<<<<<<<<<
 * 
 *   def __int__(self):
*/
  __pyx_t_4 = __Pyx_PyLong_As_size_t(__pyx_v_capacity); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(5, 178, __pyx_L1_error)
  __pyx_v_self->_cache = grpc_ssl_session_cache_create_lru(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":176
 * cdef class SSLSessionCacheLRU:
 * 
 *   def __cinit__(self, capacity):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":180
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
 *   def __int__(self):             # <<<<<<<<<<<<<<
 *     return <uintptr_t>self._cache
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__int__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_2__int__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__int__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":181
 * 
 *   def __int__(self):
 *     return <uintptr_t>self._cache             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_self->_cache)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":180
 *     self._cache = grpc_ssl_session_cache_create_lru(capacity)
 * 
 *   def __int__(self):             # <<<<<<<<<<<<<<
 *     return <uintptr_t>self._cache
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":183
 *     return <uintptr_t>self._cache
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_4__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":184
 * 
 *   def __dealloc__(self):
 *     if self._cache != NULL:             # <<<<<<<<<<<<<<
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()
*/
  __pyx_t_1 = (__pyx_v_self->_cache != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":185
 *   def __dealloc__(self):
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
*/
    grpc_ssl_session_cache_destroy(__pyx_v_self->_cache);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":184
 * 
 *   def __dealloc__(self):
 *     if self._cache != NULL:             # <<<<<<<<<<<<<<
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":186
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":183
 *     return <uintptr_t>self._cache
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self._cache != NULL:
 *         grpc_ssl_session_cache_destroy(self._cache)
*/

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLSessionCacheLRU.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":191
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):             # <<<<<<<<<<<<<<
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_pem_root_certificates = 0;
  PyObject *__pyx_v_private_key = 0;
  PyObject *__pyx_v_certificate_chain = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pem_root_certificates,&__pyx_mstate_global->__pyx_n_u_private_key,&__pyx_mstate_global->__pyx_n_u_certificate_chain,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 191, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 191, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 191, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 191, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 191, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(5, 191, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 191, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 191, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 191, __pyx_L3_error)
    }
    __pyx_v_pem_root_certificates = values[0];
    __pyx_v_private_key = values[1];
    __pyx_v_certificate_chain = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 191, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self), __pyx_v_pem_root_certificates, __pyx_v_private_key, __pyx_v_certificate_chain);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, PyObject *__pyx_v_pem_root_certificates, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":192
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):             # <<<<<<<<<<<<<<
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
*/
  __pyx_t_2 = (__pyx_v_pem_root_certificates != Py_None);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyBytes_Check(__pyx_v_pem_root_certificates); 
  __pyx_t_3 = (!__pyx_t_2);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":193
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))             # <<<<<<<<<<<<<<
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_6 = __pyx_builtin_TypeError; 
    __pyx_t_7 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_expected_certificate_to_be_bytes, ((PyObject *)Py_TYPE(__pyx_v_pem_root_certificates))); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 193, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(5, 193, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":192
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):             # <<<<<<<<<<<<<<
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":194
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates             # <<<<<<<<<<<<<<
 *     self._private_key = private_key
 *     self._certificate_chain = certificate_chain
*/
  __Pyx_INCREF(__pyx_v_pem_root_certificates);
  __Pyx_GIVEREF(__pyx_v_pem_root_certificates);
  __Pyx_GOTREF(__pyx_v_self->_pem_root_certificates);
  __Pyx_DECREF(__pyx_v_self->_pem_root_certificates);
  __pyx_v_self->_pem_root_certificates = __pyx_v_pem_root_certificates;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":195
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key             # <<<<<<<<<<<<<<
 *     self._certificate_chain = certificate_chain
 * 
*/
  __Pyx_INCREF(__pyx_v_private_key);
  __Pyx_GIVEREF(__pyx_v_private_key);
  __Pyx_GOTREF(__pyx_v_self->_private_key);
  __Pyx_DECREF(__pyx_v_self->_private_key);
  __pyx_v_self->_private_key = __pyx_v_private_key;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":196
 *     self._pem_root_certificates = pem_root_certificates
 *     self._private_key = private_key
 *     self._certificate_chain = certificate_chain             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
  __Pyx_INCREF(__pyx_v_certificate_chain);
  __Pyx_GIVEREF(__pyx_v_certificate_chain);
  __Pyx_GOTREF(__pyx_v_self->_certificate_chain);
  __Pyx_DECREF(__pyx_v_self->_certificate_chain);
  __pyx_v_self->_certificate_chain = __pyx_v_certificate_chain;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":191
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, pem_root_certificates, private_key, certificate_chain):             # <<<<<<<<<<<<<<
 *     if pem_root_certificates is not None and not isinstance(pem_root_certificates, bytes):
 *       raise TypeError('expected certificate to be bytes, got %s' % (type(pem_root_certificates)))
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":198
 *     self._certificate_chain = certificate_chain
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  char const *__pyx_v_c_pem_root_certificates;
  grpc_ssl_pem_key_cert_pair __pyx_v_c_pem_key_certificate_pair;
  grpc_channel_credentials *__pyx_r;
  int __pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_t_3;
  char const *__pyx_t_4;
  char const *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":201
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:             # <<<<<<<<<<<<<<
 *       c_pem_root_certificates = NULL
 *     else:
*/
  __pyx_t_1 = (__pyx_v_self->_pem_root_certificates == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":202
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:
 *       c_pem_root_certificates = NULL             # <<<<<<<<<<<<<<
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
*/
    __pyx_v_c_pem_root_certificates = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":201
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
 *     if self._pem_root_certificates is None:             # <<<<<<<<<<<<<<
 *       c_pem_root_certificates = NULL
 *     else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":204
 *       c_pem_root_certificates = NULL
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates             # <<<<<<<<<<<<<<
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:
*/
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_self->_pem_root_certificates); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 204, __pyx_L1_error)
    __pyx_v_c_pem_root_certificates = __pyx_t_2;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":205
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
*/
  __pyx_t_3 = (__pyx_v_self->_private_key == Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_v_self->_certificate_chain == Py_None);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":206
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, NULL, NULL, NULL)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":207
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:
 *         return grpc_ssl_credentials_create(             # <<<<<<<<<<<<<<
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
*/
          __pyx_r = grpc_ssl_credentials_create(__pyx_v_c_pem_root_certificates, NULL, NULL, NULL);
          goto __pyx_L7_return;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":206
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, NULL, NULL, NULL)
*/
        /*finally:*/ {
          __pyx_L7_return: {
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L0;
          }
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":205
 *     else:
 *       c_pem_root_certificates = self._pem_root_certificates
 *     if self._private_key is None and self._certificate_chain is None:             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":210
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
 *       if self._private_key:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
*/
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->_private_key); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 210, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":211
 *     else:
 *       if self._private_key:
 *         c_pem_key_certificate_pair.private_key = self._private_key             # <<<<<<<<<<<<<<
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
*/
      __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_self->_private_key); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 211, __pyx_L1_error)
      __pyx_v_c_pem_key_certificate_pair.private_key = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":210
 *             c_pem_root_certificates, NULL, NULL, NULL)
 *     else:
 *       if self._private_key:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
*/
      goto __pyx_L10;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":213
 *         c_pem_key_certificate_pair.private_key = self._private_key
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL             # <<<<<<<<<<<<<<
 *       if self._certificate_chain:
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
*/
    /*else*/ {
      __pyx_v_c_pem_key_certificate_pair.private_key = NULL;
    }
    __pyx_L10:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":214
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
*/
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->_certificate_chain); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(5, 214, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":215
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain             # <<<<<<<<<<<<<<
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
*/
      __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_self->_certificate_chain); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(5, 215, __pyx_L1_error)
      __pyx_v_c_pem_key_certificate_pair.cert_chain = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":214
 *       else:
 *         c_pem_key_certificate_pair.private_key = NULL
 *       if self._certificate_chain:             # <<<<<<<<<<<<<<
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
*/
      goto __pyx_L11;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":217
 *         c_pem_key_certificate_pair.certificate_chain = self._certificate_chain
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL             # <<<<<<<<<<<<<<
 *       with nogil:
 *         return grpc_ssl_credentials_create(
*/
    /*else*/ {
      __pyx_v_c_pem_key_certificate_pair.cert_chain = NULL;
    }
    __pyx_L11:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":218
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":219
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:
 *         return grpc_ssl_credentials_create(             # <<<<<<<<<<<<<<
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
 * 
*/
          __pyx_r = grpc_ssl_credentials_create(__pyx_v_c_pem_root_certificates, (&__pyx_v_c_pem_key_certificate_pair), NULL, NULL);
          goto __pyx_L12_return;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":218
 *       else:
 *         c_pem_key_certificate_pair.certificate_chain = NULL
 *       with nogil:             # <<<<<<<<<<<<<<
 *         return grpc_ssl_credentials_create(
 *             c_pem_root_certificates, &c_pem_key_certificate_pair, NULL, NULL)
*/
        /*finally:*/ {
          __pyx_L12_return: {
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L0;
          }
        }
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":198
 *     self._certificate_chain = certificate_chain
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef const char *c_pem_root_certificates
 *     cdef grpc_ssl_pem_key_cert_pair c_pem_key_certificate_pair
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":64
 * cdef class SSLChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly object _pem_root_certificates             # <<<<<<<<<<<<<<
 *   cdef readonly object _private_key
 *   cdef readonly object _certificate_chain
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_pem_root_certificates);
  __pyx_r = __pyx_v_self->_pem_root_certificates;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":65
 * 
 *   cdef readonly object _pem_root_certificates
 *   cdef readonly object _private_key             # <<<<<<<<<<<<<<
 *   cdef readonly object _certificate_chain
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_private_key);
  __pyx_r = __pyx_v_self->_private_key;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":66
 *   cdef readonly object _pem_root_certificates
 *   cdef readonly object _private_key
 *   cdef readonly object _certificate_chain             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_certificate_chain);
  __pyx_r = __pyx_v_self->_certificate_chain;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SSLChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":225
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_call_credentialses = 0;
  PyObject *__pyx_v_channel_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_credentialses,&__pyx_mstate_global->__pyx_n_u_channel_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 225, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 225, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 225, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 225, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(5, 225, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 225, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 225, __pyx_L3_error)
    }
    __pyx_v_call_credentialses = values[0];
    __pyx_v_channel_credentials = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 225, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self), __pyx_v_call_credentialses, __pyx_v_channel_credentials);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, PyObject *__pyx_v_call_credentialses, PyObject *__pyx_v_channel_credentials) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":226
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):
 *     self._call_credentialses = call_credentialses             # <<<<<<<<<<<<<<
 *     self._channel_credentials = channel_credentials
 * 
*/
  __pyx_t_1 = __pyx_v_call_credentialses;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_call_credentialses);
  __Pyx_DECREF(__pyx_v_self->_call_credentialses);
  __pyx_v_self->_call_credentialses = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":227
 *   def __cinit__(self, call_credentialses, channel_credentials):
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
  __pyx_t_1 = __pyx_v_channel_credentials;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials))))) __PYX_ERR(5, 227, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel_credentials);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel_credentials);
  __pyx_v_self->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":225
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, call_credentialses, channel_credentials):             # <<<<<<<<<<<<<<
 *     self._call_credentialses = call_credentialses
 *     self._channel_credentials = channel_credentials
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":229
 *     self._channel_credentials = channel_credentials
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_v_c_channel_credentials;
  grpc_call_credentials *__pyx_v_c_call_credentials_composition;
  grpc_channel_credentials *__pyx_v_c_composition;
  grpc_channel_credentials *__pyx_r;
  __Pyx_RefNannyDeclarations
  grpc_channel_credentials *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_call_credentials *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":231
 *   cdef grpc_channel_credentials *c(self) except *:
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(
 *         self._call_credentialses)
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self->_channel_credentials->__pyx_vtab)->c(__pyx_v_self->_channel_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 231, __pyx_L1_error)
  __pyx_v_c_channel_credentials = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":233
 *     c_channel_credentials = self._channel_credentials.c()
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(
 *         self._call_credentialses)             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *composition
 *     c_composition = grpc_composite_channel_credentials_create(
*/
  __pyx_t_2 = __pyx_v_self->_call_credentialses;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":232
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
 *     cdef grpc_call_credentials *c_call_credentials_composition = _composition(             # <<<<<<<<<<<<<<
 *         self._call_credentialses)
 *     cdef grpc_channel_credentials *composition
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__composition(__pyx_t_2); if (unlikely(__pyx_t_3 == ((grpc_call_credentials *)0) && PyErr_Occurred())) __PYX_ERR(5, 232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_call_credentials_composition = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":235
 *         self._call_credentialses)
 *     cdef grpc_channel_credentials *composition
 *     c_composition = grpc_composite_channel_credentials_create(             # <<<<<<<<<<<<<<
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)
*/
  __pyx_v_c_composition = grpc_composite_channel_credentials_create(__pyx_v_c_channel_credentials, __pyx_v_c_call_credentials_composition, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":237
 *     c_composition = grpc_composite_channel_credentials_create(
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)             # <<<<<<<<<<<<<<
 *     grpc_call_credentials_release(c_call_credentials_composition)
 *     return c_composition
*/
  grpc_channel_credentials_release(__pyx_v_c_channel_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":238
 *         c_channel_credentials, c_call_credentials_composition, NULL)
 *     grpc_channel_credentials_release(c_channel_credentials)
 *     grpc_call_credentials_release(c_call_credentials_composition)             # <<<<<<<<<<<<<<
 *     return c_composition
 * 
*/
  grpc_call_credentials_release(__pyx_v_c_call_credentials_composition);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":239
 *     grpc_channel_credentials_release(c_channel_credentials)
 *     grpc_call_credentials_release(c_call_credentials_composition)
 *     return c_composition             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_c_composition;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":229
 *     self._channel_credentials = channel_credentials
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_channel_credentials *c_channel_credentials
 *     c_channel_credentials = self._channel_credentials.c()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":73
 * cdef class CompositeChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly tuple _call_credentialses             # <<<<<<<<<<<<<<
 *   cdef readonly ChannelCredentials _channel_credentials
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_call_credentialses);
  __pyx_r = __pyx_v_self->_call_credentialses;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":74
 * 
 *   cdef readonly tuple _call_credentialses
 *   cdef readonly ChannelCredentials _channel_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_channel_credentials);
  __pyx_r = ((PyObject *)__pyx_v_self->_channel_credentials);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompositeChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":244
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *     def __cinit__(self, fallback_credentials):             # <<<<<<<<<<<<<<
 *         self._fallback_credentials = fallback_credentials
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fallback_credentials = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_fallback_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 244, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 244, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 244, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error)
    }
    __pyx_v_fallback_credentials = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 244, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self), __pyx_v_fallback_credentials);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_fallback_credentials) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":245
 * 
 *     def __cinit__(self, fallback_credentials):
 *         self._fallback_credentials = fallback_credentials             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_channel_credentials *c(self) except *:
*/
  __pyx_t_1 = __pyx_v_fallback_credentials;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials))))) __PYX_ERR(5, 245, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __pyx_v_self->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":244
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *     def __cinit__(self, fallback_credentials):             # <<<<<<<<<<<<<<
 *         self._fallback_credentials = fallback_credentials
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":247
 *         self._fallback_credentials = fallback_credentials
 * 
 *     cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_v_c_fallback_creds;
  grpc_channel_credentials *__pyx_v_xds_creds;
  grpc_channel_credentials *__pyx_r;
  grpc_channel_credentials *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":248
 * 
 *     cdef grpc_channel_credentials *c(self) except *:
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_self->_fallback_credentials->__pyx_vtab)->c(__pyx_v_self->_fallback_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 248, __pyx_L1_error)
  __pyx_v_c_fallback_creds = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":249
 *     cdef grpc_channel_credentials *c(self) except *:
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)             # <<<<<<<<<<<<<<
 *       grpc_channel_credentials_release(c_fallback_creds)
 *       return xds_creds
*/
  __pyx_v_xds_creds = grpc_xds_credentials_create(__pyx_v_c_fallback_creds);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":250
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)             # <<<<<<<<<<<<<<
 *       return xds_creds
 * 
*/
  grpc_channel_credentials_release(__pyx_v_c_fallback_creds);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":251
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
 *       grpc_channel_credentials_release(c_fallback_creds)
 *       return xds_creds             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_xds_creds;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":247
 *         self._fallback_credentials = fallback_credentials
 * 
 *     cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *       cdef grpc_channel_credentials *c_fallback_creds = self._fallback_credentials.c()
 *       cdef grpc_channel_credentials *xds_creds = grpc_xds_credentials_create(c_fallback_creds)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi":81
 * cdef class XDSChannelCredentials(ChannelCredentials):
 * 
 *   cdef readonly ChannelCredentials _fallback_credentials             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_fallback_credentials);
  __pyx_r = ((PyObject *)__pyx_v_self->_fallback_credentials);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.XDSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":256
 * cdef class ServerCertificateConfig:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":257
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":258
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL             # <<<<<<<<<<<<<<
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL
*/
  __pyx_v_self->c_cert_config = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":259
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL             # <<<<<<<<<<<<<<
 *     self.c_ssl_pem_key_cert_pairs = NULL
 *     self.references = []
*/
  __pyx_v_self->c_pem_root_certs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":260
 *     self.c_cert_config = NULL
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 * 
*/
  __pyx_v_self->c_ssl_pem_key_cert_pairs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":261
 *     self.c_pem_root_certs = NULL
 *     self.c_ssl_pem_key_cert_pairs = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":256
 * cdef class ServerCertificateConfig:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_cert_config = NULL
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":263
 *     self.references = []
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":264
 * 
 *   def __dealloc__(self):
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)             # <<<<<<<<<<<<<<
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 *     grpc_shutdown()
*/
  grpc_ssl_server_certificate_config_destroy(__pyx_v_self->c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":265
 *   def __dealloc__(self):
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
*/
  gpr_free(__pyx_v_self->c_ssl_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":266
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":263
 *     self.references = []
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     grpc_ssl_server_certificate_config_destroy(self.c_cert_config)
 *     gpr_free(self.c_ssl_pem_key_cert_pairs)
*/

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCertificateConfig.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":271
 * cdef class ServerCredentials:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":272
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.c_credentials = NULL
 *     self.references = []
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":273
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL             # <<<<<<<<<<<<<<
 *     self.references = []
 *     self.initial_cert_config = None
*/
  __pyx_v_self->c_credentials = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":274
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
 *     self.references = []             # <<<<<<<<<<<<<<
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":275
 *     self.c_credentials = NULL
 *     self.references = []
 *     self.initial_cert_config = None             # <<<<<<<<<<<<<<
 *     self.cert_config_fetcher = None
 *     self.initial_cert_config_fetched = False
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->initial_cert_config);
  __Pyx_DECREF(__pyx_v_self->initial_cert_config);
  __pyx_v_self->initial_cert_config = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":276
 *     self.references = []
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None             # <<<<<<<<<<<<<<
 *     self.initial_cert_config_fetched = False
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->cert_config_fetcher);
  __Pyx_DECREF(__pyx_v_self->cert_config_fetcher);
  __pyx_v_self->cert_config_fetcher = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":277
 *     self.initial_cert_config = None
 *     self.cert_config_fetcher = None
 *     self.initial_cert_config_fetched = False             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
  __pyx_v_self->initial_cert_config_fetched = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":271
 * cdef class ServerCredentials:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.c_credentials = NULL
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":279
 *     self.initial_cert_config_fetched = False
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":280
 * 
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:             # <<<<<<<<<<<<<<
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()
*/
  __pyx_t_1 = (__pyx_v_self->c_credentials != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":281
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
*/
    grpc_server_credentials_release(__pyx_v_self->c_credentials);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":280
 * 
 *   def __dealloc__(self):
 *     if self.c_credentials != NULL:             # <<<<<<<<<<<<<<
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":282
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":279
 *     self.initial_cert_config_fetched = False
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_credentials != NULL:
 *       grpc_server_credentials_release(self.c_credentials)
*/

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ServerCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":284
 *     grpc_shutdown()
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):             # <<<<<<<<<<<<<<
 *   if pem_root_certs is None:
 *     return NULL
*/

static char const *__pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(PyObject *__pyx_v_pem_root_certs) {
  char const *__pyx_r;
  int __pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":285
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:             # <<<<<<<<<<<<<<
 *     return NULL
 *   else:
*/
  __pyx_t_1 = (__pyx_v_pem_root_certs == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":286
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:
 *     return NULL             # <<<<<<<<<<<<<<
 *   else:
 *     return pem_root_certs
*/
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":285
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):
 *   if pem_root_certs is None:             # <<<<<<<<<<<<<<
 *     return NULL
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":288
 *     return NULL
 *   else:
 *     return pem_root_certs             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
*/
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_pem_root_certs); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(5, 288, __pyx_L1_error)
    __pyx_r = __pyx_t_2;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":284
 *     grpc_shutdown()
 * 
 * cdef const char* _get_c_pem_root_certs(pem_root_certs):             # <<<<<<<<<<<<<<
 *   if pem_root_certs is None:
 *     return NULL
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_c_pem_root_certs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":290
 *     return pem_root_certs
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
*/

static grpc_ssl_pem_key_cert_pair *__pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(PyObject *__pyx_v_pem_key_cert_pairs) {
  PyObject *__pyx_v_pair = NULL;
  size_t __pyx_v_c_ssl_pem_key_cert_pairs_count;
  grpc_ssl_pem_key_cert_pair *__pyx_v_c_ssl_pem_key_cert_pairs;
  size_t __pyx_v_i;
  grpc_ssl_pem_key_cert_pair *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  size_t __pyx_t_10;
  size_t __pyx_t_11;
  grpc_ssl_pem_key_cert_pair __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_c_ssl_pem_key_cert_pairs", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":292
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:             # <<<<<<<<<<<<<<
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
*/
  if (likely(PyList_CheckExact(__pyx_v_pem_key_cert_pairs)) || PyTuple_CheckExact(__pyx_v_pem_key_cert_pairs)) {
    __pyx_t_1 = __pyx_v_pem_key_cert_pairs; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 292, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 292, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_2);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 292, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 292, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(5, 292, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_pair, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":293
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):             # <<<<<<<<<<<<<<
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_pair, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair); 
    __pyx_t_6 = (!__pyx_t_5);
    if (unlikely(__pyx_t_6)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":294
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "             # <<<<<<<<<<<<<<
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
*/
      __pyx_t_7 = NULL;
      __Pyx_INCREF(__pyx_builtin_TypeError);
      __pyx_t_8 = __pyx_builtin_TypeError; 
      __pyx_t_9 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_expected_pem_key_cert_pairs_to_b};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 294, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(5, 294, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":293
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
 *     if not isinstance(pair, SslPemKeyCertPair):             # <<<<<<<<<<<<<<
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":292
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:             # <<<<<<<<<<<<<<
 *     if not isinstance(pair, SslPemKeyCertPair):
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":296
 *       raise TypeError("expected pem_key_cert_pairs to be sequence of "
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:
*/
  __pyx_t_2 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 296, __pyx_L1_error)
  __pyx_v_c_ssl_pem_key_cert_pairs_count = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":297
 *                       "SslPemKeyCertPair")
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL             # <<<<<<<<<<<<<<
 *   with nogil:
 *     c_ssl_pem_key_cert_pairs = (
*/
  __pyx_v_c_ssl_pem_key_cert_pairs = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":298
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":300
 *   with nogil:
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(             # <<<<<<<<<<<<<<
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
*/
        __pyx_v_c_ssl_pem_key_cert_pairs = ((grpc_ssl_pem_key_cert_pair *)gpr_malloc(((sizeof(grpc_ssl_pem_key_cert_pair)) * __pyx_v_c_ssl_pem_key_cert_pairs_count)));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":298
 *   cdef size_t c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cdef grpc_ssl_pem_key_cert_pair* c_ssl_pem_key_cert_pairs = NULL
 *   with nogil:             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs = (
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":302
 *       <grpc_ssl_pem_key_cert_pair *>gpr_malloc(
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):             # <<<<<<<<<<<<<<
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
*/
  __pyx_t_9 = __pyx_v_c_ssl_pem_key_cert_pairs_count;
  __pyx_t_10 = __pyx_t_9;
  for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
    __pyx_v_i = __pyx_t_11;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":304
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)             # <<<<<<<<<<<<<<
 *   return c_ssl_pem_key_cert_pairs
 * 
*/
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pem_key_cert_pairs, __pyx_v_i, size_t, 0, __Pyx_PyLong_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_t_1)->c_pair;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":303
 *         sizeof(grpc_ssl_pem_key_cert_pair) * c_ssl_pem_key_cert_pairs_count))
 *   for i in range(c_ssl_pem_key_cert_pairs_count):
 *     c_ssl_pem_key_cert_pairs[i] = (             # <<<<<<<<<<<<<<
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
 *   return c_ssl_pem_key_cert_pairs
*/
    (__pyx_v_c_ssl_pem_key_cert_pairs[__pyx_v_i]) = __pyx_t_12;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":305
 *     c_ssl_pem_key_cert_pairs[i] = (
 *       (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair)
 *   return c_ssl_pem_key_cert_pairs             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,
*/
  __pyx_r = __pyx_v_c_ssl_pem_key_cert_pairs;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":290
 *     return pem_root_certs
 * 
 * cdef grpc_ssl_pem_key_cert_pair* _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   # return a malloc'ed grpc_ssl_pem_key_cert_pair from a _list_ of SslPemKeyCertPair
 *   for pair in pem_key_cert_pairs:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc._create_c_ssl_pem_key_cert_pairs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pair);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":307
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_25server_credentials_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_25server_credentials_ssl = {"server_credentials_ssl", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_25server_credentials_ssl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_25server_credentials_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pem_root_certs = 0;
  PyObject *__pyx_v_pem_key_cert_pairs = 0;
  int __pyx_v_force_client_auth;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_ssl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pem_root_certs,&__pyx_mstate_global->__pyx_n_u_pem_key_cert_pairs,&__pyx_mstate_global->__pyx_n_u_force_client_auth,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 307, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "server_credentials_ssl", 0) < 0) __PYX_ERR(5, 307, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("server_credentials_ssl", 1, 3, 3, i); __PYX_ERR(5, 307, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error)
    }
    __pyx_v_pem_root_certs = values[0];
    __pyx_v_pem_key_cert_pairs = values[1];
    __pyx_v_force_client_auth = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_force_client_auth == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 308, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_ssl", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 307, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_24server_credentials_ssl(__pyx_self, __pyx_v_pem_root_certs, __pyx_v_pem_key_cert_pairs, __pyx_v_force_client_auth);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_24server_credentials_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs, int __pyx_v_force_client_auth) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  char const *__pyx_v_c_pem_root_certs;
  grpc_ssl_server_certificate_config *__pyx_v_c_cert_config;
  grpc_ssl_server_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  char const *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  grpc_ssl_pem_key_cert_pair *__pyx_t_8;
  grpc_ssl_client_certificate_request_type __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_ssl", 0);
  __Pyx_INCREF(__pyx_v_pem_root_certs);
  __Pyx_INCREF(__pyx_v_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":309
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)             # <<<<<<<<<<<<<<
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_pem_root_certs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_root_certs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":310
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)
*/
  __pyx_t_1 = PySequence_List(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_key_cert_pairs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":311
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 311, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":312
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)             # <<<<<<<<<<<<<<
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
*/
  if (unlikely(__pyx_v_credentials->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 312, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_credentials->references, __pyx_v_pem_root_certs); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 312, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":313
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
*/
  if (unlikely(__pyx_v_credentials->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 313, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_credentials->references, __pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 313, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":314
 *   credentials.references.append(pem_root_certs)
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)             # <<<<<<<<<<<<<<
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
*/
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(__pyx_v_pem_root_certs); if (unlikely(__pyx_t_6 == ((char const *)0) && PyErr_Occurred())) __PYX_ERR(5, 314, __pyx_L1_error)
  __pyx_v_c_pem_root_certs = __pyx_t_6;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":315
 *   credentials.references.append(pem_key_cert_pairs)
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
*/
  __pyx_t_7 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(5, 315, __pyx_L1_error)
  __pyx_v_credentials->c_ssl_pem_key_cert_pairs_count = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":316
 *   cdef const char * c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
 *   c_cert_config = grpc_ssl_server_certificate_config_create(
*/
  __pyx_t_8 = __pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_8 == ((grpc_ssl_pem_key_cert_pair *)0) && PyErr_Occurred())) __PYX_ERR(5, 316, __pyx_L1_error)
  __pyx_v_credentials->c_ssl_pem_key_cert_pairs = __pyx_t_8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":317
 *   credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL             # <<<<<<<<<<<<<<
 *   c_cert_config = grpc_ssl_server_certificate_config_create(
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
*/
  __pyx_v_c_cert_config = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":318
 *   credentials.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cdef grpc_ssl_server_certificate_config *c_cert_config = NULL
 *   c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
 *     credentials.c_ssl_pem_key_cert_pairs_count)
*/
  __pyx_v_c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_c_pem_root_certs, __pyx_v_credentials->c_ssl_pem_key_cert_pairs, __pyx_v_credentials->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":321
 *     c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs,
 *     credentials.c_ssl_pem_key_cert_pairs_count)
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL             # <<<<<<<<<<<<<<
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
*/
  __pyx_v_c_options = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":325
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else             # <<<<<<<<<<<<<<
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 *     c_cert_config)
*/
  if (__pyx_v_force_client_auth) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":324
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY             # <<<<<<<<<<<<<<
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
*/
    __pyx_t_9 = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":326
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,             # <<<<<<<<<<<<<<
 *     c_cert_config)
 *   # C-core assumes ownership of c_options
*/
    __pyx_t_9 = GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":323
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   # C-core assumes ownership of c_cert_config
 *   c_options = grpc_ssl_server_credentials_create_options_using_config(             # <<<<<<<<<<<<<<
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
*/
  __pyx_v_c_options = grpc_ssl_server_credentials_create_options_using_config(__pyx_t_9, __pyx_v_c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":329
 *     c_cert_config)
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
*/
  __pyx_v_credentials->c_credentials = grpc_ssl_server_credentials_create_with_options(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":330
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":307
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XDECREF(__pyx_v_pem_root_certs);
  __Pyx_XDECREF(__pyx_v_pem_key_cert_pairs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":332
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27server_certificate_config_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_27server_certificate_config_ssl = {"server_certificate_config_ssl", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27server_certificate_config_ssl, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_27server_certificate_config_ssl(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pem_root_certs = 0;
  PyObject *__pyx_v_pem_key_cert_pairs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_certificate_config_ssl (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pem_root_certs,&__pyx_mstate_global->__pyx_n_u_pem_key_cert_pairs,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 332, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 332, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 332, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "server_certificate_config_ssl", 0) < 0) __PYX_ERR(5, 332, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("server_certificate_config_ssl", 1, 2, 2, i); __PYX_ERR(5, 332, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 332, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 332, __pyx_L3_error)
    }
    __pyx_v_pem_root_certs = values[0];
    __pyx_v_pem_key_cert_pairs = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_certificate_config_ssl", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 332, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_certificate_config_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26server_certificate_config_ssl(__pyx_self, __pyx_v_pem_root_certs, __pyx_v_pem_key_cert_pairs);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26server_certificate_config_ssl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pem_root_certs, PyObject *__pyx_v_pem_key_cert_pairs) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_cert_config = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  char const *__pyx_t_6;
  Py_ssize_t __pyx_t_7;
  grpc_ssl_pem_key_cert_pair *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_certificate_config_ssl", 0);
  __Pyx_INCREF(__pyx_v_pem_root_certs);
  __Pyx_INCREF(__pyx_v_pem_key_cert_pairs);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":333
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
 *   pem_root_certs = str_to_bytes(pem_root_certs)             # <<<<<<<<<<<<<<
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_pem_root_certs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_root_certs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":334
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)
*/
  __pyx_t_1 = PySequence_List(__pyx_v_pem_key_cert_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_pem_key_cert_pairs, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":335
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()             # <<<<<<<<<<<<<<
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 335, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_cert_config = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":336
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)             # <<<<<<<<<<<<<<
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
*/
  if (unlikely(__pyx_v_cert_config->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 336, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_cert_config->references, __pyx_v_pem_root_certs); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 336, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":337
 *   cdef ServerCertificateConfig cert_config = ServerCertificateConfig()
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
*/
  if (unlikely(__pyx_v_cert_config->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(5, 337, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_cert_config->references, __pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 337, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":338
 *   cert_config.references.append(pem_root_certs)
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)             # <<<<<<<<<<<<<<
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
*/
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__get_c_pem_root_certs(__pyx_v_pem_root_certs); if (unlikely(__pyx_t_6 == ((char const *)0) && PyErr_Occurred())) __PYX_ERR(5, 338, __pyx_L1_error)
  __pyx_v_cert_config->c_pem_root_certs = __pyx_t_6;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":339
 *   cert_config.references.append(pem_key_cert_pairs)
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(
*/
  __pyx_t_7 = PyObject_Length(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(5, 339, __pyx_L1_error)
  __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count = __pyx_t_7;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":340
 *   cert_config.c_pem_root_certs = _get_c_pem_root_certs(pem_root_certs)
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)             # <<<<<<<<<<<<<<
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
*/
  __pyx_t_8 = __pyx_f_4grpc_7_cython_6cygrpc__create_c_ssl_pem_key_cert_pairs(__pyx_v_pem_key_cert_pairs); if (unlikely(__pyx_t_8 == ((grpc_ssl_pem_key_cert_pair *)0) && PyErr_Occurred())) __PYX_ERR(5, 340, __pyx_L1_error)
  __pyx_v_cert_config->c_ssl_pem_key_cert_pairs = __pyx_t_8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":341
 *   cert_config.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs)
 *   cert_config.c_ssl_pem_key_cert_pairs = _create_c_ssl_pem_key_cert_pairs(pem_key_cert_pairs)
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *     cert_config.c_ssl_pem_key_cert_pairs_count)
*/
  __pyx_v_cert_config->c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_cert_config->c_pem_root_certs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":344
 *     cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *     cert_config.c_ssl_pem_key_cert_pairs_count)
 *   return cert_config             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_cert_config);
  __pyx_r = ((PyObject *)__pyx_v_cert_config);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":332
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_certificate_config_ssl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cert_config);
  __Pyx_XDECREF(__pyx_v_pem_root_certs);
  __Pyx_XDECREF(__pyx_v_pem_key_cert_pairs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":346
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29server_credentials_ssl_dynamic_cert_config(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29server_credentials_ssl_dynamic_cert_config = {"server_credentials_ssl_dynamic_cert_config", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29server_credentials_ssl_dynamic_cert_config, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29server_credentials_ssl_dynamic_cert_config(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_initial_cert_config = 0;
  PyObject *__pyx_v_cert_config_fetcher = 0;
  int __pyx_v_force_client_auth;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_ssl_dynamic_cert_config (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_initial_cert_config,&__pyx_mstate_global->__pyx_n_u_cert_config_fetcher,&__pyx_mstate_global->__pyx_n_u_force_client_auth,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 346, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 346, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "server_credentials_ssl_dynamic_cert_config", 0) < 0) __PYX_ERR(5, 346, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("server_credentials_ssl_dynamic_cert_config", 1, 3, 3, i); __PYX_ERR(5, 346, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 346, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 346, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 346, __pyx_L3_error)
    }
    __pyx_v_initial_cert_config = values[0];
    __pyx_v_cert_config_fetcher = values[1];
    __pyx_v_force_client_auth = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_force_client_auth == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 348, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_ssl_dynamic_cert_config", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 346, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl_dynamic_cert_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28server_credentials_ssl_dynamic_cert_config(__pyx_self, __pyx_v_initial_cert_config, __pyx_v_cert_config_fetcher, __pyx_v_force_client_auth);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28server_credentials_ssl_dynamic_cert_config(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_initial_cert_config, PyObject *__pyx_v_cert_config_fetcher, int __pyx_v_force_client_auth) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  grpc_ssl_server_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  grpc_ssl_client_certificate_request_type __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_ssl_dynamic_cert_config", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":349
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_grpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ServerCertificateConfiguration); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_initial_cert_config, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(5, 349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = (!__pyx_t_3);
  if (unlikely(__pyx_t_4)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":350
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):
 *     raise TypeError(             # <<<<<<<<<<<<<<
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
*/
    __pyx_t_1 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_5 = __pyx_builtin_TypeError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_initial_cert_config_must_be_a_gr};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 350, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 350, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":349
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
 *   if not isinstance(initial_cert_config, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":352
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):             # <<<<<<<<<<<<<<
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
*/
  __pyx_t_4 = __Pyx_PyCallable_Check(__pyx_v_cert_config_fetcher); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(5, 352, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_4);
  if (unlikely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":353
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):
 *     raise TypeError('cert_config_fetcher must be callable')             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_1 = __pyx_builtin_TypeError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_cert_config_fetcher_must_be_call};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 353, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 353, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":352
 *     raise TypeError(
 *         'initial_cert_config must be a grpc.ServerCertificateConfiguration')
 *   if not callable(cert_config_fetcher):             # <<<<<<<<<<<<<<
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":354
 *   if not callable(cert_config_fetcher):
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher
*/
  __pyx_t_1 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 354, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_2);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":355
 *     raise TypeError('cert_config_fetcher must be callable')
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config             # <<<<<<<<<<<<<<
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
*/
  __Pyx_INCREF(__pyx_v_initial_cert_config);
  __Pyx_GIVEREF(__pyx_v_initial_cert_config);
  __Pyx_GOTREF(__pyx_v_credentials->initial_cert_config);
  __Pyx_DECREF(__pyx_v_credentials->initial_cert_config);
  __pyx_v_credentials->initial_cert_config = __pyx_v_initial_cert_config;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":356
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher             # <<<<<<<<<<<<<<
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
*/
  __Pyx_INCREF(__pyx_v_cert_config_fetcher);
  __Pyx_GIVEREF(__pyx_v_cert_config_fetcher);
  __Pyx_GOTREF(__pyx_v_credentials->cert_config_fetcher);
  __Pyx_DECREF(__pyx_v_credentials->cert_config_fetcher);
  __pyx_v_credentials->cert_config_fetcher = __pyx_v_cert_config_fetcher;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":357
 *   credentials.initial_cert_config = initial_cert_config
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL             # <<<<<<<<<<<<<<
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
*/
  __pyx_v_c_options = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":360
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else             # <<<<<<<<<<<<<<
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
 *     _server_cert_config_fetcher_wrapper,
*/
  if (__pyx_v_force_client_auth) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":359
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY             # <<<<<<<<<<<<<<
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
*/
    __pyx_t_7 = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY;
  } else {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":361
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
 *     GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,             # <<<<<<<<<<<<<<
 *     _server_cert_config_fetcher_wrapper,
 *     <void*>credentials)
*/
    __pyx_t_7 = GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":358
 *   credentials.cert_config_fetcher = cert_config_fetcher
 *   cdef grpc_ssl_server_credentials_options* c_options = NULL
 *   c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(             # <<<<<<<<<<<<<<
 *     GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
 *     if force_client_auth else
*/
  __pyx_v_c_options = grpc_ssl_server_credentials_create_options_using_config_fetcher(__pyx_t_7, __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper, ((void *)__pyx_v_credentials));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":365
 *     <void*>credentials)
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
*/
  __pyx_v_credentials->c_credentials = grpc_ssl_server_credentials_create_with_options(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":366
 *   # C-core assumes ownership of c_options
 *   credentials.c_credentials = grpc_ssl_server_credentials_create_with_options(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":346
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_ssl_dynamic_cert_config", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":368
 *   return credentials
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(             # <<<<<<<<<<<<<<
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
*/

static grpc_ssl_certificate_config_reload_status __pyx_f_4grpc_7_cython_6cygrpc__server_cert_config_fetcher_wrapper(void *__pyx_v_user_data, grpc_ssl_server_certificate_config **__pyx_v_config) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *__pyx_v_cert_config = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = NULL;
  PyObject *__pyx_v_user_cb = NULL;
  PyObject *__pyx_v_cert_config_wrapper = NULL;
  grpc_ssl_certificate_config_reload_status __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_RefNannySetupContext("_server_cert_config_fetcher_wrapper", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":371
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None             # <<<<<<<<<<<<<<
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')
*/
  __Pyx_INCREF(Py_None);
  __pyx_v_cert_config = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":372
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:             # <<<<<<<<<<<<<<
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
*/
  __pyx_t_1 = (!(__pyx_v_user_data != 0));
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":373
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')             # <<<<<<<<<<<<<<
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_internal_error_user_data_must_be};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(5, 373, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":372
 *   # This is a credentials.ServerCertificateConfig
 *   cdef ServerCertificateConfig cert_config = None
 *   if not user_data:             # <<<<<<<<<<<<<<
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":374
 *   if not user_data:
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data             # <<<<<<<<<<<<<<
 *   if not credentials.initial_cert_config_fetched:
 *     # C-core is asking for the initial cert config
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_user_data);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":375
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:             # <<<<<<<<<<<<<<
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
*/
  __pyx_t_1 = (!__pyx_v_credentials->initial_cert_config_fetched);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":377
 *   if not credentials.initial_cert_config_fetched:
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True             # <<<<<<<<<<<<<<
 *     cert_config = credentials.initial_cert_config._certificate_configuration
 *   else:
*/
    __pyx_v_credentials->initial_cert_config_fetched = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":378
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
 *     cert_config = credentials.initial_cert_config._certificate_configuration             # <<<<<<<<<<<<<<
 *   else:
 *     user_cb = credentials.cert_config_fetcher
*/
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_credentials->initial_cert_config, __pyx_mstate_global->__pyx_n_u_certificate_configuration); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig))))) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_cert_config, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":375
 *     raise ValueError('internal error: user_data must be specified')
 *   credentials = <ServerCredentials>user_data
 *   if not credentials.initial_cert_config_fetched:             # <<<<<<<<<<<<<<
 *     # C-core is asking for the initial cert config
 *     credentials.initial_cert_config_fetched = True
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":380
 *     cert_config = credentials.initial_cert_config._certificate_configuration
 *   else:
 *     user_cb = credentials.cert_config_fetcher             # <<<<<<<<<<<<<<
 *     try:
 *       cert_config_wrapper = user_cb()
*/
  /*else*/ {
    __pyx_t_2 = __pyx_v_credentials->cert_config_fetcher;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v_user_cb = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":382
 *     user_cb = credentials.cert_config_fetcher
 *     try:
 *       cert_config_wrapper = user_cb()             # <<<<<<<<<<<<<<
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')
*/
        __pyx_t_4 = NULL;
        __Pyx_INCREF(__pyx_v_user_cb);
        __pyx_t_3 = __pyx_v_user_cb; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          assert(__pyx_t_4);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 382, __pyx_L5_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_v_cert_config_wrapper = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
*/
      }
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":383
 *     try:
 *       cert_config_wrapper = user_cb()
 *     except Exception:             # <<<<<<<<<<<<<<
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
*/
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
      if (__pyx_t_9) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._server_cert_config_fetcher_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(5, 383, __pyx_L7_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_3);
        __Pyx_XGOTREF(__pyx_t_4);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":384
 *       cert_config_wrapper = user_cb()
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 384, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 384, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_13);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_mstate_global->__pyx_kp_u_Error_fetching_certificate_confi};
          __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 384, __pyx_L7_except_error)
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":385
 *     except Exception:
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL             # <<<<<<<<<<<<<<
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
*/
        __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_except_return;
      }
      goto __pyx_L7_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":381
 *   else:
 *     user_cb = credentials.cert_config_fetcher
 *     try:             # <<<<<<<<<<<<<<
 *       cert_config_wrapper = user_cb()
 *     except Exception:
*/
      __pyx_L7_except_error:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L8_except_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
      __pyx_L10_try_end:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
*/
    __pyx_t_1 = (__pyx_v_cert_config_wrapper == Py_None);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":387
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED             # <<<<<<<<<<<<<<
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
*/
      __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":386
 *       _LOGGER.exception('Error fetching certificate config')
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     if cert_config_wrapper is None:             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":389
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):             # <<<<<<<<<<<<<<
 *       _LOGGER.error(
 *           'Error fetching certificate configuration: certificate '
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_grpc); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ServerCertificateConfiguration); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":388
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(             # <<<<<<<<<<<<<<
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(
*/
    __pyx_t_1 = PyObject_IsInstance(__pyx_v_cert_config_wrapper, __pyx_t_3); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 388, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = (!__pyx_t_1);
    if (__pyx_t_14) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":390
 *     elif not isinstance(
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(             # <<<<<<<<<<<<<<
 *           'Error fetching certificate configuration: certificate '
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
*/
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 390, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 390, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":393
 *           'Error fetching certificate configuration: certificate '
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
 *           'not %s' % type(cert_config_wrapper).__name__)             # <<<<<<<<<<<<<<
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     else:
*/
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_cert_config_wrapper)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 393, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_13 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Error_fetching_certificate_confi_2, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 393, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_13};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 390, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":394
 *           'configuration must be of type grpc.ServerCertificateConfiguration, '
 *           'not %s' % type(cert_config_wrapper).__name__)
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL             # <<<<<<<<<<<<<<
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration
*/
      __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":388
 *     if cert_config_wrapper is None:
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED
 *     elif not isinstance(             # <<<<<<<<<<<<<<
 *         cert_config_wrapper, grpc.ServerCertificateConfiguration):
 *       _LOGGER.error(
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":396
 *       return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration             # <<<<<<<<<<<<<<
 *   config[0] = <grpc_ssl_server_certificate_config*>cert_config.c_cert_config
 *   # our caller will assume ownership of memory, so we have to recreate
*/
    /*else*/ {
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cert_config_wrapper, __pyx_mstate_global->__pyx_n_u_certificate_configuration); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig))))) __PYX_ERR(5, 396, __pyx_L1_error)
      __Pyx_DECREF_SET(__pyx_v_cert_config, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)__pyx_t_3));
      __pyx_t_3 = 0;
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":397
 *     else:
 *       cert_config = cert_config_wrapper._certificate_configuration
 *   config[0] = <grpc_ssl_server_certificate_config*>cert_config.c_cert_config             # <<<<<<<<<<<<<<
 *   # our caller will assume ownership of memory, so we have to recreate
 *   # a copy of c_cert_config here
*/
  (__pyx_v_config[0]) = ((grpc_ssl_server_certificate_config *)__pyx_v_cert_config->c_cert_config);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":400
 *   # our caller will assume ownership of memory, so we have to recreate
 *   # a copy of c_cert_config here
 *   cert_config.c_cert_config = grpc_ssl_server_certificate_config_create(             # <<<<<<<<<<<<<<
 *       cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *       cert_config.c_ssl_pem_key_cert_pairs_count)
*/
  __pyx_v_cert_config->c_cert_config = grpc_ssl_server_certificate_config_create(__pyx_v_cert_config->c_pem_root_certs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs, __pyx_v_cert_config->c_ssl_pem_key_cert_pairs_count);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":403
 *       cert_config.c_pem_root_certs, cert_config.c_ssl_pem_key_cert_pairs,
 *       cert_config.c_ssl_pem_key_cert_pairs_count)
 *   return GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_NEW             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_NEW;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":368
 *   return credentials
 * 
 * cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper(             # <<<<<<<<<<<<<<
 *         void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil:
 *   # This is a credentials.ServerCertificateConfig
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._server_cert_config_fetcher_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = (grpc_ssl_certificate_config_reload_status) 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cert_config);
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XDECREF(__pyx_v_user_cb);
  __Pyx_XDECREF(__pyx_v_cert_config_wrapper);
  __Pyx_RefNannyFinishContext();
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":412
 * cdef class LocalChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *     self._local_connect_type = local_connect_type
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_local_connect_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 412, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 412, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 412, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 412, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 412, __pyx_L3_error)
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyLong_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 412, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 412, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self), __pyx_v_local_connect_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":413
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):
 *     self._local_connect_type = local_connect_type             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
  __pyx_v_self->_local_connect_type = __pyx_v_local_connect_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":412
 * cdef class LocalChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *     self._local_connect_type = local_connect_type
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":415
 *     self._local_connect_type = local_connect_type
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  grpc_channel_credentials *__pyx_r;
  grpc_local_connect_type __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":417
 *   cdef grpc_channel_credentials *c(self) except *:
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type             # <<<<<<<<<<<<<<
 *     return grpc_local_credentials_create(local_connect_type)
 * 
*/
  __pyx_t_1 = __pyx_v_self->_local_connect_type;
  __pyx_v_local_connect_type = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":418
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
 *     return grpc_local_credentials_create(local_connect_type)             # <<<<<<<<<<<<<<
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):
*/
  __pyx_r = grpc_local_credentials_create(__pyx_v_local_connect_type);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":415
 *     self._local_connect_type = local_connect_type
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_local_connect_type local_connect_type
 *     local_connect_type = self._local_connect_type
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.LocalChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31channel_credentials_local = {"channel_credentials_local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_local, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31channel_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_local (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_local_connect_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 420, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 420, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channel_credentials_local", 0) < 0) __PYX_ERR(5, 420, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channel_credentials_local", 1, 1, 1, i); __PYX_ERR(5, 420, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 420, __pyx_L3_error)
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyLong_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 420, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_local", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 420, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_local(__pyx_self, __pyx_v_local_connect_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30channel_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_local", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":421
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):
 *   return LocalChannelCredentials(local_connect_type)             # <<<<<<<<<<<<<<
 * 
 * cdef class InsecureChannelCredentials(ChannelCredentials):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials); 
  __pyx_t_4 = __Pyx_PyLong_From_grpc_local_connect_type(__pyx_v_local_connect_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 421, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":425
 * cdef class InsecureChannelCredentials(ChannelCredentials):
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_insecure_credentials_create()
 * 
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":426
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     return grpc_insecure_credentials_create()             # <<<<<<<<<<<<<<
 * 
 * def channel_credentials_insecure():
*/
  __pyx_r = grpc_insecure_credentials_create();
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":425
 * cdef class InsecureChannelCredentials(ChannelCredentials):
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_insecure_credentials_create()
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InsecureChannelCr); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InsecureChannelCr); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.InsecureChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":428
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_33channel_credentials_insecure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_33channel_credentials_insecure = {"channel_credentials_insecure", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_33channel_credentials_insecure, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_33channel_credentials_insecure(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_insecure (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_32channel_credentials_insecure(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_32channel_credentials_insecure(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_insecure", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":429
 * 
 * def channel_credentials_insecure():
 *   return InsecureChannelCredentials()             # <<<<<<<<<<<<<<
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 429, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":428
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_insecure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":431
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_35server_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_35server_credentials_local = {"server_credentials_local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_35server_credentials_local, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_35server_credentials_local(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_local_connect_type __pyx_v_local_connect_type;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_local (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_local_connect_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 431, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 431, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "server_credentials_local", 0) < 0) __PYX_ERR(5, 431, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("server_credentials_local", 1, 1, 1, i); __PYX_ERR(5, 431, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 431, __pyx_L3_error)
    }
    __pyx_v_local_connect_type = ((grpc_local_connect_type)__Pyx_PyLong_As_grpc_local_connect_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 431, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("server_credentials_local", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 431, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_34server_credentials_local(__pyx_self, __pyx_v_local_connect_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_34server_credentials_local(CYTHON_UNUSED PyObject *__pyx_self, grpc_local_connect_type __pyx_v_local_connect_type) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_local", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":432
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 *   return credentials
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 432, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":433
 * def server_credentials_local(grpc_local_connect_type local_connect_type):
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
*/
  __pyx_v_credentials->c_credentials = grpc_local_server_credentials_create(__pyx_v_local_connect_type);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":434
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":431
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_local", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":436
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_37xds_server_credentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_37xds_server_credentials = {"xds_server_credentials", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_37xds_server_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_37xds_server_credentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("xds_server_credentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_fallback_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 436, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 436, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "xds_server_credentials", 0) < 0) __PYX_ERR(5, 436, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("xds_server_credentials", 1, 1, 1, i); __PYX_ERR(5, 436, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 436, __pyx_L3_error)
    }
    __pyx_v_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("xds_server_credentials", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 436, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.xds_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials, 1, "fallback_credentials", 0))) __PYX_ERR(5, 436, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_36xds_server_credentials(__pyx_self, __pyx_v_fallback_credentials);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_36xds_server_credentials(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_fallback_credentials) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("xds_server_credentials", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":437
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
 *   # NOTE: We do not need to call grpc_server_credentials_release on the
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 437, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":438
 * def xds_server_credentials(ServerCredentials fallback_credentials):
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)             # <<<<<<<<<<<<<<
 *   # NOTE: We do not need to call grpc_server_credentials_release on the
 *   # fallback credentials here because this will be done by the __dealloc__
*/
  __pyx_v_credentials->c_credentials = grpc_xds_server_credentials_create(__pyx_v_fallback_credentials->c_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":442
 *   # fallback credentials here because this will be done by the __dealloc__
 *   # method of its Cython wrapper.
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * def insecure_server_credentials():
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":436
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.xds_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":444
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_39insecure_server_credentials(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_39insecure_server_credentials = {"insecure_server_credentials", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_39insecure_server_credentials, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_39insecure_server_credentials(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("insecure_server_credentials (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_38insecure_server_credentials(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_38insecure_server_credentials(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("insecure_server_credentials", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":445
 * 
 * def insecure_server_credentials():
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 *   return credentials
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 445, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":446
 * def insecure_server_credentials():
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()             # <<<<<<<<<<<<<<
 *   return credentials
 * 
*/
  __pyx_v_credentials->c_credentials = grpc_insecure_server_credentials_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":447
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * cdef class ALTSChannelCredentials(ChannelCredentials):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":444
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.insecure_server_credentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":451
 * cdef class ALTSChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, list service_accounts):             # <<<<<<<<<<<<<<
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_service_accounts = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_service_accounts,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 451, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 451, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 451, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 451, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 451, __pyx_L3_error)
    }
    __pyx_v_service_accounts = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 451, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_service_accounts), (&PyList_Type), 1, "service_accounts", 1))) __PYX_ERR(5, 451, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self), __pyx_v_service_accounts);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, PyObject *__pyx_v_service_accounts) {
  PyObject *__pyx_v_account = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":452
 * 
 *   def __cinit__(self, list service_accounts):
 *     self.c_options = grpc_alts_credentials_client_options_create()             # <<<<<<<<<<<<<<
 *     cdef str account
 *     for account in service_accounts:
*/
  __pyx_v_self->c_options = grpc_alts_credentials_client_options_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":454
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 *     for account in service_accounts:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))
*/
  if (unlikely(__pyx_v_service_accounts == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(5, 454, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_service_accounts; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 454, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    __pyx_t_3 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_2);
    ++__pyx_t_2;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(5, 454, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_account, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":456
 *     for account in service_accounts:
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_account); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(__pyx_t_3 == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(5, 456, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 456, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":455
 *     cdef str account
 *     for account in service_accounts:
 *       grpc_alts_credentials_client_options_add_target_service_account(             # <<<<<<<<<<<<<<
 *           self.c_options, str_to_bytes(account))
 * 
*/
    grpc_alts_credentials_client_options_add_target_service_account(__pyx_v_self->c_options, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":454
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
 *     for account in service_accounts:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_client_options_add_target_service_account(
 *           self.c_options, str_to_bytes(account))
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":451
 * cdef class ALTSChannelCredentials(ChannelCredentials):
 * 
 *   def __cinit__(self, list service_accounts):             # <<<<<<<<<<<<<<
 *     self.c_options = grpc_alts_credentials_client_options_create()
 *     cdef str account
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_account);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":458
 *           self.c_options, str_to_bytes(account))
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":459
 * 
 *   def __dealloc__(self):
 *     if self.c_options != NULL:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->c_options != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":460
 *   def __dealloc__(self):
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
    grpc_alts_credentials_options_destroy(__pyx_v_self->c_options);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":459
 * 
 *   def __dealloc__(self):
 *     if self.c_options != NULL:             # <<<<<<<<<<<<<<
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":458
 *           self.c_options, str_to_bytes(account))
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_options != NULL:
 *       grpc_alts_credentials_options_destroy(self.c_options)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":462
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_alts_credentials_create(self.c_options)
 * 
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":463
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     return grpc_alts_credentials_create(self.c_options)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = grpc_alts_credentials_create(__pyx_v_self->c_options);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":462
 *       grpc_alts_credentials_options_destroy(self.c_options)
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     return grpc_alts_credentials_create(self.c_options)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ALTSChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":466
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_41channel_credentials_alts(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_41channel_credentials_alts = {"channel_credentials_alts", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_41channel_credentials_alts, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_41channel_credentials_alts(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_service_accounts = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_alts (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_service_accounts,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 466, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 466, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channel_credentials_alts", 0) < 0) __PYX_ERR(5, 466, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channel_credentials_alts", 1, 1, 1, i); __PYX_ERR(5, 466, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 466, __pyx_L3_error)
    }
    __pyx_v_service_accounts = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_alts", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 466, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_service_accounts), (&PyList_Type), 1, "service_accounts", 1))) __PYX_ERR(5, 466, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_40channel_credentials_alts(__pyx_self, __pyx_v_service_accounts);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_40channel_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_service_accounts) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_alts", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":467
 * 
 * def channel_credentials_alts(list service_accounts):
 *   return ALTSChannelCredentials(service_accounts)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_service_accounts};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 467, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":466
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":470
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_43server_credentials_alts(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_43server_credentials_alts = {"server_credentials_alts", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_43server_credentials_alts, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_43server_credentials_alts(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("server_credentials_alts (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_42server_credentials_alts(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_42server_credentials_alts(CYTHON_UNUSED PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_credentials = 0;
  grpc_alts_credentials_options *__pyx_v_c_options;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("server_credentials_alts", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":471
 * 
 * def server_credentials_alts():
 *   cdef ServerCredentials credentials = ServerCredentials()             # <<<<<<<<<<<<<<
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 471, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":472
 * def server_credentials_alts():
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()             # <<<<<<<<<<<<<<
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
 *   # Options can be destroyed as deep copy was performed.
*/
  __pyx_v_c_options = grpc_alts_credentials_server_options_create();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":473
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)             # <<<<<<<<<<<<<<
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)
*/
  __pyx_v_credentials->c_credentials = grpc_alts_server_credentials_create(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":475
 *   credentials.c_credentials = grpc_alts_server_credentials_create(c_options)
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)             # <<<<<<<<<<<<<<
 *   return credentials
 * 
*/
  grpc_alts_credentials_options_destroy(__pyx_v_c_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":476
 *   # Options can be destroyed as deep copy was performed.
 *   grpc_alts_credentials_options_destroy(c_options)
 *   return credentials             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_credentials);
  __pyx_r = ((PyObject *)__pyx_v_credentials);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":470
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.server_credentials_alts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":483
 *   cdef grpc_call_credentials* _call_creds
 * 
 *   def __cinit__(self, CallCredentials call_creds):             # <<<<<<<<<<<<<<
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_creds,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 483, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 483, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(5, 483, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(5, 483, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 483, __pyx_L3_error)
    }
    __pyx_v_call_creds = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 483, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_creds), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "call_creds", 0))) __PYX_ERR(5, 483, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self), __pyx_v_call_creds);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_creds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  grpc_call_credentials *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":484
 * 
 *   def __cinit__(self, CallCredentials call_creds):
 *     self._c_creds = NULL             # <<<<<<<<<<<<<<
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:
*/
  __pyx_v_self->_c_creds = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":485
 *   def __cinit__(self, CallCredentials call_creds):
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()             # <<<<<<<<<<<<<<
 *     if self._call_creds == NULL:
 *       raise ValueError("Call credentials may not be NULL.")
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_call_creds->__pyx_vtab)->c(__pyx_v_call_creds); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 485, __pyx_L1_error)
  __pyx_v_self->_call_creds = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":486
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:             # <<<<<<<<<<<<<<
 *       raise ValueError("Call credentials may not be NULL.")
 * 
*/
  __pyx_t_2 = (__pyx_v_self->_call_creds == NULL);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":487
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:
 *       raise ValueError("Call credentials may not be NULL.")             # <<<<<<<<<<<<<<
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Call_credentials_may_not_be_NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 487, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(5, 487, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":486
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
 *     if self._call_creds == NULL:             # <<<<<<<<<<<<<<
 *       raise ValueError("Call credentials may not be NULL.")
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":483
 *   cdef grpc_call_credentials* _call_creds
 * 
 *   def __cinit__(self, CallCredentials call_creds):             # <<<<<<<<<<<<<<
 *     self._c_creds = NULL
 *     self._call_creds = call_creds.c()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":489
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
*/

static grpc_channel_credentials *__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self) {
  grpc_channel_credentials *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":490
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":491
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)             # <<<<<<<<<<<<<<
 *       return self._c_creds
 * 
*/
        __pyx_v_self->_c_creds = grpc_google_default_credentials_create(__pyx_v_self->_call_creds);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":492
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_r = __pyx_v_self->_c_creds;
        goto __pyx_L3_return;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":490
 * 
 *   cdef grpc_channel_credentials *c(self) except *:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
 *       return self._c_creds
*/
      /*finally:*/ {
        __pyx_L3_return: {
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L0;
        }
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":489
 *       raise ValueError("Call credentials may not be NULL.")
 * 
 *   cdef grpc_channel_credentials *c(self) except *:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       self._c_creds = grpc_google_default_credentials_create(self._call_creds)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ComputeEngineChannelCredentials.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":495
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_45channel_credentials_compute_engine(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_45channel_credentials_compute_engine = {"channel_credentials_compute_engine", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_45channel_credentials_compute_engine, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_45channel_credentials_compute_engine(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_call_creds = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("channel_credentials_compute_engine (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_creds,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(5, 495, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 495, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "channel_credentials_compute_engine", 0) < 0) __PYX_ERR(5, 495, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("channel_credentials_compute_engine", 1, 1, 1, i); __PYX_ERR(5, 495, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 495, __pyx_L3_error)
    }
    __pyx_v_call_creds = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("channel_credentials_compute_engine", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 495, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_compute_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_44channel_credentials_compute_engine(__pyx_self, __pyx_v_call_creds);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_44channel_credentials_compute_engine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_call_creds) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("channel_credentials_compute_engine", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":496
 * 
 * def channel_credentials_compute_engine(call_creds):
 *   return ComputeEngineChannelCredentials(call_creds)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_call_creds};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 496, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":495
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.channel_credentials_compute_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":19
 * g_interrupt_check_period_ms = 200
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:             # <<<<<<<<<<<<<<
 *   global g_interrupt_check_period_ms
 *   cdef gpr_timespec c_increment
*/

static grpc_event __pyx_f_4grpc_7_cython_6cygrpc__next(grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_deadline) {
  gpr_timespec __pyx_v_c_increment;
  gpr_timespec __pyx_v_c_timeout;
  gpr_timespec __pyx_v_c_deadline;
  int __pyx_v_is_main_thread;
  grpc_event __pyx_v_c_event;
  grpc_event __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  gpr_timespec __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_next", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":25
 *   cdef gpr_timespec c_deadline
 *   cdef bint is_main_thread
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)             # <<<<<<<<<<<<<<
 *   if deadline is None:
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
*/
  __pyx_v_c_increment = gpr_time_from_millis(__pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms, GPR_TIMESPAN);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":26
 *   cdef bint is_main_thread
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:             # <<<<<<<<<<<<<<
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
*/
  __pyx_t_1 = (__pyx_v_deadline == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":27
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *   else:
 *     c_deadline = _timespec_from_time(deadline)
*/
    __pyx_v_c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":26
 *   cdef bint is_main_thread
 *   c_increment = gpr_time_from_millis(g_interrupt_check_period_ms, GPR_TIMESPAN)
 *   if deadline is None:             # <<<<<<<<<<<<<<
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":29
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 * 
 *   is_main_thread = threading.current_thread() is threading.main_thread()
*/
  /*else*/ {
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 29, __pyx_L1_error)
    __pyx_v_c_deadline = __pyx_t_2;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":31
 *     c_deadline = _timespec_from_time(deadline)
 * 
 *   is_main_thread = threading.current_thread() is threading.main_thread()             # <<<<<<<<<<<<<<
 * 
 *   if not is_main_thread:
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_current_thread); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_main_thread); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  __pyx_t_1 = (__pyx_t_3 == __pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_is_main_thread = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":33
 *   is_main_thread = threading.current_thread() is threading.main_thread()
 * 
 *   if not is_main_thread:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       while True:
*/
  __pyx_t_1 = (!__pyx_v_is_main_thread);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":34
 * 
 *   if not is_main_thread:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       while True:
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":35
 *   if not is_main_thread:
 *     with nogil:
 *       while True:             # <<<<<<<<<<<<<<
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *         if gpr_time_cmp(c_timeout, c_deadline) > 0:
*/
          while (1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":36
 *     with nogil:
 *       while True:
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)             # <<<<<<<<<<<<<<
 *         if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *           c_timeout = c_deadline
*/
            __pyx_v_c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), __pyx_v_c_increment);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":37
 *       while True:
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *         if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *           c_timeout = c_deadline
 * 
*/
            __pyx_t_1 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) > 0);
            if (__pyx_t_1) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":38
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *         if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *           c_timeout = c_deadline             # <<<<<<<<<<<<<<
 * 
 *         c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
*/
              __pyx_v_c_timeout = __pyx_v_c_deadline;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":37
 *       while True:
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *         if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *           c_timeout = c_deadline
 * 
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":40
 *           c_timeout = c_deadline
 * 
 *         c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)             # <<<<<<<<<<<<<<
 * 
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or
*/
            __pyx_v_c_event = grpc_completion_queue_next(__pyx_v_c_completion_queue, __pyx_v_c_timeout, NULL);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":42
 *         c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *             gpr_time_cmp(c_timeout, c_deadline) == 0):
 *           break
*/
            __pyx_t_9 = (__pyx_v_c_event.type != GRPC_QUEUE_TIMEOUT);
            if (!__pyx_t_9) {
            } else {
              __pyx_t_1 = __pyx_t_9;
              goto __pyx_L12_bool_binop_done;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":43
 * 
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *             gpr_time_cmp(c_timeout, c_deadline) == 0):             # <<<<<<<<<<<<<<
 *           break
 * 
*/
            __pyx_t_9 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) == 0);
            __pyx_t_1 = __pyx_t_9;
            __pyx_L12_bool_binop_done:;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":42
 *         c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *             gpr_time_cmp(c_timeout, c_deadline) == 0):
 *           break
*/
            if (__pyx_t_1) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":44
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *             gpr_time_cmp(c_timeout, c_deadline) == 0):
 *           break             # <<<<<<<<<<<<<<
 * 
 *     return c_event
*/
              goto __pyx_L9_break;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":42
 *         c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *         if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *             gpr_time_cmp(c_timeout, c_deadline) == 0):
 *           break
*/
            }
          }
          __pyx_L9_break:;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":34
 * 
 *   if not is_main_thread:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       while True:
 *         c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L7;
          }
          __pyx_L7:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":46
 *           break
 * 
 *     return c_event             # <<<<<<<<<<<<<<
 * 
 *   while True:
*/
    __pyx_r = __pyx_v_c_event;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":33
 *   is_main_thread = threading.current_thread() is threading.main_thread()
 * 
 *   if not is_main_thread:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       while True:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":48
 *     return c_event
 * 
 *   while True:             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":49
 * 
 *   while True:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":50
 *   while True:
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)             # <<<<<<<<<<<<<<
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *         c_timeout = c_deadline
*/
          __pyx_v_c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), __pyx_v_c_increment);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":51
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *         c_timeout = c_deadline
 * 
*/
          __pyx_t_1 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) > 0);
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":52
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
 *         c_timeout = c_deadline             # <<<<<<<<<<<<<<
 * 
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
*/
            __pyx_v_c_timeout = __pyx_v_c_deadline;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":51
 *     with nogil:
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:             # <<<<<<<<<<<<<<
 *         c_timeout = c_deadline
 * 
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":54
 *         c_timeout = c_deadline
 * 
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)             # <<<<<<<<<<<<<<
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
*/
          __pyx_v_c_event = grpc_completion_queue_next(__pyx_v_c_completion_queue, __pyx_v_c_timeout, NULL);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":56
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
*/
          __pyx_t_9 = (__pyx_v_c_event.type != GRPC_QUEUE_TIMEOUT);
          if (!__pyx_t_9) {
          } else {
            __pyx_t_1 = __pyx_t_9;
            goto __pyx_L23_bool_binop_done;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":57
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):             # <<<<<<<<<<<<<<
 *         break
 * 
*/
          __pyx_t_9 = (gpr_time_cmp(__pyx_v_c_timeout, __pyx_v_c_deadline) == 0);
          __pyx_t_1 = __pyx_t_9;
          __pyx_L23_bool_binop_done:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":56
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
*/
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":58
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break             # <<<<<<<<<<<<<<
 * 
 *     # Handle any signals
*/
            goto __pyx_L17_break;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":56
 *       c_event = grpc_completion_queue_next(c_completion_queue, c_timeout, NULL)
 * 
 *       if (c_event.type != GRPC_QUEUE_TIMEOUT or             # <<<<<<<<<<<<<<
 *           gpr_time_cmp(c_timeout, c_deadline) == 0):
 *         break
*/
          }
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":49
 * 
 *   while True:
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_timeout = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), c_increment)
 *       if gpr_time_cmp(c_timeout, c_deadline) > 0:
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L20;
          }
          __pyx_L17_break: {
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L15_break;
          }
          __pyx_L20:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":61
 * 
 *     # Handle any signals
 *     cpython.PyErr_CheckSignals()             # <<<<<<<<<<<<<<
 *   return c_event
 * 
*/
    __pyx_t_10 = PyErr_CheckSignals(); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(15, 61, __pyx_L1_error)
  }
  __pyx_L15_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":62
 *     # Handle any signals
 *     cpython.PyErr_CheckSignals()
 *   return c_event             # <<<<<<<<<<<<<<
 * 
 * cdef _interpret_event(grpc_event c_event):
*/
  __pyx_r = __pyx_v_c_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":19
 * g_interrupt_check_period_ms = 200
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:             # <<<<<<<<<<<<<<
 *   global g_interrupt_check_period_ms
 *   cdef gpr_timespec c_increment
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc._next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":64
 *   return c_event
 * 
 * cdef _interpret_event(grpc_event c_event):             # <<<<<<<<<<<<<<
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__interpret_event(grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_interpret_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":66
 * cdef _interpret_event(grpc_event c_event):
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
*/
  switch (__pyx_v_c_event.type) {
    case GRPC_QUEUE_TIMEOUT:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":68
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)             # <<<<<<<<<<<<<<
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
    __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent); 
    __pyx_t_4 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_TIMEOUT); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_4, Py_False, Py_None};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 68, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None) != (0)) __PYX_ERR(15, 68, __pyx_L1_error);
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_1)) != (0)) __PYX_ERR(15, 68, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":66
 * cdef _interpret_event(grpc_event c_event):
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
*/
    break;
    case GRPC_QUEUE_SHUTDOWN:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":71
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)             # <<<<<<<<<<<<<<
 *   else:
 *     tag = <_Tag>c_event.tag
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
    __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent); 
    __pyx_t_2 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_1, __pyx_t_2, Py_False, Py_None};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 71, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_3);
    }
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, Py_None) != (0)) __PYX_ERR(15, 71, __pyx_L1_error);
    __Pyx_GIVEREF((PyObject *)__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_3)) != (0)) __PYX_ERR(15, 71, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":69
 *     # TODO(ericgribkoff) Do not coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_TIMEOUT, False, None)
 *   elif c_event.type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *     # NOTE(nathaniel): For now we coopt ConnectivityEvent here.
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)
*/
    break;
    default:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":73
 *     return None, ConnectivityEvent(GRPC_QUEUE_SHUTDOWN, False, None)
 *   else:
 *     tag = <_Tag>c_event.tag             # <<<<<<<<<<<<<<
 *     # We receive event tags only after they've been inc-ref'd elsewhere in
 *     # the code.
*/
    __pyx_t_4 = ((PyObject *)__pyx_v_c_event.tag);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_v_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":76
 *     # We receive event tags only after they've been inc-ref'd elsewhere in
 *     # the code.
 *     cpython.Py_DECREF(tag)             # <<<<<<<<<<<<<<
 *     return tag, tag.event(c_event)
 * 
*/
    Py_DECREF(((PyObject *)__pyx_v_tag));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":77
 *     # the code.
 *     cpython.Py_DECREF(tag)
 *     return tag, tag.event(c_event)             # <<<<<<<<<<<<<<
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_tag->__pyx_vtab)->event(__pyx_v_tag, __pyx_v_c_event)); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF((PyObject *)__pyx_v_tag);
    __Pyx_GIVEREF((PyObject *)__pyx_v_tag);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_tag)) != (0)) __PYX_ERR(15, 77, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(15, 77, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":64
 *   return c_event
 * 
 * cdef _interpret_event(grpc_event c_event):             # <<<<<<<<<<<<<<
 *   cdef _Tag tag
 *   if c_event.type == GRPC_QUEUE_TIMEOUT:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._interpret_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":79
 *     return tag, tag.event(c_event)
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg) {
  grpc_event __pyx_v_c_event;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  grpc_event __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_internal_latent_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":80
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)             # <<<<<<<<<<<<<<
 *   return _interpret_event(c_event)
 * 
*/
  __pyx_t_1 = __pyx_v_latent_event_arg->deadline;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__next(__pyx_v_latent_event_arg->c_completion_queue, __pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_event = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":81
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)             # <<<<<<<<<<<<<<
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__interpret_event(__pyx_v_c_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":79
 *     return tag, tag.event(c_event)
 * 
 * cdef _internal_latent_event(_LatentEventArg latent_event_arg):             # <<<<<<<<<<<<<<
 *   cdef grpc_event c_event = _next(latent_event_arg.c_completion_queue, latent_event_arg.deadline)
 *   return _interpret_event(c_event)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._internal_latent_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":83
 *   return _interpret_event(c_event)
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__latent_event(grpc_completion_queue *__pyx_v_c_completion_queue, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *__pyx_v_latent_event_arg = NULL;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_latent_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":86
 *     global g_gevent_activated
 * 
 *     latent_event_arg = _LatentEventArg()             # <<<<<<<<<<<<<<
 *     latent_event_arg.c_completion_queue = c_completion_queue
 *     latent_event_arg.deadline = deadline
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 86, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_latent_event_arg = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":87
 * 
 *     latent_event_arg = _LatentEventArg()
 *     latent_event_arg.c_completion_queue = c_completion_queue             # <<<<<<<<<<<<<<
 *     latent_event_arg.deadline = deadline
 * 
*/
  __pyx_v_latent_event_arg->c_completion_queue = __pyx_v_c_completion_queue;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":88
 *     latent_event_arg = _LatentEventArg()
 *     latent_event_arg.c_completion_queue = c_completion_queue
 *     latent_event_arg.deadline = deadline             # <<<<<<<<<<<<<<
 * 
 *     if g_gevent_activated:
*/
  __Pyx_INCREF(__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_v_deadline);
  __Pyx_GOTREF(__pyx_v_latent_event_arg->deadline);
  __Pyx_DECREF(__pyx_v_latent_event_arg->deadline);
  __pyx_v_latent_event_arg->deadline = __pyx_v_deadline;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":90
 *     latent_event_arg.deadline = deadline
 * 
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       # For gevent, completion_queue_next is run in a native thread pool.
 *       global g_gevent_threadpool
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_g_gevent_activated); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":94
 *       global g_gevent_threadpool
 * 
 *       result = g_gevent_threadpool.apply(_internal_latent_event, (latent_event_arg,))             # <<<<<<<<<<<<<<
 *       return result
 *     else:
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_g_gevent_threadpool); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_apply); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(__pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(15, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF((PyObject *)__pyx_v_latent_event_arg);
    __Pyx_GIVEREF((PyObject *)__pyx_v_latent_event_arg);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_latent_event_arg)) != (0)) __PYX_ERR(15, 94, __pyx_L1_error);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 94, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_v_result = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":95
 * 
 *       result = g_gevent_threadpool.apply(_internal_latent_event, (latent_event_arg,))
 *       return result             # <<<<<<<<<<<<<<
 *     else:
 *       return _internal_latent_event(latent_event_arg)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_result);
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":90
 *     latent_event_arg.deadline = deadline
 * 
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       # For gevent, completion_queue_next is run in a native thread pool.
 *       global g_gevent_threadpool
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":97
 *       return result
 *     else:
 *       return _internal_latent_event(latent_event_arg)             # <<<<<<<<<<<<<<
 * 
 * cdef class CompletionQueue:
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__internal_latent_event(__pyx_v_latent_event_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":83
 *   return _interpret_event(c_event)
 * 
 * cdef _latent_event(grpc_completion_queue *c_completion_queue, object deadline):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._latent_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_latent_event_arg);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":101
 * cdef class CompletionQueue:
 * 
 *   def __cinit__(self, shutdown_cq=False):             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_shutdown_cq = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_shutdown_cq,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 101, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 101, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(15, 101, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_False));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 101, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_False));
    }
    __pyx_v_shutdown_cq = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, __pyx_nargs); __PYX_ERR(15, 101, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_shutdown_cq);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_shutdown_cq) {
  grpc_completion_queue_attributes __pyx_v_c_attrs;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":103
 *   def __cinit__(self, shutdown_cq=False):
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     if shutdown_cq:
 *       c_attrs.version = 1
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":104
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:             # <<<<<<<<<<<<<<
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
*/
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_shutdown_cq); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(15, 104, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":105
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:
 *       c_attrs.version = 1             # <<<<<<<<<<<<<<
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
*/
    __pyx_v_c_attrs.version = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":106
 *     if shutdown_cq:
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT             # <<<<<<<<<<<<<<
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL
*/
    __pyx_v_c_attrs.cq_completion_type = GRPC_CQ_NEXT;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":107
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING             # <<<<<<<<<<<<<<
 *       c_attrs.cq_shutdown_cb = NULL
 *       self.c_completion_queue = grpc_completion_queue_create(
*/
    __pyx_v_c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":108
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL             # <<<<<<<<<<<<<<
 *       self.c_completion_queue = grpc_completion_queue_create(
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
*/
    __pyx_v_c_attrs.cq_shutdown_cb = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":109
 *       c_attrs.cq_polling_type = GRPC_CQ_NON_LISTENING
 *       c_attrs.cq_shutdown_cb = NULL
 *       self.c_completion_queue = grpc_completion_queue_create(             # <<<<<<<<<<<<<<
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
 *     else:
*/
    __pyx_v_self->c_completion_queue = grpc_completion_queue_create(grpc_completion_queue_factory_lookup((&__pyx_v_c_attrs)), (&__pyx_v_c_attrs), NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":104
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
 *     if shutdown_cq:             # <<<<<<<<<<<<<<
 *       c_attrs.version = 1
 *       c_attrs.cq_completion_type = GRPC_CQ_NEXT
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":112
 *           grpc_completion_queue_factory_lookup(&c_attrs), &c_attrs, NULL);
 *     else:
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
*/
  /*else*/ {
    __pyx_v_self->c_completion_queue = grpc_completion_queue_create_for_next(NULL);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":113
 *     else:
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)
 *     self.is_shutting_down = False             # <<<<<<<<<<<<<<
 *     self.is_shutdown = False
 * 
*/
  __pyx_v_self->is_shutting_down = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":114
 *       self.c_completion_queue = grpc_completion_queue_create_for_next(NULL)
 *     self.is_shutting_down = False
 *     self.is_shutdown = False             # <<<<<<<<<<<<<<
 * 
 *   cdef _interpret_event(self, grpc_event c_event):
*/
  __pyx_v_self->is_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":101
 * cdef class CompletionQueue:
 * 
 *   def __cinit__(self, shutdown_cq=False):             # <<<<<<<<<<<<<<
 *     cdef grpc_completion_queue_attributes c_attrs
 *     fork_handlers_and_grpc_init()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":116
 *     self.is_shutdown = False
 * 
 *   cdef _interpret_event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, grpc_event __pyx_v_c_event) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_tag = NULL;
  PyObject *__pyx_v_event = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_interpret_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":117
 * 
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)             # <<<<<<<<<<<<<<
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__interpret_event(__pyx_v_c_event); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(15, 117, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_2 = __Pyx_PyList_GetItemRef(sequence, 0);
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 117, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyList_GetItemRef(sequence, 1);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 117, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
    }
    #else
    __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4);
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(15, 117, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(15, 117, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_unused_tag = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_event = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":118
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       self.is_shutdown = True
 *     return event
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_event, __pyx_mstate_global->__pyx_n_u_completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(15, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":119
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True             # <<<<<<<<<<<<<<
 *     return event
 * 
*/
    __pyx_v_self->is_shutdown = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":118
 *   cdef _interpret_event(self, grpc_event c_event):
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       self.is_shutdown = True
 *     return event
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":120
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
 *       self.is_shutdown = True
 *     return event             # <<<<<<<<<<<<<<
 * 
 *   def _internal_poll(self, deadline):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_event);
  __pyx_r = __pyx_v_event;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":116
 *     self.is_shutdown = False
 * 
 *   cdef _interpret_event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     unused_tag, event = _interpret_event(c_event)
 *     if event.completion_type == GRPC_QUEUE_SHUTDOWN:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._interpret_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_unused_tag);
  __Pyx_XDECREF(__pyx_v_event);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":122
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll = {"_internal_poll", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_internal_poll (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_deadline,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 122, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 122, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_internal_poll", 0) < 0) __PYX_ERR(15, 122, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_internal_poll", 1, 1, 1, i); __PYX_ERR(15, 122, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 122, __pyx_L3_error)
    }
    __pyx_v_deadline = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_internal_poll", 1, 1, 1, __pyx_nargs); __PYX_ERR(15, 122, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._internal_poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_deadline);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_2_internal_poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_event __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_internal_poll", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":123
 * 
 *   def _internal_poll(self, deadline):
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))             # <<<<<<<<<<<<<<
 * 
 *   # We name this 'poll' to avoid problems with CPython's expectations for
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__next(__pyx_v_self->c_completion_queue, __pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 123, __pyx_L1_error)
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self->__pyx_vtab)->_interpret_event(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":122
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue._internal_poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":127
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll = {"poll", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("poll (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_deadline,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(15, 127, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 127, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "poll", 0) < 0) __PYX_ERR(15, 127, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(15, 127, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_deadline = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("poll", 0, 0, 1, __pyx_nargs); __PYX_ERR(15, 127, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v_deadline);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_4poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, PyObject *__pyx_v_deadline) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("poll", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":129
 *   def poll(self, deadline=None):
 *     global g_gevent_activated
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_g_gevent_activated); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(15, 129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":130
 *     global g_gevent_activated
 *     if g_gevent_activated:
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))             # <<<<<<<<<<<<<<
 *     else:
 *       return self._internal_poll(deadline)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_g_gevent_threadpool); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_apply); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue), __pyx_mstate_global->__pyx_n_u_internal_poll); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF((PyObject *)__pyx_v_self);
    __Pyx_GIVEREF((PyObject *)__pyx_v_self);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(15, 130, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_deadline);
    __Pyx_GIVEREF(__pyx_v_deadline);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_deadline) != (0)) __PYX_ERR(15, 130, __pyx_L1_error);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":129
 *   def poll(self, deadline=None):
 *     global g_gevent_activated
 *     if g_gevent_activated:             # <<<<<<<<<<<<<<
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":132
 *       return g_gevent_threadpool.apply(CompletionQueue._internal_poll, (self, deadline))
 *     else:
 *       return self._internal_poll(deadline)             # <<<<<<<<<<<<<<
 * 
 *   def shutdown(self):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_7 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_deadline};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_internal_poll, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":127
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":134
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown = {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("shutdown", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("shutdown", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_6shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":135
 * 
 *   def shutdown(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":136
 *   def shutdown(self):
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 * 
*/
        grpc_completion_queue_shutdown(__pyx_v_self->c_completion_queue);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":135
 * 
 *   def shutdown(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":137
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
 *     self.is_shutting_down = True             # <<<<<<<<<<<<<<
 * 
 *   def clear(self):
*/
  __pyx_v_self->is_shutting_down = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":134
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":139
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear = {"clear", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("clear (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("clear", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("clear", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_8clear(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clear", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":140
 * 
 *   def clear(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
*/
  __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":141
 *   def clear(self):
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')             # <<<<<<<<<<<<<<
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
 *       pass
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_queue_must_be_shutting_down_to_b};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(15, 141, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":140
 * 
 *   def clear(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":142
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
 *     while self.poll().type != GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *       pass
 * 
*/
  while (1) {
    __pyx_t_4 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_poll, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 142, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 142, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(15, 142, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!__pyx_t_1) break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":139
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.clear", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":145
 *       pass
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_10__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  gpr_timespec __pyx_v_c_deadline;
  grpc_event __pyx_v_event;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":147
 *   def __dealloc__(self):
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
*/
  __pyx_v_c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":148
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *     if self.c_completion_queue != NULL:             # <<<<<<<<<<<<<<
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
*/
  __pyx_t_1 = (__pyx_v_self->c_completion_queue != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":150
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
 *       if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
*/
    __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":151
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
 *         grpc_completion_queue_shutdown(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:
*/
      grpc_completion_queue_shutdown(__pyx_v_self->c_completion_queue);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":150
 *     if self.c_completion_queue != NULL:
 *       # Ensure shutdown
 *       if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":153
 *         grpc_completion_queue_shutdown(self.c_completion_queue)
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *         event = grpc_completion_queue_next(
 *             self.c_completion_queue, c_deadline, NULL)
*/
    while (1) {
      __pyx_t_1 = (!__pyx_v_self->is_shutdown);
      if (!__pyx_t_1) break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":154
 *       # Pump the queue (All outstanding calls should have been cancelled)
 *       while not self.is_shutdown:
 *         event = grpc_completion_queue_next(             # <<<<<<<<<<<<<<
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)
*/
      __pyx_v_event = grpc_completion_queue_next(__pyx_v_self->c_completion_queue, __pyx_v_c_deadline, NULL);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":156
 *         event = grpc_completion_queue_next(
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)             # <<<<<<<<<<<<<<
 *       grpc_completion_queue_destroy(self.c_completion_queue)
 *     grpc_shutdown()
*/
      __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self->__pyx_vtab)->_interpret_event(__pyx_v_self, __pyx_v_event); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":157
 *             self.c_completion_queue, c_deadline, NULL)
 *         self._interpret_event(event)
 *       grpc_completion_queue_destroy(self.c_completion_queue)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
*/
    grpc_completion_queue_destroy(__pyx_v_self->c_completion_queue);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":148
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
 *     if self.c_completion_queue != NULL:             # <<<<<<<<<<<<<<
 *       # Ensure shutdown
 *       if not self.is_shutting_down:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":158
 *         self._interpret_event(event)
 *       grpc_completion_queue_destroy(self.c_completion_queue)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":145
 *       pass
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     cdef gpr_timespec c_deadline
 *     c_deadline = gpr_inf_future(GPR_CLOCK_REALTIME)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.CompletionQueue.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CompletionQueue_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":17
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_completion_type,&__pyx_mstate_global->__pyx_n_u_success,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(16, 17, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 17, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 17, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 17, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(16, 17, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(16, 17, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 17, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 17, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 17, __pyx_L3_error)
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyLong_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 18, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 18, __pyx_L3_error)
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(16, 17, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":19
 *   def __cinit__(
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
*/
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":20
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 * 
*/
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":21
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":17
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":20
 * cdef class ConnectivityEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":21
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":22
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ConnectivityEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ConnectivityEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":26
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details = 0;
  PyObject *__pyx_v_invocation_metadata = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_completion_type,&__pyx_mstate_global->__pyx_n_u_success,&__pyx_mstate_global->__pyx_n_u_tag,&__pyx_mstate_global->__pyx_n_u_call,&__pyx_mstate_global->__pyx_n_u_call_details,&__pyx_mstate_global->__pyx_n_u_invocation_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(16, 26, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_VARARGS(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(16, 26, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, i); __PYX_ERR(16, 26, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 26, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 26, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 26, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(16, 26, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(16, 26, __pyx_L3_error)
      values[5] = __Pyx_ArgRef_VARARGS(__pyx_args, 5);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(16, 26, __pyx_L3_error)
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyLong_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 27, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 27, __pyx_L3_error)
    __pyx_v_tag = values[2];
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[3]);
    __pyx_v_call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)values[4]);
    __pyx_v_invocation_metadata = ((PyObject*)values[5]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 6, 6, __pyx_nargs); __PYX_ERR(16, 26, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(16, 28, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_details), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails, 1, "call_details", 0))) __PYX_ERR(16, 28, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_invocation_metadata), (&PyTuple_Type), 1, "invocation_metadata", 1))) __PYX_ERR(16, 28, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag, __pyx_v_call, __pyx_v_call_details, __pyx_v_invocation_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_call_details, PyObject *__pyx_v_invocation_metadata) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":29
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
*/
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":30
 *       Call call, CallDetails call_details, tuple invocation_metadata):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 *     self.call = call
*/
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":31
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 *     self.call = call
 *     self.call_details = call_details
*/
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":32
 *     self.success = success
 *     self.tag = tag
 *     self.call = call             # <<<<<<<<<<<<<<
 *     self.call_details = call_details
 *     self.invocation_metadata = invocation_metadata
*/
  __Pyx_INCREF((PyObject *)__pyx_v_call);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = __pyx_v_call;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":33
 *     self.tag = tag
 *     self.call = call
 *     self.call_details = call_details             # <<<<<<<<<<<<<<
 *     self.invocation_metadata = invocation_metadata
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_v_call_details);
  __Pyx_GIVEREF((PyObject *)__pyx_v_call_details);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = __pyx_v_call_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":34
 *     self.call = call
 *     self.call_details = call_details
 *     self.invocation_metadata = invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF(__pyx_v_invocation_metadata);
  __Pyx_GIVEREF(__pyx_v_invocation_metadata);
  __Pyx_GOTREF(__pyx_v_self->invocation_metadata);
  __Pyx_DECREF(__pyx_v_self->invocation_metadata);
  __pyx_v_self->invocation_metadata = __pyx_v_invocation_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":26
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       Call call, CallDetails call_details, tuple invocation_metadata):
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":27
 * cdef class RequestCallEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":28
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 *   cdef readonly Call call
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":29
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":30
 *   cdef readonly bint success
 *   cdef readonly object tag
 *   cdef readonly Call call             # <<<<<<<<<<<<<<
 *   cdef readonly CallDetails call_details
 *   cdef readonly tuple invocation_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call);
  __pyx_r = ((PyObject *)__pyx_v_self->call);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":31
 *   cdef readonly object tag
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details             # <<<<<<<<<<<<<<
 *   cdef readonly tuple invocation_metadata
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->call_details);
  __pyx_r = ((PyObject *)__pyx_v_self->call_details);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":32
 *   cdef readonly Call call
 *   cdef readonly CallDetails call_details
 *   cdef readonly tuple invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->invocation_metadata);
  __pyx_r = __pyx_v_self->invocation_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RequestCallEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RequestCallEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":39
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  PyObject *__pyx_v_batch_operations = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_completion_type,&__pyx_mstate_global->__pyx_n_u_success,&__pyx_mstate_global->__pyx_n_u_tag,&__pyx_mstate_global->__pyx_n_u_batch_operations,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(16, 39, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(16, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 39, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(16, 39, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, i); __PYX_ERR(16, 39, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 39, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 39, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 39, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(16, 39, __pyx_L3_error)
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyLong_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 40, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 40, __pyx_L3_error)
    __pyx_v_tag = values[2];
    __pyx_v_batch_operations = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(16, 39, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag, __pyx_v_batch_operations);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag, PyObject *__pyx_v_batch_operations) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":42
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
*/
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":43
 *       object batch_operations):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
 *     self.batch_operations = batch_operations
*/
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":44
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
 *     self.batch_operations = batch_operations
 * 
*/
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":45
 *     self.success = success
 *     self.tag = tag
 *     self.batch_operations = batch_operations             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF(__pyx_v_batch_operations);
  __Pyx_GIVEREF(__pyx_v_batch_operations);
  __Pyx_GOTREF(__pyx_v_self->batch_operations);
  __Pyx_DECREF(__pyx_v_self->batch_operations);
  __pyx_v_self->batch_operations = __pyx_v_batch_operations;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":39
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag,
 *       object batch_operations):
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":37
 * cdef class BatchOperationEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":38
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
 *   cdef readonly object batch_operations
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":39
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
 *   cdef readonly object batch_operations
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":40
 *   cdef readonly bint success
 *   cdef readonly object tag
 *   cdef readonly object batch_operations             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->batch_operations);
  __pyx_r = __pyx_v_self->batch_operations;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BatchOperationEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BatchOperationEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":50
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_completion_type __pyx_v_completion_type;
  int __pyx_v_success;
  PyObject *__pyx_v_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_completion_type,&__pyx_mstate_global->__pyx_n_u_success,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(16, 50, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 50, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 50, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 50, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(16, 50, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(16, 50, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(16, 50, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(16, 50, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(16, 50, __pyx_L3_error)
    }
    __pyx_v_completion_type = ((grpc_completion_type)__Pyx_PyLong_As_grpc_completion_type(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(16, 51, __pyx_L3_error)
    __pyx_v_success = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(16, 51, __pyx_L3_error)
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(16, 50, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self), __pyx_v_completion_type, __pyx_v_success, __pyx_v_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, grpc_completion_type __pyx_v_completion_type, int __pyx_v_success, PyObject *__pyx_v_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":52
 *   def __cinit__(
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type             # <<<<<<<<<<<<<<
 *     self.success = success
 *     self.tag = tag
*/
  __pyx_v_self->completion_type = __pyx_v_completion_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":53
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
 *     self.success = success             # <<<<<<<<<<<<<<
 *     self.tag = tag
*/
  __pyx_v_self->success = __pyx_v_success;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":54
 *     self.completion_type = completion_type
 *     self.success = success
 *     self.tag = tag             # <<<<<<<<<<<<<<
*/
  __Pyx_INCREF(__pyx_v_tag);
  __Pyx_GIVEREF(__pyx_v_tag);
  __Pyx_GOTREF(__pyx_v_self->tag);
  __Pyx_DECREF(__pyx_v_self->tag);
  __pyx_v_self->tag = __pyx_v_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/event.pyx.pxi":50
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   def __cinit__(             # <<<<<<<<<<<<<<
 *       self, grpc_completion_type completion_type, bint success, object tag):
 *     self.completion_type = completion_type
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":45
 * cdef class ServerShutdownEvent(BaseEvent):
 * 
 *   cdef readonly grpc_completion_type completion_type             # <<<<<<<<<<<<<<
 *   cdef readonly bint success
 *   cdef readonly object tag
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_self->completion_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.completion_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":46
 * 
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success             # <<<<<<<<<<<<<<
 *   cdef readonly object tag
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->success); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.success.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/event.pxd.pxi":47
 *   cdef readonly grpc_completion_type completion_type
 *   cdef readonly bint success
 *   cdef readonly object tag             # <<<<<<<<<<<<<<
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tag);
  __pyx_r = __pyx_v_self->tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ServerShutdownEvent.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":27
 * 
 * 
 * cdef void _store_c_metadata(             # <<<<<<<<<<<<<<
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(PyObject *__pyx_v_metadata, grpc_metadata **__pyx_v_c_metadata, size_t *__pyx_v_c_count) {
  PyObject *__pyx_v_metadatum_count = NULL;
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_encoded_key = NULL;
  PyObject *__pyx_v_encoded_value = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14[4];
  PyObject *__pyx_t_15 = NULL;
  Py_ssize_t __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_store_c_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":29
 * cdef void _store_c_metadata(
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:             # <<<<<<<<<<<<<<
 *     c_count[0] = 0
 *     c_metadata[0] = NULL
*/
  __pyx_t_1 = (__pyx_v_metadata == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":30
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
 *     c_count[0] = 0             # <<<<<<<<<<<<<<
 *     c_metadata[0] = NULL
 *   else:
*/
    (__pyx_v_c_count[0]) = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":31
 *   if metadata is None:
 *     c_count[0] = 0
 *     c_metadata[0] = NULL             # <<<<<<<<<<<<<<
 *   else:
 *     metadatum_count = len(metadata)
*/
    (__pyx_v_c_metadata[0]) = NULL;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":29
 * cdef void _store_c_metadata(
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:             # <<<<<<<<<<<<<<
 *     c_count[0] = 0
 *     c_metadata[0] = NULL
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":33
 *     c_metadata[0] = NULL
 *   else:
 *     metadatum_count = len(metadata)             # <<<<<<<<<<<<<<
 *     if metadatum_count == 0:
 *       c_count[0] = 0
*/
  /*else*/ {
    __pyx_t_2 = PyObject_Length(__pyx_v_metadata); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(18, 33, __pyx_L1_error)
    __pyx_t_3 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 33, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_metadatum_count = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":34
 *   else:
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:             # <<<<<<<<<<<<<<
 *       c_count[0] = 0
 *       c_metadata[0] = NULL
*/
    __pyx_t_1 = (__Pyx_PyLong_BoolEqObjC(__pyx_v_metadatum_count, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(18, 34, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":35
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:
 *       c_count[0] = 0             # <<<<<<<<<<<<<<
 *       c_metadata[0] = NULL
 *     else:
*/
      (__pyx_v_c_count[0]) = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":36
 *     if metadatum_count == 0:
 *       c_count[0] = 0
 *       c_metadata[0] = NULL             # <<<<<<<<<<<<<<
 *     else:
 *       c_count[0] = metadatum_count
*/
      (__pyx_v_c_metadata[0]) = NULL;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":34
 *   else:
 *     metadatum_count = len(metadata)
 *     if metadatum_count == 0:             # <<<<<<<<<<<<<<
 *       c_count[0] = 0
 *       c_metadata[0] = NULL
*/
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":38
 *       c_metadata[0] = NULL
 *     else:
 *       c_count[0] = metadatum_count             # <<<<<<<<<<<<<<
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
*/
    /*else*/ {
      __pyx_t_4 = __Pyx_PyLong_As_size_t(__pyx_v_metadatum_count); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 38, __pyx_L1_error)
      (__pyx_v_c_count[0]) = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":40
 *       c_count[0] = metadatum_count
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))             # <<<<<<<<<<<<<<
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)
*/
      __pyx_t_3 = __Pyx_PyLong_FromSize_t((sizeof(grpc_metadata))); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Multiply(__pyx_v_metadatum_count, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyLong_As_size_t(__pyx_t_5); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 40, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":39
 *     else:
 *       c_count[0] = metadatum_count
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(             # <<<<<<<<<<<<<<
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):
*/
      (__pyx_v_c_metadata[0]) = ((grpc_metadata *)gpr_malloc(__pyx_t_4));

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":41
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):             # <<<<<<<<<<<<<<
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
*/
      __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
      __pyx_t_5 = __pyx_mstate_global->__pyx_int_0;
      if (likely(PyList_CheckExact(__pyx_v_metadata)) || PyTuple_CheckExact(__pyx_v_metadata)) {
        __pyx_t_3 = __pyx_v_metadata; __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 41, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 41, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            __pyx_t_7 = __Pyx_PyList_GetItemRef(__pyx_t_3, __pyx_t_2);
            ++__pyx_t_2;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(18, 41, __pyx_L1_error)
              #endif
              if (__pyx_t_2 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2));
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_2);
            #endif
            ++__pyx_t_2;
          }
          if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 41, __pyx_L1_error)
        } else {
          __pyx_t_7 = __pyx_t_6(__pyx_t_3);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(18, 41, __pyx_L1_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_7);
        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
          PyObject* sequence = __pyx_t_7;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(18, 41, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0);
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);
            __Pyx_INCREF(__pyx_t_9);
          } else {
            __pyx_t_8 = __Pyx_PyList_GetItemRef(sequence, 0);
            if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 41, __pyx_L1_error)
            __Pyx_XGOTREF(__pyx_t_8);
            __pyx_t_9 = __Pyx_PyList_GetItemRef(sequence, 1);
            if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 41, __pyx_L1_error)
            __Pyx_XGOTREF(__pyx_t_9);
          }
          #else
          __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(18, 41, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10);
          index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_8);
          index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_9);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(18, 41, __pyx_L1_error)
          __pyx_t_11 = NULL;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L8_unpacking_done;
          __pyx_L7_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(18, 41, __pyx_L1_error)
          __pyx_L8_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_8);
        __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
        __pyx_t_9 = 0;
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_5);
        __pyx_t_7 = __Pyx_PyLong_AddObjC(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 41, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5);
        __pyx_t_5 = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":42
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)             # <<<<<<<<<<<<<<
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):
*/
        __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 42, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_XDECREF_SET(__pyx_v_encoded_key, ((PyObject*)__pyx_t_7));
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":43
 *       for index, (key, value) in enumerate(metadata):
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)             # <<<<<<<<<<<<<<
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
*/
        if (unlikely(__pyx_v_encoded_key == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(18, 43, __pyx_L1_error)
        }
        __pyx_t_9 = PySequence_GetSlice(__pyx_v_encoded_key, -4L, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 43, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_1 = (__Pyx_PyBytes_Equals(__pyx_t_9, __pyx_mstate_global->__pyx_kp_b_bin, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(18, 43, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_1) {
          __Pyx_INCREF(__pyx_v_value);
          __pyx_t_7 = __pyx_v_value;
        } else {
          __pyx_t_9 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_v_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(18, 43, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = __pyx_t_9;
          __pyx_t_9 = 0;
        }
        __Pyx_XDECREF_SET(__pyx_v_encoded_value, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":44
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):             # <<<<<<<<<<<<<<
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,
*/
        __pyx_t_1 = PyBytes_Check(__pyx_v_encoded_value); 
        __pyx_t_12 = (!__pyx_t_1);
        if (unlikely(__pyx_t_12)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":45
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (             # <<<<<<<<<<<<<<
 *             key,
 *             type(encoded_value)
*/
          __pyx_t_9 = NULL;
          __Pyx_INCREF(__pyx_builtin_TypeError);
          __pyx_t_8 = __pyx_builtin_TypeError; 

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":46
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,             # <<<<<<<<<<<<<<
 *             type(encoded_value)
 *           ))
*/
          __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_key), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(18, 46, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":47
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,
 *             type(encoded_value)             # <<<<<<<<<<<<<<
 *           ))
 *         c_metadata[0][index].key = _slice_from_bytes(encoded_key)
*/
          __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(((PyObject *)Py_TYPE(__pyx_v_encoded_value))), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(18, 47, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Binary_metadata_key;
          __pyx_t_14[1] = __pyx_t_10;
          __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_expected_bytes_got;
          __pyx_t_14[3] = __pyx_t_13;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":45
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (             # <<<<<<<<<<<<<<
 *             key,
 *             type(encoded_value)
*/
          __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 22 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
          if (unlikely(!__pyx_t_15)) __PYX_ERR(18, 45, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_4 = 1;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_15};
            __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (unlikely(!__pyx_t_7)) __PYX_ERR(18, 45, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_Raise(__pyx_t_7, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __PYX_ERR(18, 45, __pyx_L1_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":44
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
 *         if not isinstance(encoded_value, bytes):             # <<<<<<<<<<<<<<
 *           raise TypeError('Binary metadata key="%s" expected bytes, got %s' % (
 *             key,
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":49
 *             type(encoded_value)
 *           ))
 *         c_metadata[0][index].key = _slice_from_bytes(encoded_key)             # <<<<<<<<<<<<<<
 *         c_metadata[0][index].value = _slice_from_bytes(encoded_value)
 * 
*/
        __pyx_t_16 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_16 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 49, __pyx_L1_error)
        ((__pyx_v_c_metadata[0])[__pyx_t_16]).key = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(__pyx_v_encoded_key);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":50
 *           ))
 *         c_metadata[0][index].key = _slice_from_bytes(encoded_key)
 *         c_metadata[0][index].value = _slice_from_bytes(encoded_value)             # <<<<<<<<<<<<<<
 * 
 * 
*/
        if (!(likely(PyBytes_CheckExact(__pyx_v_encoded_value))||((__pyx_v_encoded_value) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_encoded_value))) __PYX_ERR(18, 50, __pyx_L1_error)
        __pyx_t_16 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_16 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(18, 50, __pyx_L1_error)
        ((__pyx_v_c_metadata[0])[__pyx_t_16]).value = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_v_encoded_value));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":41
 *       c_metadata[0] = <grpc_metadata *>gpr_malloc(
 *           metadatum_count * sizeof(grpc_metadata))
 *       for index, (key, value) in enumerate(metadata):             # <<<<<<<<<<<<<<
 *         encoded_key = _encode(key)
 *         encoded_value = value if encoded_key[-4:] == b'-bin' else _encode(value)
*/
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L4:;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":27
 * 
 * 
 * cdef void _store_c_metadata(             # <<<<<<<<<<<<<<
 *     metadata, grpc_metadata **c_metadata, size_t *c_count) except *:
 *   if metadata is None:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("grpc._cython.cygrpc._store_c_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_metadatum_count);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_encoded_key);
  __Pyx_XDECREF(__pyx_v_encoded_value);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":53
 * 
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:             # <<<<<<<<<<<<<<
 *   if 0 < count:
 *     for index in range(count):
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(grpc_metadata *__pyx_v_c_metadata, int __pyx_v_count) {
  int __pyx_v_index;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":54
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:             # <<<<<<<<<<<<<<
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
*/
  __pyx_t_1 = (0 < __pyx_v_count);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":55
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:
 *     for index in range(count):             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)
*/
    __pyx_t_2 = __pyx_v_count;
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_index = __pyx_t_4;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":56
 *   if 0 < count:
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)             # <<<<<<<<<<<<<<
 *       grpc_slice_unref(c_metadata[index].value)
 *     gpr_free(c_metadata)
*/
      grpc_slice_unref((__pyx_v_c_metadata[__pyx_v_index]).key);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":57
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)             # <<<<<<<<<<<<<<
 *     gpr_free(c_metadata)
 * 
*/
      grpc_slice_unref((__pyx_v_c_metadata[__pyx_v_index]).value);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":58
 *       grpc_slice_unref(c_metadata[index].key)
 *       grpc_slice_unref(c_metadata[index].value)
 *     gpr_free(c_metadata)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    gpr_free(__pyx_v_c_metadata);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":54
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:
 *   if 0 < count:             # <<<<<<<<<<<<<<
 *     for index in range(count):
 *       grpc_slice_unref(c_metadata[index].key)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":53
 * 
 * 
 * cdef void _release_c_metadata(grpc_metadata *c_metadata, int count) except *:             # <<<<<<<<<<<<<<
 *   if 0 < count:
 *     for index in range(count):
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":61
 * 
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):             # <<<<<<<<<<<<<<
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadatum(grpc_slice __pyx_v_key_slice, grpc_slice __pyx_v_value_slice) {
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_metadatum", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":62
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):
 *   cdef bytes key = _slice_bytes(key_slice)             # <<<<<<<<<<<<<<
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_key_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_key = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":63
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)             # <<<<<<<<<<<<<<
 *   return <tuple>_Metadatum(
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_value_slice); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_value = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":64
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(             # <<<<<<<<<<<<<<
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Metadatum); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":65
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__decode(__pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (unlikely(__pyx_v_key == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(18, 65, __pyx_L1_error)
  }
  __pyx_t_6 = PySequence_GetSlice(__pyx_v_key, -4L, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = (__Pyx_PyBytes_Equals(__pyx_t_6, __pyx_mstate_global->__pyx_kp_b_bin, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(18, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_7) {
    __Pyx_INCREF(__pyx_v_value);
    __pyx_t_5 = __pyx_v_value;
  } else {
    __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__decode(__pyx_v_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(18, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":64
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
 *   return <tuple>_Metadatum(             # <<<<<<<<<<<<<<
 *       _decode(key), value if key[-4:] == b'-bin' else _decode(value))
 * 
*/
  __Pyx_INCREF(((PyObject*)__pyx_t_1));
  __pyx_r = ((PyObject*)__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":61
 * 
 * 
 * cdef tuple _metadatum(grpc_slice key_slice, grpc_slice value_slice):             # <<<<<<<<<<<<<<
 *   cdef bytes key = _slice_bytes(key_slice)
 *   cdef bytes value = _slice_bytes(value_slice)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadatum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(PyObject *__pyx_self, size_t __pyx_genexpr_arg_0) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 70, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *) __pyx_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
  __pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_metadata_locals_genexpr, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(18, 70, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadata.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  size_t __pyx_t_1;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(18, 70, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":73
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
 *       for index in range(c_metadata_array.count))             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_cur_scope->__pyx_v_index = __pyx_t_3;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
*/
    __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__metadatum((__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c_metadata_array->metadata[__pyx_cur_scope->__pyx_v_index]).key, (__pyx_cur_scope->__pyx_outer_scope->__pyx_v_c_metadata_array->metadata[__pyx_cur_scope->__pyx_v_index]).value); if (unlikely(!__pyx_t_4)) __PYX_ERR(18, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(18, 70, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__metadata(grpc_metadata_array *__pyx_v_c_metadata_array) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *__pyx_cur_scope;
  PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44 = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(18, 68, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_c_metadata_array = __pyx_v_c_metadata_array;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":69
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(             # <<<<<<<<<<<<<<
 *       _metadatum(
 *           c_metadata_array.metadata[index].key,
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":70
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(
 *       _metadatum(             # <<<<<<<<<<<<<<
 *           c_metadata_array.metadata[index].key,
 *           c_metadata_array.metadata[index].value)
*/
  __pyx_t_1 = __pyx_pf_4grpc_7_cython_6cygrpc_9_metadata_genexpr(((PyObject*)__pyx_cur_scope), __pyx_cur_scope->__pyx_v_c_metadata_array->count); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":69
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):
 *   return tuple(             # <<<<<<<<<<<<<<
 *       _metadatum(
 *           c_metadata_array.metadata[index].key,
*/
  __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":68
 * 
 * 
 * cdef tuple _metadata(grpc_metadata_array *c_metadata_array):             # <<<<<<<<<<<<<<
 *   return tuple(
 *       _metadatum(
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_gb_4grpc_7_cython_6cygrpc_9_metadata_2generator44);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":18
 * cdef class Operation:
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":19
 * 
 *   cdef void c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 19, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":18
 * cdef class Operation:
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":21
 *     raise NotImplementedError()
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":22
 * 
 *   cdef void un_c(self) except *:
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 22, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 22, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":21
 *     raise NotImplementedError()
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_op_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9Operation_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self_c_op_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Operation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, initial_metadata, flags):             # <<<<<<<<<<<<<<
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_initial_metadata = 0;
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_initial_metadata,&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 27, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 27, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 27, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 27, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(19, 27, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 27, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 27, __pyx_L3_error)
    }
    __pyx_v_initial_metadata = values[0];
    __pyx_v_flags = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(19, 27, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self), __pyx_v_initial_metadata, __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_initial_metadata, PyObject *__pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":28
 * 
 *   def __cinit__(self, initial_metadata, flags):
 *     self._initial_metadata = initial_metadata             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/
  __Pyx_INCREF(__pyx_v_initial_metadata);
  __Pyx_GIVEREF(__pyx_v_initial_metadata);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = __pyx_v_initial_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":29
 *   def __cinit__(self, initial_metadata, flags):
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 29, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, initial_metadata, flags):             # <<<<<<<<<<<<<<
 *     self._initial_metadata = initial_metadata
 *     self._flags = flags
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":32
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_INITIAL_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":34
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_metadata *__pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":35
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_INITIAL_METADATA;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":36
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     _store_c_metadata(
 *         self._initial_metadata, &self._c_initial_metadata,
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":38
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 *         self._initial_metadata, &self._c_initial_metadata,             # <<<<<<<<<<<<<<
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
*/
  __pyx_t_2 = __pyx_v_self->_initial_metadata;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":37
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(             # <<<<<<<<<<<<<<
 *         self._initial_metadata, &self._c_initial_metadata,
 *         &self._c_initial_metadata_count)
*/
  __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_t_2, (&__pyx_v_self->_c_initial_metadata), (&__pyx_v_self->_c_initial_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":40
 *         self._initial_metadata, &self._c_initial_metadata,
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
*/
  __pyx_t_3 = __pyx_v_self->_c_initial_metadata;
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.metadata = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":41
 *         &self._c_initial_metadata_count)
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
*/
  __pyx_t_4 = __pyx_v_self->_c_initial_metadata_count;
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":42
 *     self.c_op.data.send_initial_metadata.metadata = self._c_initial_metadata
 *     self.c_op.data.send_initial_metadata.count = self._c_initial_metadata_count
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_v_self->__pyx_base.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":34
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_INITIAL_METADATA
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":44
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_initial_metadata, self._c_initial_metadata_count)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":45
 * 
 *   cdef void un_c(self) except *:
 *     _release_c_metadata(             # <<<<<<<<<<<<<<
 *         self._c_initial_metadata, self._c_initial_metadata_count)
 * 
*/
  __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_v_self->_c_initial_metadata, __pyx_v_self->_c_initial_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 45, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":44
 *     self.c_op.data.send_initial_metadata.maybe_compression_level.is_set = 0
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_initial_metadata, self._c_initial_metadata_count)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":27
 * cdef class SendInitialMetadataOperation(Operation):
 * 
 *   cdef readonly object _initial_metadata;             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_metadata *_c_initial_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":28
 * 
 *   cdef readonly object _initial_metadata;
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata *_c_initial_metadata
 *   cdef size_t _c_initial_metadata_count
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":51
 * cdef class SendMessageOperation(Operation):
 * 
 *   def __cinit__(self, bytes message, int flags):             # <<<<<<<<<<<<<<
 *     if message is None:
 *       self._message = b''
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_message = 0;
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_message,&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 51, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 51, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 51, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 51, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(19, 51, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 51, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 51, __pyx_L3_error)
    }
    __pyx_v_message = ((PyObject*)values[0]);
    __pyx_v_flags = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 51, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(19, 51, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(19, 51, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self), __pyx_v_message, __pyx_v_flags);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, PyObject *__pyx_v_message, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":52
 * 
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:             # <<<<<<<<<<<<<<
 *       self._message = b''
 *     else:
*/
  __pyx_t_1 = (__pyx_v_message == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":53
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:
 *       self._message = b''             # <<<<<<<<<<<<<<
 *     else:
 *       self._message = message
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_b_);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = __pyx_mstate_global->__pyx_kp_b_;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":52
 * 
 *   def __cinit__(self, bytes message, int flags):
 *     if message is None:             # <<<<<<<<<<<<<<
 *       self._message = b''
 *     else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":55
 *       self._message = b''
 *     else:
 *       self._message = message             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/
  /*else*/ {
    __Pyx_INCREF(__pyx_v_message);
    __Pyx_GIVEREF(__pyx_v_message);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = __pyx_v_message;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":56
 *     else:
 *       self._message = message
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":51
 * cdef class SendMessageOperation(Operation):
 * 
 *   def __cinit__(self, bytes message, int flags):             # <<<<<<<<<<<<<<
 *     if message is None:
 *       self._message = b''
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":59
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_MESSAGE); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":61
 *     return GRPC_OP_SEND_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  grpc_slice __pyx_v_message_slice;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  char const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  grpc_byte_buffer *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":62
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_MESSAGE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":63
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":65
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))             # <<<<<<<<<<<<<<
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
 *         &message_slice, 1)
*/
  if (unlikely(__pyx_v_self->_message == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(19, 65, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_self->_message); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(19, 65, __pyx_L1_error)
  __pyx_t_3 = __pyx_v_self->_message;
  __Pyx_INCREF(__pyx_t_3);
  if (unlikely(__pyx_t_3 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(19, 65, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyBytes_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(19, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":64
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(             # <<<<<<<<<<<<<<
 *         self._message, len(self._message))
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
*/
  __pyx_v_message_slice = grpc_slice_from_copied_buffer(__pyx_t_2, __pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":66
 *     cdef grpc_slice message_slice = grpc_slice_from_copied_buffer(
 *         self._message, len(self._message))
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(             # <<<<<<<<<<<<<<
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)
*/
  __pyx_v_self->_c_message_byte_buffer = grpc_raw_byte_buffer_create((&__pyx_v_message_slice), 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":68
 *     self._c_message_byte_buffer = grpc_raw_byte_buffer_create(
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
*/
  grpc_slice_unref(__pyx_v_message_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":69
 *         &message_slice, 1)
 *     grpc_slice_unref(message_slice)
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_t_5 = __pyx_v_self->_c_message_byte_buffer;
  __pyx_v_self->__pyx_base.c_op.data.send_message.send_message = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":61
 *     return GRPC_OP_SEND_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_MESSAGE
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":71
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":72
 * 
 *   cdef void un_c(self) except *:
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_byte_buffer_destroy(__pyx_v_self->_c_message_byte_buffer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":71
 *     self.c_op.data.send_message.send_message = self._c_message_byte_buffer
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 * 
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":38
 * cdef class SendMessageOperation(Operation):
 * 
 *   cdef readonly bytes _message             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_message);
  __pyx_r = __pyx_v_self->_message;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":39
 * 
 *   cdef readonly bytes _message
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20SendMessageOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":77
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   def __cinit__(self, int flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 77, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 77, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 77, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(19, 77, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 77, __pyx_L3_error)
    }
    __pyx_v_flags = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 77, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 77, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, int __pyx_v_flags) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":78
 * 
 *   def __cinit__(self, int flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":77
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   def __cinit__(self, int flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":81
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_CLOSE_FROM_CLIENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":83
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":84
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 * 
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":85
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":83
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":87
 *     self.c_op.flags = self._flags
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":48
 * cdef class SendCloseFromClientOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendCloseFromClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":93
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_trailing_metadata = 0;
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  int __pyx_v_flags;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_trailing_metadata,&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 93, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(19, 93, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(19, 93, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 93, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 93, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 93, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, i); __PYX_ERR(19, 93, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 93, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(19, 93, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(19, 93, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(19, 93, __pyx_L3_error)
    }
    __pyx_v_trailing_metadata = values[0];
    __pyx_v_code = values[1];
    __pyx_v_details = values[2];
    __pyx_v_flags = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 93, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(19, 93, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self), __pyx_v_trailing_metadata, __pyx_v_code, __pyx_v_details, __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_code, PyObject *__pyx_v_details, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":94
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
 *     self._trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 *     self._code = code
 *     self._details = details
*/
  __Pyx_INCREF(__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_v_trailing_metadata);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = __pyx_v_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":95
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code             # <<<<<<<<<<<<<<
 *     self._details = details
 *     self._flags = flags
*/
  __Pyx_INCREF(__pyx_v_code);
  __Pyx_GIVEREF(__pyx_v_code);
  __Pyx_GOTREF(__pyx_v_self->_code);
  __Pyx_DECREF(__pyx_v_self->_code);
  __pyx_v_self->_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":96
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
 *     self._details = details             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":97
 *     self._code = code
 *     self._details = details
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_v_self->_flags = __pyx_v_flags;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":93
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   def __cinit__(self, trailing_metadata, code, object details, int flags):             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = trailing_metadata
 *     self._code = code
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":100
 * 
 *   def type(self):
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_STATUS_FROM_SERVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":102
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  grpc_metadata *__pyx_t_3;
  size_t __pyx_t_4;
  grpc_status_code __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":103
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_SEND_STATUS_FROM_SERVER;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":104
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     _store_c_metadata(
 *         self._trailing_metadata, &self._c_trailing_metadata,
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":106
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(
 *         self._trailing_metadata, &self._c_trailing_metadata,             # <<<<<<<<<<<<<<
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
*/
  __pyx_t_2 = __pyx_v_self->_trailing_metadata;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":105
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
 *     _store_c_metadata(             # <<<<<<<<<<<<<<
 *         self._trailing_metadata, &self._c_trailing_metadata,
 *         &self._c_trailing_metadata_count)
*/
  __pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata(__pyx_t_2, (&__pyx_v_self->_c_trailing_metadata), (&__pyx_v_self->_c_trailing_metadata_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":109
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
 *         self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)
*/
  __pyx_t_3 = __pyx_v_self->_c_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":108
 *         self._trailing_metadata, &self._c_trailing_metadata,
 *         &self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.trailing_metadata = (             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
*/
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.trailing_metadata = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":111
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))
*/
  __pyx_t_4 = __pyx_v_self->_c_trailing_metadata_count;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":110
 *     self.c_op.data.send_status_from_server.trailing_metadata = (
 *         self._c_trailing_metadata)
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code
*/
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.trailing_metadata_count = __pyx_t_4;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":112
 *     self.c_op.data.send_status_from_server.trailing_metadata_count = (
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code             # <<<<<<<<<<<<<<
 *     self._c_details = _slice_from_bytes(_encode(self._details))
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
*/
  __pyx_t_5 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_self->_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 112, __pyx_L1_error)
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.status = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":113
 *         self._c_trailing_metadata_count)
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))             # <<<<<<<<<<<<<<
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
*/
  __pyx_t_2 = __pyx_v_self->_details;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__encode(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->_c_details = __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(((PyObject*)__pyx_t_6));
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":114
 *     self.c_op.data.send_status_from_server.status = self._code
 *     self._c_details = _slice_from_bytes(_encode(self._details))
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_v_self->__pyx_base.c_op.data.send_status_from_server.status_details = (&__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":102
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":116
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":117
 * 
 *   cdef void un_c(self) except *:
 *     grpc_slice_unref(self._c_details)             # <<<<<<<<<<<<<<
 *     _release_c_metadata(
 *         self._c_trailing_metadata, self._c_trailing_metadata_count)
*/
  grpc_slice_unref(__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":118
 *   cdef void un_c(self) except *:
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(             # <<<<<<<<<<<<<<
 *         self._c_trailing_metadata, self._c_trailing_metadata_count)
 * 
*/
  __pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata(__pyx_v_self->_c_trailing_metadata, __pyx_v_self->_c_trailing_metadata_count); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 118, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":116
 *     self.c_op.data.send_status_from_server.status_details = &self._c_details
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     _release_c_metadata(
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":56
 * cdef class SendStatusFromServerOperation(Operation):
 * 
 *   cdef readonly object _trailing_metadata             # <<<<<<<<<<<<<<
 *   cdef readonly object _code
 *   cdef readonly object _details
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":57
 * 
 *   cdef readonly object _trailing_metadata
 *   cdef readonly object _code             # <<<<<<<<<<<<<<
 *   cdef readonly object _details
 *   cdef readonly int _flags
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_code);
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":58
 *   cdef readonly object _trailing_metadata
 *   cdef readonly object _code
 *   cdef readonly object _details             # <<<<<<<<<<<<<<
 *   cdef readonly int _flags
 *   cdef grpc_metadata *_c_trailing_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":59
 *   cdef readonly object _code
 *   cdef readonly object _details
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata *_c_trailing_metadata
 *   cdef size_t _c_trailing_metadata_count
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SendStatusFromServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":124
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 124, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 124, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 124, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(19, 124, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 124, __pyx_L3_error)
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":125
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 125, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":124
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":128
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_INITIAL_METADATA); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":130
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":131
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_INITIAL_METADATA;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":132
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self._c_initial_metadata)
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":133
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (
 *         &self._c_initial_metadata)
*/
  grpc_metadata_array_init((&__pyx_v_self->_c_initial_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":134
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_initial_metadata)
 *     self.c_op.data.receive_initial_metadata.receive_initial_metadata = (             # <<<<<<<<<<<<<<
 *         &self._c_initial_metadata)
 * 
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_initial_metadata.recv_initial_metadata = (&__pyx_v_self->_c_initial_metadata);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":130
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_INITIAL_METADATA
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":137
 *         &self._c_initial_metadata)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":138
 * 
 *   cdef void un_c(self) except *:
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->_c_initial_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":139
 *   cdef void un_c(self) except *:
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)             # <<<<<<<<<<<<<<
 * 
 *   def initial_metadata(self):
*/
  grpc_metadata_array_destroy((&__pyx_v_self->_c_initial_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":137
 *         &self._c_initial_metadata)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._initial_metadata = _metadata(&self._c_initial_metadata)
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata = {"initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("initial_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("initial_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_4initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":142
 * 
 *   def initial_metadata(self):
 *     return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":70
 * cdef class ReceiveInitialMetadataOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef tuple _initial_metadata
 *   cdef grpc_metadata_array _c_initial_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveInitialMetadataOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":147
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 147, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 147, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 147, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(19, 147, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 147, __pyx_L3_error)
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 147, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":148
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 148, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":147
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":151
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_MESSAGE); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":153
 *     return GRPC_OP_RECV_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":154
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_message.receive_message = (
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_MESSAGE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":155
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_message.receive_message = (
 *         &self._c_message_byte_buffer)
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":156
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_message.receive_message = (             # <<<<<<<<<<<<<<
 *         &self._c_message_byte_buffer)
 * 
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_message.recv_message = (&__pyx_v_self->_c_message_byte_buffer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":153
 *     return GRPC_OP_RECV_MESSAGE
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_MESSAGE
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":159
 *         &self._c_message_byte_buffer)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_byte_buffer_reader message_reader
 *     cdef bint message_reader_status
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  struct grpc_byte_buffer_reader __pyx_v_message_reader;
  int __pyx_v_message_reader_status;
  grpc_slice __pyx_v_message_slice;
  size_t __pyx_v_message_slice_length;
  void *__pyx_v_message_slice_pointer;
  PyObject *__pyx_v_message = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":165
 *     cdef size_t message_slice_length
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:             # <<<<<<<<<<<<<<
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
*/
  __pyx_t_1 = (__pyx_v_self->_c_message_byte_buffer != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":166
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:
 *       message_reader_status = grpc_byte_buffer_reader_init(             # <<<<<<<<<<<<<<
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:
*/
    __pyx_v_message_reader_status = grpc_byte_buffer_reader_init((&__pyx_v_message_reader), __pyx_v_self->_c_message_byte_buffer);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":168
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:             # <<<<<<<<<<<<<<
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
*/
    if (__pyx_v_message_reader_status) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":169
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:
 *         message = bytearray()             # <<<<<<<<<<<<<<
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
*/
      __pyx_t_3 = NULL;
      __Pyx_INCREF((PyObject *)(&PyByteArray_Type));
      __pyx_t_4 = ((PyObject *)(&PyByteArray_Type)); 
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __pyx_v_message = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":170
 *       if message_reader_status:
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):             # <<<<<<<<<<<<<<
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)
*/
      while (1) {
        __pyx_t_1 = (grpc_byte_buffer_reader_next((&__pyx_v_message_reader), (&__pyx_v_message_slice)) != 0);
        if (!__pyx_t_1) break;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":171
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)             # <<<<<<<<<<<<<<
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
*/
        __pyx_v_message_slice_pointer = GRPC_SLICE_START_PTR(__pyx_v_message_slice);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":172
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)             # <<<<<<<<<<<<<<
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)
*/
        __pyx_v_message_slice_length = GRPC_SLICE_LENGTH(__pyx_v_message_slice);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":173
 *           message_slice_pointer = grpc_slice_start_ptr(message_slice)
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]             # <<<<<<<<<<<<<<
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)
*/
        __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((char *)__pyx_v_message_slice_pointer) + 0, __pyx_v_message_slice_length - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_message, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_message, ((PyObject*)__pyx_t_4));
        __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":174
 *           message_slice_length = grpc_slice_length(message_slice)
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)             # <<<<<<<<<<<<<<
 *         grpc_byte_buffer_reader_destroy(&message_reader)
 *         self._message = bytes(message)
*/
        grpc_slice_unref(__pyx_v_message_slice);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":175
 *           message += (<char *>message_slice_pointer)[:message_slice_length]
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)             # <<<<<<<<<<<<<<
 *         self._message = bytes(message)
 *       else:
*/
      grpc_byte_buffer_reader_destroy((&__pyx_v_message_reader));

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":176
 *           grpc_slice_unref(message_slice)
 *         grpc_byte_buffer_reader_destroy(&message_reader)
 *         self._message = bytes(message)             # <<<<<<<<<<<<<<
 *       else:
 *         self._message = None
*/
      __pyx_t_2 = NULL;
      __Pyx_INCREF((PyObject *)(&PyBytes_Type));
      __pyx_t_3 = ((PyObject *)(&PyBytes_Type)); 
      __pyx_t_5 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_message};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 176, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_v_self->_message);
      __Pyx_DECREF(__pyx_v_self->_message);
      __pyx_v_self->_message = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":168
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
 *       if message_reader_status:             # <<<<<<<<<<<<<<
 *         message = bytearray()
 *         while grpc_byte_buffer_reader_next(&message_reader, &message_slice):
*/
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":178
 *         self._message = bytes(message)
 *       else:
 *         self._message = None             # <<<<<<<<<<<<<<
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 *     else:
*/
    /*else*/ {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      __Pyx_GOTREF(__pyx_v_self->_message);
      __Pyx_DECREF(__pyx_v_self->_message);
      __pyx_v_self->_message = ((PyObject*)Py_None);
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":179
 *       else:
 *         self._message = None
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)             # <<<<<<<<<<<<<<
 *     else:
 *       self._message = None
*/
    grpc_byte_buffer_destroy(__pyx_v_self->_c_message_byte_buffer);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":165
 *     cdef size_t message_slice_length
 *     cdef void *message_slice_pointer
 *     if self._c_message_byte_buffer != NULL:             # <<<<<<<<<<<<<<
 *       message_reader_status = grpc_byte_buffer_reader_init(
 *           &message_reader, self._c_message_byte_buffer)
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":181
 *       grpc_byte_buffer_destroy(self._c_message_byte_buffer)
 *     else:
 *       self._message = None             # <<<<<<<<<<<<<<
 * 
 *   def message(self):
*/
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_GOTREF(__pyx_v_self->_message);
    __Pyx_DECREF(__pyx_v_self->_message);
    __pyx_v_self->_message = ((PyObject*)Py_None);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":159
 *         &self._c_message_byte_buffer)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     cdef grpc_byte_buffer_reader message_reader
 *     cdef bint message_reader_status
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message = {"message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("message", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("message", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_4message(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("message", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":184
 * 
 *   def message(self):
 *     return self._message             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_message);
  __pyx_r = __pyx_v_self->_message;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":80
 * cdef class ReceiveMessageOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_byte_buffer *_c_message_byte_buffer
 *   cdef bytes _message
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveMessageOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":189
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 189, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 189, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 189, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(19, 189, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 189, __pyx_L3_error)
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 189, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":190
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 190, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":189
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":193
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_STATUS_ON_CLIENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":195
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":196
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_STATUS_ON_CLIENT;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":197
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":198
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
 *         &self._c_trailing_metadata)
*/
  grpc_metadata_array_init((&__pyx_v_self->_c_trailing_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":199
 *     self.c_op.flags = self._flags
 *     grpc_metadata_array_init(&self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (             # <<<<<<<<<<<<<<
 *         &self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.status = (
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.trailing_metadata = (&__pyx_v_self->_c_trailing_metadata);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":201
 *     self.c_op.data.receive_status_on_client.trailing_metadata = (
 *         &self._c_trailing_metadata)
 *     self.c_op.data.receive_status_on_client.status = (             # <<<<<<<<<<<<<<
 *         &self._c_code)
 *     self.c_op.data.receive_status_on_client.status_details = (
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.status = (&__pyx_v_self->_c_code);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":203
 *     self.c_op.data.receive_status_on_client.status = (
 *         &self._c_code)
 *     self.c_op.data.receive_status_on_client.status_details = (             # <<<<<<<<<<<<<<
 *         &self._c_details)
 *     self.c_op.data.receive_status_on_client.error_string = (
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.status_details = (&__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":205
 *     self.c_op.data.receive_status_on_client.status_details = (
 *         &self._c_details)
 *     self.c_op.data.receive_status_on_client.error_string = (             # <<<<<<<<<<<<<<
 *         &self._c_error_string)
 * 
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_status_on_client.error_string = (&__pyx_v_self->_c_error_string);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":195
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":208
 *         &self._c_error_string)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":209
 * 
 *   cdef void un_c(self) except *:
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->_c_trailing_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":210
 *   cdef void un_c(self) except *:
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)             # <<<<<<<<<<<<<<
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))
*/
  grpc_metadata_array_destroy((&__pyx_v_self->_c_trailing_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":211
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code             # <<<<<<<<<<<<<<
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_v_self->_c_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_code);
  __Pyx_DECREF(__pyx_v_self->_code);
  __pyx_v_self->_code = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":212
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))             # <<<<<<<<<<<<<<
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->_c_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":213
 *     self._code = self._c_code
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)             # <<<<<<<<<<<<<<
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)
*/
  grpc_slice_unref(__pyx_v_self->_c_details);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":214
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:             # <<<<<<<<<<<<<<
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)
*/
  __pyx_t_3 = (__pyx_v_self->_c_error_string != NULL);
  if (__pyx_t_3) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":215
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)             # <<<<<<<<<<<<<<
 *       gpr_free(<void*>self._c_error_string)
 *     else:
*/
    __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_self->_c_error_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_self->_error_string);
    __Pyx_DECREF(__pyx_v_self->_error_string);
    __pyx_v_self->_error_string = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":216
 *     if self._c_error_string != NULL:
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)             # <<<<<<<<<<<<<<
 *     else:
 *       self._error_string = ""
*/
    gpr_free(((void *)__pyx_v_self->_c_error_string));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":214
 *     self._details = _decode(_slice_bytes(self._c_details))
 *     grpc_slice_unref(self._c_details)
 *     if self._c_error_string != NULL:             # <<<<<<<<<<<<<<
 *       self._error_string = _decode(self._c_error_string)
 *       gpr_free(<void*>self._c_error_string)
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":218
 *       gpr_free(<void*>self._c_error_string)
 *     else:
 *       self._error_string = ""             # <<<<<<<<<<<<<<
 * 
 *   def trailing_metadata(self):
*/
  /*else*/ {
    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_);
    __Pyx_GOTREF(__pyx_v_self->_error_string);
    __Pyx_DECREF(__pyx_v_self->_error_string);
    __pyx_v_self->_error_string = __pyx_mstate_global->__pyx_kp_u_;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":208
 *         &self._c_error_string)
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._trailing_metadata = _metadata(&self._c_trailing_metadata)
 *     grpc_metadata_array_destroy(&self._c_trailing_metadata)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata = {"trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("trailing_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_4trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":221
 * 
 *   def trailing_metadata(self):
 *     return self._trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *   def code(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code = {"code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("code", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6code(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":224
 * 
 *   def code(self):
 *     return self._code             # <<<<<<<<<<<<<<
 * 
 *   def details(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_code);
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details = {"details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("details", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_8details(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":227
 * 
 *   def details(self):
 *     return self._details             # <<<<<<<<<<<<<<
 * 
 *   def error_string(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string = {"error_string", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("error_string (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("error_string", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("error_string", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_10error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("error_string", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":230
 * 
 *   def error_string(self):
 *     return self._error_string             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_error_string);
  __pyx_r = __pyx_v_self->_error_string;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":90
 * cdef class ReceiveStatusOnClientOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef grpc_metadata_array _c_trailing_metadata
 *   cdef grpc_status_code _c_code
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveStatusOnClientOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":235
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flags = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flags,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(19, 235, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 235, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(19, 235, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(19, 235, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(19, 235, __pyx_L3_error)
    }
    __pyx_v_flags = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(19, 235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self), __pyx_v_flags);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, PyObject *__pyx_v_flags) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":236
 * 
 *   def __cinit__(self, flags):
 *     self._flags = flags             # <<<<<<<<<<<<<<
 * 
 *   def type(self):
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 236, __pyx_L1_error)
  __pyx_v_self->_flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":235
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   def __cinit__(self, flags):             # <<<<<<<<<<<<<<
 *     self._flags = flags
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type = {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("type", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("type", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_2type(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":239
 * 
 *   def type(self):
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 * 
 *   cdef void c(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_CLOSE_ON_SERVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":241
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":242
 * 
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
*/
  __pyx_v_self->__pyx_base.c_op.op = GRPC_OP_RECV_CLOSE_ON_SERVER;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":243
 *   cdef void c(self) except *:
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags             # <<<<<<<<<<<<<<
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
*/
  __pyx_t_1 = __pyx_v_self->_flags;
  __pyx_v_self->__pyx_base.c_op.flags = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":244
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled             # <<<<<<<<<<<<<<
 * 
 *   cdef void un_c(self) except *:
*/
  __pyx_v_self->__pyx_base.c_op.data.recv_close_on_server.cancelled = (&__pyx_v_self->_c_cancelled);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":241
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
 *   cdef void c(self) except *:             # <<<<<<<<<<<<<<
 *     self.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER
 *     self.c_op.flags = self._flags
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":246
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._cancelled = bool(self._c_cancelled)
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("un_c", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":247
 * 
 *   cdef void un_c(self) except *:
 *     self._cancelled = bool(self._c_cancelled)             # <<<<<<<<<<<<<<
 * 
 *   def cancelled(self):
*/
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_c_cancelled); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_cancelled);
  __Pyx_DECREF(__pyx_v_self->_cancelled);
  __pyx_v_self->_cancelled = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":246
 *     self.c_op.data.receive_close_on_server.cancelled = &self._c_cancelled
 * 
 *   cdef void un_c(self) except *:             # <<<<<<<<<<<<<<
 *     self._cancelled = bool(self._c_cancelled)
 * 
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.un_c", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled = {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("cancelled", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_4cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":250
 * 
 *   def cancelled(self):
 *     return self._cancelled             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_cancelled);
  __pyx_r = __pyx_v_self->_cancelled;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pxd.pxi":106
 * cdef class ReceiveCloseOnServerOperation(Operation):
 * 
 *   cdef readonly int _flags             # <<<<<<<<<<<<<<
 *   cdef object _cancelled
 *   cdef int _c_cancelled
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation._flags.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.ReceiveCloseOnServerOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":16
 * 
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(grpc_slice __pyx_v_slice) {
  void *__pyx_v_start;
  size_t __pyx_v_length;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_slice_bytes", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":17
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):
 *   cdef void *start = grpc_slice_start_ptr(slice)             # <<<<<<<<<<<<<<
 *   cdef size_t length = grpc_slice_length(slice)
 *   return (<const char *>start)[:length]
*/
  __pyx_v_start = GRPC_SLICE_START_PTR(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":18
 * cdef bytes _slice_bytes(grpc_slice slice):
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)             # <<<<<<<<<<<<<<
 *   return (<const char *>start)[:length]
 * 
*/
  __pyx_v_length = GRPC_SLICE_LENGTH(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":19
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 *   return (<const char *>start)[:length]             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) noexcept nogil:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(((char const *)__pyx_v_start) + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":16
 * 
 * 
 * cdef bytes _slice_bytes(grpc_slice slice):             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._slice_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":21
 *   return (<const char *>start)[:length]
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) noexcept nogil:             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
*/

static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__copy_slice(grpc_slice __pyx_v_slice) {
  void *__pyx_v_start;
  size_t __pyx_v_length;
  grpc_slice __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":22
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) noexcept nogil:
 *   cdef void *start = grpc_slice_start_ptr(slice)             # <<<<<<<<<<<<<<
 *   cdef size_t length = grpc_slice_length(slice)
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
*/
  __pyx_v_start = GRPC_SLICE_START_PTR(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":23
 * cdef grpc_slice _copy_slice(grpc_slice slice) noexcept nogil:
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)             # <<<<<<<<<<<<<<
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
*/
  __pyx_v_length = GRPC_SLICE_LENGTH(__pyx_v_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":24
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) noexcept nogil:
*/
  __pyx_r = grpc_slice_from_copied_buffer(((char const *)__pyx_v_start), __pyx_v_length);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":21
 *   return (<const char *>start)[:length]
 * 
 * cdef grpc_slice _copy_slice(grpc_slice slice) noexcept nogil:             # <<<<<<<<<<<<<<
 *   cdef void *start = grpc_slice_start_ptr(slice)
 *   cdef size_t length = grpc_slice_length(slice)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":26
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) noexcept nogil:             # <<<<<<<<<<<<<<
 *   cdef const char *value_ptr
 *   cdef size_t length
*/

static grpc_slice __pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes(PyObject *__pyx_v_value) {
  char const *__pyx_v_value_ptr;
  size_t __pyx_v_length;
  grpc_slice __pyx_r;
  char const *__pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":29
 *   cdef const char *value_ptr
 *   cdef size_t length
 *   with gil:             # <<<<<<<<<<<<<<
 *     value_ptr = <const char *>value
 *     length = len(value)
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":30
 *   cdef size_t length
 *   with gil:
 *     value_ptr = <const char *>value             # <<<<<<<<<<<<<<
 *     length = len(value)
 *   return grpc_slice_from_copied_buffer(value_ptr, length)
*/
        if (unlikely(__pyx_v_value == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
          __PYX_ERR(21, 30, __pyx_L4_error)
        }
        __pyx_t_1 = __Pyx_PyBytes_AsString(__pyx_v_value); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(21, 30, __pyx_L4_error)
        __pyx_v_value_ptr = ((char const *)__pyx_t_1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":31
 *   with gil:
 *     value_ptr = <const char *>value
 *     length = len(value)             # <<<<<<<<<<<<<<
 *   return grpc_slice_from_copied_buffer(value_ptr, length)
 * 
*/
        if (unlikely(__pyx_v_value == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
          __PYX_ERR(21, 31, __pyx_L4_error)
        }
        __pyx_t_2 = __Pyx_PyBytes_GET_SIZE(__pyx_v_value); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(21, 31, __pyx_L4_error)
        __pyx_v_length = __pyx_t_2;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":29
 *   cdef const char *value_ptr
 *   cdef size_t length
 *   with gil:             # <<<<<<<<<<<<<<
 *     value_ptr = <const char *>value
 *     length = len(value)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":32
 *     value_ptr = <const char *>value
 *     length = len(value)
 *   return grpc_slice_from_copied_buffer(value_ptr, length)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = grpc_slice_from_copied_buffer(__pyx_v_value_ptr, __pyx_v_length);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":26
 *   return grpc_slice_from_copied_buffer(<const char *>start, length)
 * 
 * cdef grpc_slice _slice_from_bytes(bytes value) noexcept nogil:             # <<<<<<<<<<<<<<
 *   cdef const char *value_ptr
 *   cdef size_t length
*/

  /* function exit code */
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._slice_from_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":132
 * cdef class CallDetails:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     with nogil:
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":133
 * 
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_init(&self.c_details)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":134
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_init(&self.c_details)
 * 
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":135
 *     fork_handlers_and_grpc_init()
 *     with nogil:
 *       grpc_call_details_init(&self.c_details)             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
        grpc_call_details_init((&__pyx_v_self->c_details));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":134
 *   def __cinit__(self):
 *     fork_handlers_and_grpc_init()
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_init(&self.c_details)
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":132
 * cdef class CallDetails:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     with nogil:
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":137
 *       grpc_call_details_init(&self.c_details)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":138
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":139
 *   def __dealloc__(self):
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)             # <<<<<<<<<<<<<<
 *     grpc_shutdown()
 * 
*/
        grpc_call_details_destroy((&__pyx_v_self->c_details));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":138
 * 
 *   def __dealloc__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":140
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 *   @property
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":137
 *       grpc_call_details_init(&self.c_details)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_call_details_destroy(&self.c_details)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":142
 *     grpc_shutdown()
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":144
 *   @property
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)             # <<<<<<<<<<<<<<
 * 
 *   @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->c_details.method); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":142
 *     grpc_shutdown()
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def method(self):
 *     return _slice_bytes(self.c_details.method)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.method.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":146
 *     return _slice_bytes(self.c_details.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4host___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":148
 *   @property
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)             # <<<<<<<<<<<<<<
 * 
 *   @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->c_details.host); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":146
 *     return _slice_bytes(self.c_details.method)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def host(self):
 *     return _slice_bytes(self.c_details.host)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.host.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":150
 *     return _slice_bytes(self.c_details.host)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_8deadline___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":152
 *   @property
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(__pyx_v_self->c_details.deadline); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(21, 152, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":150
 *     return _slice_bytes(self.c_details.host)
 * 
 *   @property             # <<<<<<<<<<<<<<
 *   def deadline(self):
 *     return _time_from_timespec(self.c_details.deadline)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.deadline.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_11CallDetails_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":157
 * cdef class SslPemKeyCertPair:
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):             # <<<<<<<<<<<<<<
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_private_key = 0;
  PyObject *__pyx_v_certificate_chain = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_private_key,&__pyx_mstate_global->__pyx_n_u_certificate_chain,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 157, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 157, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 157, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(21, 157, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(21, 157, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 157, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(21, 157, __pyx_L3_error)
    }
    __pyx_v_private_key = ((PyObject*)values[0]);
    __pyx_v_certificate_chain = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(21, 157, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_private_key), (&PyBytes_Type), 1, "private_key", 1))) __PYX_ERR(21, 157, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_certificate_chain), (&PyBytes_Type), 1, "certificate_chain", 1))) __PYX_ERR(21, 157, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self), __pyx_v_private_key, __pyx_v_certificate_chain);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, PyObject *__pyx_v_private_key, PyObject *__pyx_v_certificate_chain) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":158
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):
 *     self.private_key = private_key             # <<<<<<<<<<<<<<
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key
*/
  __Pyx_INCREF(__pyx_v_private_key);
  __Pyx_GIVEREF(__pyx_v_private_key);
  __Pyx_GOTREF(__pyx_v_self->private_key);
  __Pyx_DECREF(__pyx_v_self->private_key);
  __pyx_v_self->private_key = __pyx_v_private_key;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":159
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain             # <<<<<<<<<<<<<<
 *     self.c_pair.private_key = self.private_key
 *     self.c_pair.certificate_chain = self.certificate_chain
*/
  __Pyx_INCREF(__pyx_v_certificate_chain);
  __Pyx_GIVEREF(__pyx_v_certificate_chain);
  __Pyx_GOTREF(__pyx_v_self->certificate_chain);
  __Pyx_DECREF(__pyx_v_self->certificate_chain);
  __pyx_v_self->certificate_chain = __pyx_v_certificate_chain;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":160
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key             # <<<<<<<<<<<<<<
 *     self.c_pair.certificate_chain = self.certificate_chain
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_self->private_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(21, 160, __pyx_L1_error)
  __pyx_v_self->c_pair.private_key = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":161
 *     self.certificate_chain = certificate_chain
 *     self.c_pair.private_key = self.private_key
 *     self.c_pair.certificate_chain = self.certificate_chain             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_self->certificate_chain); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(21, 161, __pyx_L1_error)
  __pyx_v_self->c_pair.cert_chain = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":157
 * cdef class SslPemKeyCertPair:
 * 
 *   def __cinit__(self, bytes private_key, bytes certificate_chain):             # <<<<<<<<<<<<<<
 *     self.private_key = private_key
 *     self.certificate_chain = certificate_chain
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi":29
 * 
 *   cdef grpc_ssl_pem_key_cert_pair c_pair
 *   cdef readonly object private_key, certificate_chain             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->private_key);
  __pyx_r = __pyx_v_self->private_key;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->certificate_chain);
  __pyx_r = __pyx_v_self->certificate_chain;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.SslPemKeyCertPair.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":166
 * cdef class CompressionOptions:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  int __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":167
 * 
 *   def __cinit__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_init(&self.c_options)
 * 
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":168
 *   def __cinit__(self):
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)             # <<<<<<<<<<<<<<
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
*/
        grpc_compression_options_init((&__pyx_v_self->c_options));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":167
 * 
 *   def __cinit__(self):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_init(&self.c_options)
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":166
 * cdef class CompressionOptions:
 * 
 *   def __cinit__(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_init(&self.c_options)
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm = {"enable_algorithm", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enable_algorithm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_algorithm,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 170, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 170, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "enable_algorithm", 0) < 0) __PYX_ERR(21, 170, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("enable_algorithm", 1, 1, 1, i); __PYX_ERR(21, 170, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 170, __pyx_L3_error)
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyLong_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 170, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("enable_algorithm", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.enable_algorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_2enable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enable_algorithm", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":171
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":172
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)             # <<<<<<<<<<<<<<
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
*/
        grpc_compression_options_enable_algorithm((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":171
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm = {"disable_algorithm", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_algorithm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_algorithm,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 174, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 174, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "disable_algorithm", 0) < 0) __PYX_ERR(21, 174, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("disable_algorithm", 1, 1, 1, i); __PYX_ERR(21, 174, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 174, __pyx_L3_error)
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyLong_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 174, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("disable_algorithm", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 174, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.disable_algorithm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_4disable_algorithm(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_algorithm", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":175
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":176
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)             # <<<<<<<<<<<<<<
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
*/
        grpc_compression_options_disable_algorithm((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":175
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled = {"is_algorithm_enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_algorithm_enabled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_algorithm,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 178, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 178, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "is_algorithm_enabled", 0) < 0) __PYX_ERR(21, 178, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("is_algorithm_enabled", 1, 1, 1, i); __PYX_ERR(21, 178, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 178, __pyx_L3_error)
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyLong_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 178, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_algorithm_enabled", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 178, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.is_algorithm_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v_algorithm);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_6is_algorithm_enabled(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, grpc_compression_algorithm __pyx_v_algorithm) {
  int __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_algorithm_enabled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":180
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
 *     cdef int result
 *     with nogil:             # <<<<<<<<<<<<<<
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":181
 *     cdef int result
 *     with nogil:
 *       result = grpc_compression_options_is_algorithm_enabled(             # <<<<<<<<<<<<<<
 *           &self.c_options, algorithm)
 *     return result
*/
        __pyx_v_result = grpc_compression_options_is_algorithm_enabled((&__pyx_v_self->c_options), __pyx_v_algorithm);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":180
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):
 *     cdef int result
 *     with nogil:             # <<<<<<<<<<<<<<
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":183
 *       result = grpc_compression_options_is_algorithm_enabled(
 *           &self.c_options, algorithm)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   def to_channel_arg(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.is_algorithm_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg = {"to_channel_arg", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_channel_arg (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("to_channel_arg", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("to_channel_arg", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_8to_channel_arg(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("to_channel_arg", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":186
 * 
 *   def to_channel_arg(self):
 *     return (             # <<<<<<<<<<<<<<
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 *         self.c_options.enabled_algorithms_bitset,
*/
  __Pyx_XDECREF(__pyx_r);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":187
 *   def to_channel_arg(self):
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,             # <<<<<<<<<<<<<<
 *         self.c_options.enabled_algorithms_bitset,
 *     )
*/
  __pyx_t_1 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":188
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
 *         self.c_options.enabled_algorithms_bitset,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_unsigned_int(__pyx_v_self->c_options.enabled_algorithms_bitset); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":187
 *   def to_channel_arg(self):
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,             # <<<<<<<<<<<<<<
 *         self.c_options.enabled_algorithms_bitset,
 *     )
*/
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(21, 187, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(21, 187, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.to_channel_arg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18CompressionOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CompressionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_47compression_algorithm_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_47compression_algorithm_name = {"compression_algorithm_name", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_47compression_algorithm_name, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_47compression_algorithm_name(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_compression_algorithm __pyx_v_algorithm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compression_algorithm_name (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_algorithm,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(21, 192, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 192, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "compression_algorithm_name", 0) < 0) __PYX_ERR(21, 192, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("compression_algorithm_name", 1, 1, 1, i); __PYX_ERR(21, 192, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(21, 192, __pyx_L3_error)
    }
    __pyx_v_algorithm = ((grpc_compression_algorithm)__Pyx_PyLong_As_grpc_compression_algorithm(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 192, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("compression_algorithm_name", 1, 1, 1, __pyx_nargs); __PYX_ERR(21, 192, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.compression_algorithm_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_46compression_algorithm_name(__pyx_self, __pyx_v_algorithm);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_46compression_algorithm_name(CYTHON_UNUSED PyObject *__pyx_self, grpc_compression_algorithm __pyx_v_algorithm) {
  char const *__pyx_v_name;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("compression_algorithm_name", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":194
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):
 *   cdef const char* name
 *   with nogil:             # <<<<<<<<<<<<<<
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":195
 *   cdef const char* name
 *   with nogil:
 *     grpc_compression_algorithm_name(algorithm, &name)             # <<<<<<<<<<<<<<
 *   # Let Cython do the right thing with string casting
 *   return name
*/
        (void)(grpc_compression_algorithm_name(__pyx_v_algorithm, (&__pyx_v_name)));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":194
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):
 *   cdef const char* name
 *   with nogil:             # <<<<<<<<<<<<<<
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":197
 *     grpc_compression_algorithm_name(algorithm, &name)
 *   # Let Cython do the right thing with string casting
 *   return name             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.compression_algorithm_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_49reset_grpc_config_vars(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_49reset_grpc_config_vars = {"reset_grpc_config_vars", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_49reset_grpc_config_vars, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_49reset_grpc_config_vars(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset_grpc_config_vars (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_48reset_grpc_config_vars(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_48reset_grpc_config_vars(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset_grpc_config_vars", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":201
 * 
 * def reset_grpc_config_vars():
 *   ConfigVars.Reset()             # <<<<<<<<<<<<<<
*/
  grpc_core::ConfigVars::Reset();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":20
 * 
 * 
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *     char **pem_root_certs) noexcept nogil:
 *   with gil:
*/

static grpc_ssl_roots_override_result __pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback(char **__pyx_v_pem_root_certs) {
  PyObject *__pyx_v_pkg = NULL;
  PyObject *__pyx_v_temporary_pem_root_certs = NULL;
  grpc_ssl_roots_override_result __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  char *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("ssl_roots_override_callback", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":22
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(
 *     char **pem_root_certs) noexcept nogil:
 *   with gil:             # <<<<<<<<<<<<<<
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":23
 *     char **pem_root_certs) noexcept nogil:
 *   with gil:
 *     pkg = __name__             # <<<<<<<<<<<<<<
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]
*/
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 23, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_pkg = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":24
 *   with gil:
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):             # <<<<<<<<<<<<<<
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
*/
        __pyx_t_2 = __pyx_v_pkg;
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_3 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_cygrpc};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 24, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(22, 24, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_4) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":25
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]             # <<<<<<<<<<<<<<
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
*/
          __pyx_t_5 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_kp_u_cygrpc); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(22, 25, __pyx_L4_error)
          __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_pkg, 0, (-__pyx_t_5), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 25, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_pkg, __pyx_t_1);
          __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":24
 *   with gil:
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):             # <<<<<<<<<<<<<<
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":26
 *     if pkg.endswith('.cygrpc'):
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')             # <<<<<<<<<<<<<<
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(
*/
        __pyx_t_2 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_pkgutil); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 26, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 26, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
          assert(__pyx_t_2);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
          __pyx_t_3 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_pkg, __pyx_mstate_global->__pyx_kp_u_credentials_roots_pem};
          __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 26, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __pyx_v_temporary_pem_root_certs = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":27
 *       pkg = pkg[:-len('.cygrpc')]
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)             # <<<<<<<<<<<<<<
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
*/
        __pyx_t_5 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(22, 27, __pyx_L4_error)
        (__pyx_v_pem_root_certs[0]) = ((char *)gpr_malloc((__pyx_t_5 + 1)));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":29
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,             # <<<<<<<<<<<<<<
 *         len(temporary_pem_root_certs))
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
*/
        __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_temporary_pem_root_certs); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(22, 29, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":30
 *     memcpy(
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))             # <<<<<<<<<<<<<<
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
 * 
*/
        __pyx_t_5 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(22, 30, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":28
 *     temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem')
 *     pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1)
 *     memcpy(             # <<<<<<<<<<<<<<
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))
*/
        (void)(memcpy((__pyx_v_pem_root_certs[0]), ((char *)__pyx_t_8), __pyx_t_5));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":31
 *         pem_root_certs[0], <char *>temporary_pem_root_certs,
 *         len(temporary_pem_root_certs))
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'             # <<<<<<<<<<<<<<
 * 
 *   return GRPC_SSL_ROOTS_OVERRIDE_OK
*/
        __pyx_t_5 = PyObject_Length(__pyx_v_temporary_pem_root_certs); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(22, 31, __pyx_L4_error)
        ((__pyx_v_pem_root_certs[0])[__pyx_t_5]) = '\x00';
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":22
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(
 *     char **pem_root_certs) noexcept nogil:
 *   with gil:             # <<<<<<<<<<<<<<
 *     pkg = __name__
 *     if pkg.endswith('.cygrpc'):
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":33
 *     pem_root_certs[0][len(temporary_pem_root_certs)] = '\0'
 * 
 *   return GRPC_SSL_ROOTS_OVERRIDE_OK             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = GRPC_SSL_ROOTS_OVERRIDE_OK;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":20
 * 
 * 
 * cdef grpc_ssl_roots_override_result ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *     char **pem_root_certs) noexcept nogil:
 *   with gil:
*/

  /* function exit code */
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.ssl_roots_override_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = (grpc_ssl_roots_override_result) 0;
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_v_pkg);
  __Pyx_XDECREF(__pyx_v_temporary_pem_root_certs);
  __Pyx_RefNannyFinishContext();
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identities(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_51peer_identities = {"peer_identities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_51peer_identities(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(22, 36, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 36, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peer_identities", 0) < 0) __PYX_ERR(22, 36, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 1, 1, i); __PYX_ERR(22, 36, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 36, __pyx_L3_error)
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 36, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 36, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_50peer_identities(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_50peer_identities(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  grpc_auth_property_iterator __pyx_v_properties;
  grpc_auth_property const *__pyx_v_property;
  PyObject *__pyx_v_identities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":41
 *   cdef const grpc_auth_property* property
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return None
*/
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":42
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
*/
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":43
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return None             # <<<<<<<<<<<<<<
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":42
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":44
 *   if auth_context == NULL:
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)             # <<<<<<<<<<<<<<
 *   identities = []
 *   while True:
*/
  __pyx_v_properties = grpc_auth_context_peer_identity(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":45
 *     return None
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []             # <<<<<<<<<<<<<<
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_identities = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":46
 *   properties = grpc_auth_context_peer_identity(auth_context)
 *   identities = []
 *   while True:             # <<<<<<<<<<<<<<
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":47
 *   identities = []
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)             # <<<<<<<<<<<<<<
 *     if property == NULL:
 *       break
*/
    __pyx_v_property = grpc_auth_property_iterator_next((&__pyx_v_properties));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":48
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.value != NULL:
*/
    __pyx_t_1 = (__pyx_v_property == NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":49
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 *       break             # <<<<<<<<<<<<<<
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))
*/
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":48
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.value != NULL:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":50
 *     if property == NULL:
 *       break
 *     if property.value != NULL:             # <<<<<<<<<<<<<<
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
*/
    __pyx_t_1 = (__pyx_v_property->value != NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":51
 *       break
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return identities if identities else None
*/
      __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_identities, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(22, 51, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":50
 *     if property == NULL:
 *       break
 *     if property.value != NULL:             # <<<<<<<<<<<<<<
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
*/
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":52
 *     if property.value != NULL:
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return identities if identities else None
 * 
*/
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":53
 *       identities.append(<bytes>(property.value))
 *   grpc_auth_context_release(auth_context)
 *   return identities if identities else None             # <<<<<<<<<<<<<<
 * 
 * def peer_identity_key(Call call):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (__Pyx_PyList_GET_SIZE(__pyx_v_identities) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_1 < 0))) __PYX_ERR(22, 53, __pyx_L1_error)
  if (__pyx_t_1) {
    __Pyx_INCREF(__pyx_v_identities);
    __pyx_t_2 = __pyx_v_identities;
  } else {
    __Pyx_INCREF(Py_None);
    __pyx_t_2 = Py_None;
  }
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_identities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_53peer_identity_key(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_53peer_identity_key = {"peer_identity_key", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_53peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_53peer_identity_key(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(22, 55, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 55, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peer_identity_key", 0) < 0) __PYX_ERR(22, 55, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 1, 1, i); __PYX_ERR(22, 55, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 55, __pyx_L3_error)
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 55, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 55, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_52peer_identity_key(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_52peer_identity_key(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  char const *__pyx_v_c_key;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":58
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return None
*/
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":59
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
*/
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":60
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return None             # <<<<<<<<<<<<<<
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":59
 *   cdef const char* c_key
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":61
 *   if auth_context == NULL:
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)             # <<<<<<<<<<<<<<
 *   if c_key == NULL:
 *     key = None
*/
  __pyx_v_c_key = grpc_auth_context_peer_identity_property_name(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":62
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:             # <<<<<<<<<<<<<<
 *     key = None
 *   else:
*/
  __pyx_t_1 = (__pyx_v_c_key == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":63
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:
 *     key = None             # <<<<<<<<<<<<<<
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
*/
    __Pyx_INCREF(Py_None);
    __pyx_v_key = ((PyObject*)Py_None);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":62
 *     return None
 *   c_key = grpc_auth_context_peer_identity_property_name(auth_context)
 *   if c_key == NULL:             # <<<<<<<<<<<<<<
 *     key = None
 *   else:
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":65
 *     key = None
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return key
*/
  /*else*/ {
    __pyx_t_2 = __Pyx_PyBytes_FromString(grpc_auth_context_peer_identity_property_name(__pyx_v_auth_context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_key = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":66
 *   else:
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return key
 * 
*/
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":67
 *     key = <bytes> grpc_auth_context_peer_identity_property_name(auth_context)
 *   grpc_auth_context_release(auth_context)
 *   return key             # <<<<<<<<<<<<<<
 * 
 * def auth_context(Call call):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_key);
  __pyx_r = __pyx_v_key;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_55auth_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_55auth_context = {"auth_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_55auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_55auth_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(22, 69, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "auth_context", 0) < 0) __PYX_ERR(22, 69, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("auth_context", 1, 1, 1, i); __PYX_ERR(22, 69, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(22, 69, __pyx_L3_error)
    }
    __pyx_v_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("auth_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(22, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, 1, "call", 0))) __PYX_ERR(22, 69, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_54auth_context(__pyx_self, __pyx_v_call);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_54auth_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_call) {
  grpc_auth_context *__pyx_v_auth_context;
  grpc_auth_property_iterator __pyx_v_properties;
  grpc_auth_property const *__pyx_v_property;
  PyObject *__pyx_v_py_auth_context = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":74
 *   cdef const grpc_auth_property* property
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)             # <<<<<<<<<<<<<<
 *   if auth_context == NULL:
 *     return {}
*/
  __pyx_v_auth_context = grpc_call_auth_context(__pyx_v_call->c_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":75
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
*/
  __pyx_t_1 = (__pyx_v_auth_context == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":76
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:
 *     return {}             # <<<<<<<<<<<<<<
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":75
 * 
 *   auth_context = grpc_call_auth_context(call.c_call)
 *   if auth_context == NULL:             # <<<<<<<<<<<<<<
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":77
 *   if auth_context == NULL:
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)             # <<<<<<<<<<<<<<
 *   py_auth_context = {}
 *   while True:
*/
  __pyx_v_properties = grpc_auth_context_property_iterator(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":78
 *     return {}
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}             # <<<<<<<<<<<<<<
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_py_auth_context = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":79
 *   properties = grpc_auth_context_property_iterator(auth_context)
 *   py_auth_context = {}
 *   while True:             # <<<<<<<<<<<<<<
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":80
 *   py_auth_context = {}
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)             # <<<<<<<<<<<<<<
 *     if property == NULL:
 *       break
*/
    __pyx_v_property = grpc_auth_property_iterator_next((&__pyx_v_properties));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":81
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.name != NULL and property.value != NULL:
*/
    __pyx_t_1 = (__pyx_v_property == NULL);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":82
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:
 *       break             # <<<<<<<<<<<<<<
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
*/
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":81
 *   while True:
 *     property = grpc_auth_property_iterator_next(&properties)
 *     if property == NULL:             # <<<<<<<<<<<<<<
 *       break
 *     if property.name != NULL and property.value != NULL:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":83
 *     if property == NULL:
 *       break
 *     if property.name != NULL and property.value != NULL:             # <<<<<<<<<<<<<<
 *       key = <bytes> property.name
 *       if key in py_auth_context:
*/
    __pyx_t_3 = (__pyx_v_property->name != NULL);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_property->value != NULL);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":84
 *       break
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name             # <<<<<<<<<<<<<<
 *       if key in py_auth_context:
 *         py_auth_context[key].append(<bytes>(property.value))
*/
      __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_4));
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":85
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
 *       if key in py_auth_context:             # <<<<<<<<<<<<<<
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
*/
      __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_py_auth_context, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(22, 85, __pyx_L1_error)
      if (__pyx_t_1) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":86
 *       key = <bytes> property.name
 *       if key in py_auth_context:
 *         py_auth_context[key].append(<bytes>(property.value))             # <<<<<<<<<<<<<<
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]
*/
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_py_auth_context, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_2); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(22, 86, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":85
 *     if property.name != NULL and property.value != NULL:
 *       key = <bytes> property.name
 *       if key in py_auth_context:             # <<<<<<<<<<<<<<
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
*/
        goto __pyx_L10;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":88
 *         py_auth_context[key].append(<bytes>(property.value))
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]             # <<<<<<<<<<<<<<
 *   grpc_auth_context_release(auth_context)
 *   return py_auth_context
*/
      /*else*/ {
        __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_property->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(((PyObject*)__pyx_t_2));
        __Pyx_GIVEREF(((PyObject*)__pyx_t_2));
        if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(22, 88, __pyx_L1_error);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely((PyDict_SetItem(__pyx_v_py_auth_context, __pyx_v_key, __pyx_t_4) < 0))) __PYX_ERR(22, 88, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_L10:;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":83
 *     if property == NULL:
 *       break
 *     if property.name != NULL and property.value != NULL:             # <<<<<<<<<<<<<<
 *       key = <bytes> property.name
 *       if key in py_auth_context:
*/
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":89
 *       else:
 *         py_auth_context[key] = [<bytes> property.value]
 *   grpc_auth_context_release(auth_context)             # <<<<<<<<<<<<<<
 *   return py_auth_context
 * 
*/
  grpc_auth_context_release(__pyx_v_auth_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":90
 *         py_auth_context[key] = [<bytes> property.value]
 *   grpc_auth_context_release(auth_context)
 *   return py_auth_context             # <<<<<<<<<<<<<<
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_py_auth_context);
  __pyx_r = __pyx_v_py_auth_context;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_py_auth_context);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":18
 * cdef class RegisteredMethod:
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_method = 0;
  __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_server,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 18, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(23, 18, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(23, 18, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 18, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 18, __pyx_L3_error)
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_server = __Pyx_PyLong_As_size_t(values[1]); if (unlikely((__pyx_v_server == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(23, 18, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(23, 18, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self), __pyx_v_method, __pyx_v_server);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, PyObject *__pyx_v_method, __pyx_t_4grpc_7_cython_6cygrpc_uintptr_t __pyx_v_server) {
  char const *__pyx_v_c_method;
  grpc_server *__pyx_v_c_server;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  char const *__pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":19
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):
 *     self.method = method             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method
*/
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":20
 *   def __cinit__(self, bytes method, uintptr_t server):
 *     self.method = method
 *     cpython.Py_INCREF(self.method)             # <<<<<<<<<<<<<<
 *     cdef const char *c_method = <const char *>self.method
 *     cdef grpc_server *c_server = <grpc_server *>server
*/
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":21
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method             # <<<<<<<<<<<<<<
 *     cdef grpc_server *c_server = <grpc_server *>server
 *     # TODO(xuanwn): Consider use GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER for unary request
*/
  if (unlikely(__pyx_v_self->method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(23, 21, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_self->method); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(23, 21, __pyx_L1_error)
  __pyx_v_c_method = ((char const *)__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":22
 *     cpython.Py_INCREF(self.method)
 *     cdef const char *c_method = <const char *>self.method
 *     cdef grpc_server *c_server = <grpc_server *>server             # <<<<<<<<<<<<<<
 *     # TODO(xuanwn): Consider use GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER for unary request
 *     # as optimization.
*/
  __pyx_v_c_server = ((grpc_server *)__pyx_v_server);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":26
 *     # as optimization.
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self.c_registered_method = grpc_server_register_method(c_server,
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":27
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:
 *       self.c_registered_method = grpc_server_register_method(c_server,             # <<<<<<<<<<<<<<
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
*/
        __pyx_v_self->c_registered_method = grpc_server_register_method(__pyx_v_c_server, __pyx_v_c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":26
 *     # as optimization.
 *     # Note that in stubs method is not bound to any host, thus we set host as NULL.
 *     with nogil:             # <<<<<<<<<<<<<<
 *       self.c_registered_method = grpc_server_register_method(c_server,
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":18
 * cdef class RegisteredMethod:
 * 
 *   def __cinit__(self, bytes method, uintptr_t server):             # <<<<<<<<<<<<<<
 *     self.method = method
 *     cpython.Py_INCREF(self.method)
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":30
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     # c_registered_method should have the same lifetime as Cython Server since the method
 *     # maybe called at any time during the server's lifetime.
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":35
 *     # Since all RegisteredMethod belongs to Cython Server, they'll be destructed at the same
 *     # time with Cython Server, at which point it's safe to assume core no longer holds any reference.
 *     cpython.Py_DECREF(self.method)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_v_self->method;
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":30
 *       c_method, NULL, GRPC_SRM_PAYLOAD_NONE, 0)
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     # c_registered_method should have the same lifetime as Cython Server since the method
 *     # maybe called at any time during the server's lifetime.
*/

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16RegisteredMethod_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RegisteredMethod.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":40
 * cdef class Server:
 * 
 *   def __cinit__(self, object arguments, bint xds):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.references = []
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_arguments = 0;
  int __pyx_v_xds;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_arguments,&__pyx_mstate_global->__pyx_n_u_xds,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 40, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 40, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 40, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(23, 40, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(23, 40, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 40, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 40, __pyx_L3_error)
    }
    __pyx_v_arguments = values[0];
    __pyx_v_xds = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_xds == (int)-1) && PyErr_Occurred())) __PYX_ERR(23, 40, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 40, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_arguments, __pyx_v_xds);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_6Server___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_arguments, int __pyx_v_xds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_server_xds_status_notifier __pyx_v_notifier;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_channel_args *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":41
 * 
 *   def __cinit__(self, object arguments, bint xds):
 *     fork_handlers_and_grpc_init()             # <<<<<<<<<<<<<<
 *     self.references = []
 *     self.registered_completion_queues = []
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":42
 *   def __cinit__(self, object arguments, bint xds):
 *     fork_handlers_and_grpc_init()
 *     self.references = []             # <<<<<<<<<<<<<<
 *     self.registered_completion_queues = []
 *     self.is_started = False
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->references);
  __Pyx_DECREF(__pyx_v_self->references);
  __pyx_v_self->references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":43
 *     fork_handlers_and_grpc_init()
 *     self.references = []
 *     self.registered_completion_queues = []             # <<<<<<<<<<<<<<
 *     self.is_started = False
 *     self.is_shutting_down = False
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->registered_completion_queues);
  __Pyx_DECREF(__pyx_v_self->registered_completion_queues);
  __pyx_v_self->registered_completion_queues = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":44
 *     self.references = []
 *     self.registered_completion_queues = []
 *     self.is_started = False             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
*/
  __pyx_v_self->is_started = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":45
 *     self.registered_completion_queues = []
 *     self.is_started = False
 *     self.is_shutting_down = False             # <<<<<<<<<<<<<<
 *     self.is_shutdown = False
 *     self.c_server = NULL
*/
  __pyx_v_self->is_shutting_down = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":46
 *     self.is_started = False
 *     self.is_shutting_down = False
 *     self.is_shutdown = False             # <<<<<<<<<<<<<<
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
*/
  __pyx_v_self->is_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":47
 *     self.is_shutting_down = False
 *     self.is_shutdown = False
 *     self.c_server = NULL             # <<<<<<<<<<<<<<
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
*/
  __pyx_v_self->c_server = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":48
 *     self.is_shutdown = False
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]             # <<<<<<<<<<<<<<
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->registered_methods);
  __Pyx_DECREF(__pyx_v_self->registered_methods);
  __pyx_v_self->registered_methods = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":49
 *     self.c_server = NULL
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)             # <<<<<<<<<<<<<<
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
 *     cdef grpc_server_xds_status_notifier notifier
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_arguments};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 49, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":50
 *     self.registered_methods = {}  # Mapping[bytes, RegisteredMethod]
 *     cdef _ChannelArgs channel_args = _ChannelArgs(arguments)
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)             # <<<<<<<<<<<<<<
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL
*/
  __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 50, __pyx_L1_error)
  __pyx_v_self->c_server = grpc_server_create(__pyx_t_5, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":52
 *     self.c_server = grpc_server_create(channel_args.c_args(), NULL)
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL             # <<<<<<<<<<<<<<
 *     notifier.user_data = NULL
 *     if xds:
*/
  __pyx_v_notifier.on_serving_status_update = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":53
 *     cdef grpc_server_xds_status_notifier notifier
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL             # <<<<<<<<<<<<<<
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,
*/
  __pyx_v_notifier.user_data = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":54
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL
 *     if xds:             # <<<<<<<<<<<<<<
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
*/
  if (__pyx_v_xds) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":56
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))             # <<<<<<<<<<<<<<
 *     self.references.append(arguments)
 * 
*/
    __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 56, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":55
 *     notifier.user_data = NULL
 *     if xds:
 *       grpc_server_set_config_fetcher(self.c_server,             # <<<<<<<<<<<<<<
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 *     self.references.append(arguments)
*/
    grpc_server_set_config_fetcher(__pyx_v_self->c_server, grpc_server_config_fetcher_xds_create(__pyx_v_notifier, __pyx_t_5));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":54
 *     notifier.on_serving_status_update = NULL
 *     notifier.user_data = NULL
 *     if xds:             # <<<<<<<<<<<<<<
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":57
 *       grpc_server_set_config_fetcher(self.c_server,
 *         grpc_server_config_fetcher_xds_create(notifier, channel_args.c_args()))
 *     self.references.append(arguments)             # <<<<<<<<<<<<<<
 * 
 *   def request_call(
*/
  if (unlikely(__pyx_v_self->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 57, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_arguments); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(23, 57, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":40
 * cdef class Server:
 * 
 *   def __cinit__(self, object arguments, bint xds):             # <<<<<<<<<<<<<<
 *     fork_handlers_and_grpc_init()
 *     self.references = []
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_3request_call = {"request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_queue,&__pyx_mstate_global->__pyx_n_u_server_queue,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 59, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(23, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 59, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "request_call", 0) < 0) __PYX_ERR(23, 59, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("request_call", 1, 3, 3, i); __PYX_ERR(23, 59, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 59, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 59, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(23, 59, __pyx_L3_error)
    }
    __pyx_v_call_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_server_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[1]);
    __pyx_v_tag = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("request_call", 1, 3, 3, __pyx_nargs); __PYX_ERR(23, 59, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "call_queue", 0))) __PYX_ERR(23, 60, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "server_queue", 0))) __PYX_ERR(23, 61, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_2request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("request_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":62
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
*/
  __pyx_t_2 = (!__pyx_v_self->is_started);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __pyx_v_self->is_shutting_down;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":63
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")             # <<<<<<<<<<<<<<
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_server_must_be_started_and_not_s};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 63, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":62
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":64
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_server_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 64, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":65
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")             # <<<<<<<<<<<<<<
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_server_queue_must_be_a_registere};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 65, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":64
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":66
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)             # <<<<<<<<<<<<<<
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag); 
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_tag};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 66, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }
  __pyx_v_request_call_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":67
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)             # <<<<<<<<<<<<<<
 * 
 *   def request_registered_call(
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_request_unregistered_call(__pyx_v_self, __pyx_v_request_call_tag, __pyx_v_call_queue, __pyx_v_server_queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_request_call_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_5request_registered_call = {"request_registered_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue = 0;
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("request_registered_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_queue,&__pyx_mstate_global->__pyx_n_u_server_queue,&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 69, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(23, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(23, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "request_registered_call", 0) < 0) __PYX_ERR(23, 69, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, i); __PYX_ERR(23, 69, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 69, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 69, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(23, 69, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(23, 69, __pyx_L3_error)
    }
    __pyx_v_call_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_server_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[1]);
    __pyx_v_method = ((PyObject*)values[2]);
    __pyx_v_tag = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("request_registered_call", 1, 4, 4, __pyx_nargs); __PYX_ERR(23, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "call_queue", 0))) __PYX_ERR(23, 70, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "server_queue", 0))) __PYX_ERR(23, 71, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyUnicode_Type), 0, "method", 1))) __PYX_ERR(23, 72, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_method, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_4request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag = 0;
  PyObject *__pyx_v_method_bytes = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("request_registered_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":74
 *       str method not None,
 *       tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
*/
  __pyx_t_2 = (!__pyx_v_self->is_started);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __pyx_v_self->is_shutting_down;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":75
 *       tag):
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")             # <<<<<<<<<<<<<<
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_5 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_server_must_be_started_and_not_s};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 75, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 75, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":74
 *       str method not None,
 *       tag):
 *     if not self.is_started or self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":76
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_server_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(23, 76, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":77
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")             # <<<<<<<<<<<<<<
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_server_queue_must_be_a_registere};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 77, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(23, 77, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":76
 *     if not self.is_started or self.is_shutting_down:
 *       raise ValueError("server must be started and not shutting down")
 *     if server_queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":78
 *     if server_queue not in self.registered_completion_queues:
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(method)
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag); 
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_tag};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 78, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }
  __pyx_v_request_call_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":79
 *       raise ValueError("server_queue must be a registered completion queue")
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)             # <<<<<<<<<<<<<<
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_method); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_method_bytes = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":80
 *     cdef _RequestCallTag request_call_tag = _RequestCallTag(tag)
 *     method_bytes = str_to_bytes(method)
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_request_registered_call(self,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_request_registered_call(__pyx_v_self, __pyx_v_request_call_tag, __pyx_v_call_queue, __pyx_v_server_queue, __pyx_v_method_bytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_request_call_tag);
  __Pyx_XDECREF(__pyx_v_method_bytes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":82
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
 *   cdef _c_request_registered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue, PyObject *__pyx_v_method) {
  PyObject *__pyx_v_c_request_call_tag;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_registered_method = 0;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  grpc_call_error __pyx_t_6;
  char const *__pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_request_registered_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":87
 *        CompletionQueue server_queue,
 *        bytes method):
 *     request_call_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_request_call_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_request_call_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 87, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":88
 *        bytes method):
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)             # <<<<<<<<<<<<<<
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
*/
  Py_INCREF(((PyObject *)__pyx_v_request_call_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":89
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag             # <<<<<<<<<<<<<<
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
*/
  __pyx_v_c_request_call_tag = ((PyObject *)__pyx_v_request_call_tag);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":90
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]             # <<<<<<<<<<<<<<
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
*/
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(23, 90, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->registered_methods, __pyx_v_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod))))) __PYX_ERR(23, 90, __pyx_L1_error)
  __pyx_v_registered_method = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":92
 *     cdef RegisteredMethod registered_method = self.registered_methods[method]
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_call_error = grpc_server_request_registered_call(
*/
  __pyx_v_c_call_error = GRPC_CALL_OK;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":93
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_registered_call(
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":94
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
 *       c_call_error = grpc_server_request_registered_call(             # <<<<<<<<<<<<<<
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
 *           &request_call_tag.call_details.c_details.deadline,
*/
        __pyx_v_c_call_error = grpc_server_request_registered_call(__pyx_v_self->c_server, __pyx_v_registered_method->c_registered_method, (&__pyx_v_request_call_tag->call->c_call), (&__pyx_v_request_call_tag->call_details->c_details.deadline), (&__pyx_v_request_call_tag->c_invocation_metadata), NULL, __pyx_v_call_queue->c_completion_queue, __pyx_v_server_queue->c_completion_queue, __pyx_v_c_request_call_tag);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":93
 *     # optional_payload is set to NULL because we use GRPC_SRM_PAYLOAD_NONE for all method.
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_registered_call(
 *           self.c_server, registered_method.c_registered_method, &request_call_tag.call.c_call,
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":101
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
*/
  __pyx_t_2 = (__pyx_v_c_call_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_2)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":102
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())             # <<<<<<<<<<<<<<
 *     return c_call_error
 * 
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_c_call_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = ((grpc_call_error)__Pyx_PyLong_As_grpc_call_error(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = grpc_call_error_to_string(__pyx_t_6);
    __pyx_t_8 = __Pyx_ssize_strlen(__pyx_t_7); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(23, 102, __pyx_L1_error)
    __pyx_t_5 = __Pyx_decode_c_string(__pyx_t_7, 0, __pyx_t_8, NULL, NULL, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Error_in_grpc_server_request_reg, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_10 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_10 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_9};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 102, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":101
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":103
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_registered_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_request_unregistered_call(self,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":82
 *     return self._c_request_registered_call(request_call_tag, call_queue, server_queue, method_bytes)
 * 
 *   cdef _c_request_registered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_request_registered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_registered_method);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":105
 *     return c_call_error
 * 
 *   cdef _c_request_unregistered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_request_call_tag, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_call_queue, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_server_queue) {
  PyObject *__pyx_v_c_request_call_tag;
  grpc_call_error __pyx_v_c_call_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  grpc_call_error __pyx_t_6;
  char const *__pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_request_unregistered_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":109
 *        CompletionQueue call_queue,
 *        CompletionQueue server_queue):
 *     request_call_tag.prepare()             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_request_call_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_v_request_call_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 109, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":110
 *        CompletionQueue server_queue):
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)             # <<<<<<<<<<<<<<
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
*/
  Py_INCREF(((PyObject *)__pyx_v_request_call_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":111
 *     request_call_tag.prepare()
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
*/
  __pyx_v_c_request_call_tag = ((PyObject *)__pyx_v_request_call_tag);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":112
 *     cpython.Py_INCREF(request_call_tag)
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *     with nogil:
 *       c_call_error = grpc_server_request_call(
*/
  __pyx_v_c_call_error = GRPC_CALL_OK;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":113
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_call(
 *           self.c_server, &request_call_tag.call.c_call,
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":114
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:
 *       c_call_error = grpc_server_request_call(             # <<<<<<<<<<<<<<
 *           self.c_server, &request_call_tag.call.c_call,
 *           &request_call_tag.call_details.c_details,
*/
        __pyx_v_c_call_error = grpc_server_request_call(__pyx_v_self->c_server, (&__pyx_v_request_call_tag->call->c_call), (&__pyx_v_request_call_tag->call_details->c_details), (&__pyx_v_request_call_tag->c_invocation_metadata), __pyx_v_call_queue->c_completion_queue, __pyx_v_server_queue->c_completion_queue, __pyx_v_c_request_call_tag);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":113
 *     cdef cpython.PyObject *c_request_call_tag = <cpython.PyObject *>request_call_tag
 *     cdef grpc_call_error c_call_error = GRPC_CALL_OK
 *     with nogil:             # <<<<<<<<<<<<<<
 *       c_call_error = grpc_server_request_call(
 *           self.c_server, &request_call_tag.call.c_call,
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":120
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
*/
  __pyx_t_1 = (__pyx_v_c_call_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":121
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())             # <<<<<<<<<<<<<<
 *     return c_call_error
 * 
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_c_call_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = ((grpc_call_error)__Pyx_PyLong_As_grpc_call_error(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = grpc_call_error_to_string(__pyx_t_6);
    __pyx_t_8 = __Pyx_ssize_strlen(__pyx_t_7); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(23, 121, __pyx_L1_error)
    __pyx_t_5 = __Pyx_decode_c_string(__pyx_t_7, 0, __pyx_t_8, NULL, NULL, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Error_in_grpc_server_request_cal, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_10 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_10 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_9};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 121, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":120
 *           call_queue.c_completion_queue, server_queue.c_completion_queue,
 *           c_request_call_tag)
 *     if c_call_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":122
 *     if c_call_error != GRPC_CALL_OK:
 *       raise InternalError("Error in grpc_server_request_call: %s" % grpc_call_error_to_string(self.c_call_error).decode())
 *     return c_call_error             # <<<<<<<<<<<<<<
 * 
 *   def register_completion_queue(
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_c_call_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":105
 *     return c_call_error
 * 
 *   cdef _c_request_unregistered_call(self,             # <<<<<<<<<<<<<<
 *        _RequestCallTag request_call_tag,
 *        CompletionQueue call_queue,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_request_unregistered_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue = {"register_completion_queue", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_completion_queue (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_queue,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 124, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 124, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_completion_queue", 0) < 0) __PYX_ERR(23, 124, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_completion_queue", 1, 1, 1, i); __PYX_ERR(23, 124, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 124, __pyx_L3_error)
    }
    __pyx_v_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_completion_queue", 1, 1, 1, __pyx_nargs); __PYX_ERR(23, 124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "queue", 0))) __PYX_ERR(23, 125, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_queue);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_6register_completion_queue(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_completion_queue", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":126
 *   def register_completion_queue(
 *       self, CompletionQueue queue not None):
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
*/
  if (unlikely(__pyx_v_self->is_started)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":127
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_register_completion_queue(
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_3 = __pyx_builtin_ValueError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_cannot_register_completion_queue};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 127, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 127, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":126
 *   def register_completion_queue(
 *       self, CompletionQueue queue not None):
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":128
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":129
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:
 *       grpc_server_register_completion_queue(             # <<<<<<<<<<<<<<
 *           self.c_server, queue.c_completion_queue, NULL)
 *     self.registered_completion_queues.append(queue)
*/
        grpc_server_register_completion_queue(__pyx_v_self->c_server, __pyx_v_queue->c_completion_queue, NULL);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":128
 *     if self.is_started:
 *       raise ValueError("cannot register completion queues after start")
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":131
 *       grpc_server_register_completion_queue(
 *           self.c_server, queue.c_completion_queue, NULL)
 *     self.registered_completion_queues.append(queue)             # <<<<<<<<<<<<<<
 * 
 *   def register_method(self, str fully_qualified_method):
*/
  if (unlikely(__pyx_v_self->registered_completion_queues == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 131, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_self->registered_completion_queues, ((PyObject *)__pyx_v_queue)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(23, 131, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_9register_method = {"register_method", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_fully_qualified_method = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_method (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_fully_qualified_method,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 133, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 133, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_method", 0) < 0) __PYX_ERR(23, 133, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_method", 1, 1, 1, i); __PYX_ERR(23, 133, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 133, __pyx_L3_error)
    }
    __pyx_v_fully_qualified_method = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_method", 1, 1, 1, __pyx_nargs); __PYX_ERR(23, 133, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fully_qualified_method), (&PyUnicode_Type), 1, "fully_qualified_method", 1))) __PYX_ERR(23, 133, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_fully_qualified_method);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_8register_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_fully_qualified_method) {
  PyObject *__pyx_v_method_bytes = NULL;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *__pyx_v_registered_method = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_method", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":134
 * 
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)             # <<<<<<<<<<<<<<
 *     if method_bytes in self.registered_methods.keys():
 *       # Ignore already registered method
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_fully_qualified_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_method_bytes = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":135
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():             # <<<<<<<<<<<<<<
 *       # Ignore already registered method
 *       return
*/
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
    __PYX_ERR(23, 135, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_self->registered_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_method_bytes, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(23, 135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":137
 *     if method_bytes in self.registered_methods.keys():
 *       # Ignore already registered method
 *       return             # <<<<<<<<<<<<<<
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)
 *     self.registered_methods[method_bytes] = registered_method
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":135
 *   def register_method(self, str fully_qualified_method):
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():             # <<<<<<<<<<<<<<
 *       # Ignore already registered method
 *       return
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":138
 *       # Ignore already registered method
 *       return
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)             # <<<<<<<<<<<<<<
 *     self.registered_methods[method_bytes] = registered_method
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod); 
  __pyx_t_5 = __Pyx_PyLong_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_self->c_server)); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_method_bytes, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 138, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_registered_method = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":139
 *       return
 *     cdef RegisteredMethod registered_method = RegisteredMethod(method_bytes, <uintptr_t>self.c_server)
 *     self.registered_methods[method_bytes] = registered_method             # <<<<<<<<<<<<<<
 * 
 *   def start(self, backup_queue=True):
*/
  if (unlikely(__pyx_v_self->registered_methods == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(23, 139, __pyx_L1_error)
  }
  if (unlikely((PyDict_SetItem(__pyx_v_self->registered_methods, __pyx_v_method_bytes, ((PyObject *)__pyx_v_registered_method)) < 0))) __PYX_ERR(23, 139, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.register_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_method_bytes);
  __Pyx_XDECREF((PyObject *)__pyx_v_registered_method);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start, "Start the Cython gRPC Server.\n    \n    Args:\n      backup_queue: a bool indicates whether to spawn a backup completion\n        queue. In the case that no CQ is bound to the server, and the shutdown\n        of server becomes un-observable.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_11start = {"start", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_backup_queue = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_backup_queue,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 141, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 141, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "start", 0) < 0) __PYX_ERR(23, 141, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_True));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 141, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_True));
    }
    __pyx_v_backup_queue = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start", 0, 0, 1, __pyx_nargs); __PYX_ERR(23, 141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_backup_queue);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_10start(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_backup_queue) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":149
 *         of server becomes un-observable.
 *     """
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server has already started")
 *     if backup_queue:
*/
  if (unlikely(__pyx_v_self->is_started)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":150
 *     """
 *     if self.is_started:
 *       raise ValueError("the server has already started")             # <<<<<<<<<<<<<<
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_3 = __pyx_builtin_ValueError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_the_server_has_already_started};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 150, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":149
 *         of server becomes un-observable.
 *     """
 *     if self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server has already started")
 *     if backup_queue:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":151
 *     if self.is_started:
 *       raise ValueError("the server has already started")
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
*/
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_backup_queue); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(23, 151, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":152
 *       raise ValueError("the server has already started")
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)             # <<<<<<<<<<<<<<
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue);
    __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue); 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_3, NULL};
      __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_shutdown_cq, Py_True, __pyx_t_6, __pyx_callargs+1, 0) < 0) __PYX_ERR(23, 152, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_2, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 152, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->backup_shutdown_queue);
    __Pyx_DECREF((PyObject *)__pyx_v_self->backup_shutdown_queue);
    __pyx_v_self->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":153
 *     if backup_queue:
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)             # <<<<<<<<<<<<<<
 *     self.is_started = True
 *     with nogil:
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_self->backup_shutdown_queue)};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_register_completion_queue, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":151
 *     if self.is_started:
 *       raise ValueError("the server has already started")
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":154
 *       self.backup_shutdown_queue = CompletionQueue(shutdown_cq=True)
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_start(self.c_server)
*/
  __pyx_v_self->is_started = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":155
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_start(self.c_server)
 *     if backup_queue:
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":156
 *     self.is_started = True
 *     with nogil:
 *       grpc_server_start(self.c_server)             # <<<<<<<<<<<<<<
 *     if backup_queue:
 *       # Ensure the core has gotten a chance to do the start-up work
*/
        grpc_server_start(__pyx_v_self->c_server);
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":155
 *       self.register_completion_queue(self.backup_shutdown_queue)
 *     self.is_started = True
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_start(self.c_server)
 *     if backup_queue:
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L7;
        }
        __pyx_L7:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":157
 *     with nogil:
 *       grpc_server_start(self.c_server)
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())
*/
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_backup_queue); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(23, 157, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":159
 *     if backup_queue:
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())             # <<<<<<<<<<<<<<
 * 
 *   def add_http2_port(self, bytes address,
*/
    __pyx_t_2 = ((PyObject *)__pyx_v_self->backup_shutdown_queue);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL};
      __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_deadline, __pyx_t_6, __pyx_t_8, __pyx_callargs+1, 0) < 0) __PYX_ERR(23, 159, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_poll, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":157
 *     with nogil:
 *       grpc_server_start(self.c_server)
 *     if backup_queue:             # <<<<<<<<<<<<<<
 *       # Ensure the core has gotten a chance to do the start-up work
 *       self.backup_shutdown_queue.poll(deadline=time.time())
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_13add_http2_port = {"add_http2_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_http2_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_address,&__pyx_mstate_global->__pyx_n_u_server_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 161, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 161, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 161, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_http2_port", 0) < 0) __PYX_ERR(23, 161, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":162
 * 
 *   def add_http2_port(self, bytes address,
 *                      ServerCredentials server_credentials=None):             # <<<<<<<<<<<<<<
 *     address = str_to_bytes(address)
 *     self.references.append(address)
*/
      if (!values[1]) values[1] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_http2_port", 0, 1, 2, i); __PYX_ERR(23, 161, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 161, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 161, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)Py_None));
    }
    __pyx_v_address = ((PyObject*)values[0]);
    __pyx_v_server_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_http2_port", 0, 1, 2, __pyx_nargs); __PYX_ERR(23, 161, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.add_http2_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_address), (&PyBytes_Type), 1, "address", 1))) __PYX_ERR(23, 161, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials, 1, "server_credentials", 0))) __PYX_ERR(23, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_address, __pyx_v_server_credentials);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_12add_http2_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, PyObject *__pyx_v_address, struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *__pyx_v_server_credentials) {
  int __pyx_v_result;
  char *__pyx_v_address_c_string;
  grpc_server_credentials *__pyx_v_creds;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  char *__pyx_t_3;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_http2_port", 0);
  __Pyx_INCREF(__pyx_v_address);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":163
 *   def add_http2_port(self, bytes address,
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)             # <<<<<<<<<<<<<<
 *     self.references.append(address)
 *     cdef int result
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_address, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":164
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
 *     self.references.append(address)             # <<<<<<<<<<<<<<
 *     cdef int result
 *     cdef char *address_c_string = address
*/
  if (unlikely(__pyx_v_self->references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(23, 164, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->references, __pyx_v_address); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(23, 164, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":166
 *     self.references.append(address)
 *     cdef int result
 *     cdef char *address_c_string = address             # <<<<<<<<<<<<<<
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
*/
  if (unlikely(__pyx_v_address == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(23, 166, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_address); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(23, 166, __pyx_L1_error)
  __pyx_v_address_c_string = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":167
 *     cdef int result
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:             # <<<<<<<<<<<<<<
 *       self.references.append(server_credentials)
 *       with nogil:
*/
  __pyx_t_4 = (((PyObject *)__pyx_v_server_credentials) != Py_None);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":168
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         result = grpc_server_add_http2_port(
*/
    if (unlikely(__pyx_v_self->references == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(23, 168, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->references, ((PyObject *)__pyx_v_server_credentials)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(23, 168, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":169
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(
 *             self.c_server, address_c_string, server_credentials.c_credentials)
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":170
 *       self.references.append(server_credentials)
 *       with nogil:
 *         result = grpc_server_add_http2_port(             # <<<<<<<<<<<<<<
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
*/
          __pyx_v_result = grpc_server_add_http2_port(__pyx_v_self->c_server, __pyx_v_address_c_string, __pyx_v_server_credentials->c_credentials);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":169
 *     if server_credentials is not None:
 *       self.references.append(server_credentials)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(
 *             self.c_server, address_c_string, server_credentials.c_credentials)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L6;
          }
          __pyx_L6:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":167
 *     cdef int result
 *     cdef char *address_c_string = address
 *     if server_credentials is not None:             # <<<<<<<<<<<<<<
 *       self.references.append(server_credentials)
 *       with nogil:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":173
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,
*/
  /*else*/ {
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":174
 *     else:
 *       with nogil:
 *         creds = grpc_insecure_server_credentials_create()             # <<<<<<<<<<<<<<
 *         result = grpc_server_add_http2_port(self.c_server,
 *                                             address_c_string, creds)
*/
          __pyx_v_creds = grpc_insecure_server_credentials_create();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":175
 *       with nogil:
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,             # <<<<<<<<<<<<<<
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)
*/
          __pyx_v_result = grpc_server_add_http2_port(__pyx_v_self->c_server, __pyx_v_address_c_string, __pyx_v_creds);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":177
 *         result = grpc_server_add_http2_port(self.c_server,
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)             # <<<<<<<<<<<<<<
 *     return result
 * 
*/
          grpc_server_credentials_release(__pyx_v_creds);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":173
 *             self.c_server, address_c_string, server_credentials.c_credentials)
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         creds = grpc_insecure_server_credentials_create()
 *         result = grpc_server_add_http2_port(self.c_server,
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L9;
          }
          __pyx_L9:;
        }
    }
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":178
 *                                             address_c_string, creds)
 *         grpc_server_credentials_release(creds)
 *     return result             # <<<<<<<<<<<<<<
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.add_http2_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_address);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":180
 *     return result
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_server_shutdown_tag = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_c_shutdown", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":181
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
 *     self.is_shutting_down = True             # <<<<<<<<<<<<<<
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
*/
  __pyx_v_self->is_shutting_down = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":182
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)             # <<<<<<<<<<<<<<
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_tag, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 182, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_server_shutdown_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":183
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_server_shutdown_and_notify(
*/
  Py_INCREF(((PyObject *)__pyx_v_server_shutdown_tag));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":184
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_shutdown_and_notify(
 *           self.c_server, queue.c_completion_queue,
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":185
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:
 *       grpc_server_shutdown_and_notify(             # <<<<<<<<<<<<<<
 *           self.c_server, queue.c_completion_queue,
 *           <cpython.PyObject *>server_shutdown_tag)
*/
        grpc_server_shutdown_and_notify(__pyx_v_self->c_server, __pyx_v_queue->c_completion_queue, ((PyObject *)__pyx_v_server_shutdown_tag));
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":184
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
 *     cpython.Py_INCREF(server_shutdown_tag)
 *     with nogil:             # <<<<<<<<<<<<<<
 *       grpc_server_shutdown_and_notify(
 *           self.c_server, queue.c_completion_queue,
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":180
 *     return result
 * 
 *   cdef _c_shutdown(self, CompletionQueue queue, tag):             # <<<<<<<<<<<<<<
 *     self.is_shutting_down = True
 *     cdef _ServerShutdownTag server_shutdown_tag = _ServerShutdownTag(tag, self)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server._c_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_server_shutdown_tag);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_15shutdown = {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue = 0;
  PyObject *__pyx_v_tag = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_queue,&__pyx_mstate_global->__pyx_n_u_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(23, 189, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 189, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 189, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "shutdown", 0) < 0) __PYX_ERR(23, 189, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("shutdown", 1, 2, 2, i); __PYX_ERR(23, 189, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(23, 189, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(23, 189, __pyx_L3_error)
    }
    __pyx_v_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)values[0]);
    __pyx_v_tag = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("shutdown", 1, 2, 2, __pyx_nargs); __PYX_ERR(23, 189, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_queue), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, 0, "queue", 0))) __PYX_ERR(23, 189, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v_queue, __pyx_v_tag);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_14shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *__pyx_v_queue, PyObject *__pyx_v_tag) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":190
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
*/
  if (unlikely(__pyx_v_queue->is_shutting_down)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":191
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")             # <<<<<<<<<<<<<<
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_3 = __pyx_builtin_ValueError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_queue_must_be_live};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 191, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 191, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":190
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):
 *     if queue.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":192
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
*/
  __pyx_t_5 = (!__pyx_v_self->is_started);
  if (unlikely(__pyx_t_5)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":193
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")             # <<<<<<<<<<<<<<
 *     elif self.is_shutting_down:
 *       return
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_2 = __pyx_builtin_ValueError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_the_server_hasn_t_started_yet};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 193, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":192
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
 *     elif not self.is_started:             # <<<<<<<<<<<<<<
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":194
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       return
 *     elif queue not in self.registered_completion_queues:
*/
  if (__pyx_v_self->is_shutting_down) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":195
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:
 *       return             # <<<<<<<<<<<<<<
 *     elif queue not in self.registered_completion_queues:
 *       raise ValueError("expected registered completion queue")
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":194
 *     elif not self.is_started:
 *       raise ValueError("the server hasn't started yet")
 *     elif self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       return
 *     elif queue not in self.registered_completion_queues:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":196
 *     elif self.is_shutting_down:
 *       return
 *     elif queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("expected registered completion queue")
 *     else:
*/
  __pyx_t_5 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_queue), __pyx_v_self->registered_completion_queues, Py_NE)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(23, 196, __pyx_L1_error)
  if (unlikely(__pyx_t_5)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":197
 *       return
 *     elif queue not in self.registered_completion_queues:
 *       raise ValueError("expected registered completion queue")             # <<<<<<<<<<<<<<
 *     else:
 *       self._c_shutdown(queue, tag)
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_3 = __pyx_builtin_ValueError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_expected_registered_completion_q};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 197, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(23, 197, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":196
 *     elif self.is_shutting_down:
 *       return
 *     elif queue not in self.registered_completion_queues:             # <<<<<<<<<<<<<<
 *       raise ValueError("expected registered completion queue")
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":199
 *       raise ValueError("expected registered completion queue")
 *     else:
 *       self._c_shutdown(queue, tag)             # <<<<<<<<<<<<<<
 * 
 *   cdef notify_shutdown_complete(self):
*/
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_shutdown(__pyx_v_self, __pyx_v_queue, __pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":201
 *       self._c_shutdown(queue, tag)
 * 
 *   cdef notify_shutdown_complete(self):             # <<<<<<<<<<<<<<
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("notify_shutdown_complete", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":204
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
 *     self.is_shutdown = True             # <<<<<<<<<<<<<<
 * 
 *   def cancel_all_calls(self):
*/
  __pyx_v_self->is_shutdown = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":201
 *       self._c_shutdown(queue, tag)
 * 
 *   cdef notify_shutdown_complete(self):             # <<<<<<<<<<<<<<
 *     # called only after our server shutdown tag has emerged from a completion
 *     # queue.
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls = {"cancel_all_calls", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel_all_calls (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("cancel_all_calls", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("cancel_all_calls", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_16cancel_all_calls(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel_all_calls", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":207
 * 
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
*/
  __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":208
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")             # <<<<<<<<<<<<<<
 *     elif self.is_shutdown:
 *       return
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_the_server_must_be_shutting_down};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(23, 208, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":207
 * 
 *   def cancel_all_calls(self):
 *     if not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":209
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *       return
 *     else:
*/
  if (__pyx_v_self->is_shutdown) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":210
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:
 *       return             # <<<<<<<<<<<<<<
 *     else:
 *       with nogil:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":209
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
 *     elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *       return
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":212
 *       return
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_cancel_all_calls(self.c_server)
 * 
*/
  /*else*/ {
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":213
 *     else:
 *       with nogil:
 *         grpc_server_cancel_all_calls(self.c_server)             # <<<<<<<<<<<<<<
 * 
 *   # TODO(https://github.com/grpc/grpc/issues/17515) Determine what, if any,
*/
          grpc_server_cancel_all_calls(__pyx_v_self->c_server);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":212
 *       return
 *     else:
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_cancel_all_calls(self.c_server)
 * 
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L6;
          }
          __pyx_L6:;
        }
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.cancel_all_calls", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_19destroy = {"destroy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("destroy (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("destroy", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_18destroy(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("destroy", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":219
 *   # backup_shutdown_queue.
 *   def destroy(self):
 *     if self.c_server != NULL:             # <<<<<<<<<<<<<<
 *       if not self.is_started:
 *         pass
*/
  __pyx_t_1 = (__pyx_v_self->c_server != NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":220
 *   def destroy(self):
 *     if self.c_server != NULL:
 *       if not self.is_started:             # <<<<<<<<<<<<<<
 *         pass
 *       elif self.is_shutdown:
*/
    __pyx_t_1 = (!__pyx_v_self->is_started);
    if (__pyx_t_1) {
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":222
 *       if not self.is_started:
 *         pass
 *       elif self.is_shutdown:             # <<<<<<<<<<<<<<
 *         pass
 *       elif not self.is_shutting_down:
*/
    if (__pyx_v_self->is_shutdown) {
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":224
 *       elif self.is_shutdown:
 *         pass
 *       elif not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')
*/
    __pyx_t_1 = (!__pyx_v_self->is_shutting_down);
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":225
 *         pass
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:             # <<<<<<<<<<<<<<
 *           raise InternalError('Server shutdown failed: no completion queue.')
 *         else:
*/
      __pyx_t_1 = (((PyObject *)__pyx_v_self->backup_shutdown_queue) == Py_None);
      if (unlikely(__pyx_t_1)) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":226
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')             # <<<<<<<<<<<<<<
 *         else:
 *           # the user didn't call shutdown - use our backup queue
*/
        __pyx_t_3 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 226, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Server_shutdown_failed_no_comple};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_Raise(__pyx_t_2, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __PYX_ERR(23, 226, __pyx_L1_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":225
 *         pass
 *       elif not self.is_shutting_down:
 *         if self.backup_shutdown_queue is None:             # <<<<<<<<<<<<<<
 *           raise InternalError('Server shutdown failed: no completion queue.')
 *         else:
*/
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":229
 *         else:
 *           # the user didn't call shutdown - use our backup queue
 *           self._c_shutdown(self.backup_shutdown_queue, None)             # <<<<<<<<<<<<<<
 *           # and now we wait
 *           while not self.is_shutdown:
*/
      /*else*/ {
        __pyx_t_2 = ((PyObject *)__pyx_v_self->backup_shutdown_queue);
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->__pyx_vtab)->_c_shutdown(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)__pyx_t_2), Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 229, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":231
 *           self._c_shutdown(self.backup_shutdown_queue, None)
 *           # and now we wait
 *           while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *             self.backup_shutdown_queue.poll()
 *       else:
*/
        while (1) {
          __pyx_t_1 = (!__pyx_v_self->is_shutdown);
          if (!__pyx_t_1) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":232
 *           # and now we wait
 *           while not self.is_shutdown:
 *             self.backup_shutdown_queue.poll()             # <<<<<<<<<<<<<<
 *       else:
 *         # We're in the process of shutting down, but have not shutdown; can't do
*/
          __pyx_t_2 = ((PyObject *)__pyx_v_self->backup_shutdown_queue);
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
            __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_poll, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":224
 *       elif self.is_shutdown:
 *         pass
 *       elif not self.is_shutting_down:             # <<<<<<<<<<<<<<
 *         if self.backup_shutdown_queue is None:
 *           raise InternalError('Server shutdown failed: no completion queue.')
*/
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":236
 *         # We're in the process of shutting down, but have not shutdown; can't do
 *         # much but repeatedly release the GIL and wait
 *         while not self.is_shutdown:             # <<<<<<<<<<<<<<
 *           time.sleep(0)
 *       with nogil:
*/
    /*else*/ {
      while (1) {
        __pyx_t_1 = (!__pyx_v_self->is_shutdown);
        if (!__pyx_t_1) break;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":237
 *         # much but repeatedly release the GIL and wait
 *         while not self.is_shutdown:
 *           time.sleep(0)             # <<<<<<<<<<<<<<
 *       with nogil:
 *         grpc_server_destroy(self.c_server)
*/
        __pyx_t_2 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(23, 237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_sleep); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
          assert(__pyx_t_2);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_int_0};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(23, 237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":238
 *         while not self.is_shutdown:
 *           time.sleep(0)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL
*/
    {
        PyThreadState *_save;
        _save = NULL;
        Py_UNBLOCK_THREADS
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":239
 *           time.sleep(0)
 *       with nogil:
 *         grpc_server_destroy(self.c_server)             # <<<<<<<<<<<<<<
 *         self.c_server = NULL
 * 
*/
          grpc_server_destroy(__pyx_v_self->c_server);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":240
 *       with nogil:
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL             # <<<<<<<<<<<<<<
 * 
 *   def __dealloc__(self):
*/
          __pyx_v_self->c_server = NULL;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":238
 *         while not self.is_shutdown:
 *           time.sleep(0)
 *       with nogil:             # <<<<<<<<<<<<<<
 *         grpc_server_destroy(self.c_server)
 *         self.c_server = NULL
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            Py_BLOCK_THREADS
            goto __pyx_L12;
          }
          __pyx_L12:;
        }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":219
 *   # backup_shutdown_queue.
 *   def destroy(self):
 *     if self.c_server != NULL:             # <<<<<<<<<<<<<<
 *       if not self.is_started:
 *         pass
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":242
 *         self.c_server = NULL
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_server == NULL:
 *       grpc_shutdown()
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_6Server_20__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":243
 * 
 *   def __dealloc__(self):
 *     if self.c_server == NULL:             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
*/
  __pyx_t_1 = (__pyx_v_self->c_server == NULL);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":244
 *   def __dealloc__(self):
 *     if self.c_server == NULL:
 *       grpc_shutdown()             # <<<<<<<<<<<<<<
*/
    grpc_shutdown();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":243
 * 
 *   def __dealloc__(self):
 *     if self.c_server == NULL:             # <<<<<<<<<<<<<<
 *       grpc_shutdown()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":242
 *         self.c_server = NULL
 * 
 *   def __dealloc__(self):             # <<<<<<<<<<<<<<
 *     if self.c_server == NULL:
 *       grpc_shutdown()
*/

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_6Server_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.Server.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":18
 * cdef class _Tag:
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

static struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, CYTHON_UNUSED grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":19
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):
 *     raise NotImplementedError()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 19, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(24, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":18
 * cdef class _Tag:
 * 
 *   cdef BaseEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     raise NotImplementedError()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__Tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__Tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_Tag_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._Tag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":24
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 * 
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_user_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 24, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 24, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(24, 24, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(24, 24, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 24, __pyx_L3_error)
    }
    __pyx_v_user_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 24, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self), __pyx_v_user_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, PyObject *__pyx_v_user_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":25
 * 
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):
*/
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":24
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":27
 *     self._user_tag = user_tag
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)
 * 
*/

struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":28
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent); 
  __pyx_t_4 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_4, __pyx_t_5, __pyx_v_self->_user_tag};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 28, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":27
 *     self._user_tag = user_tag
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     return ConnectivityEvent(c_event.type, c_event.success, self._user_tag)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":23
 * cdef class _ConnectivityTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 * 
 *   cdef ConnectivityEvent event(self, grpc_event c_event)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ConnectivityTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConnectivityTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":33
 * cdef class _RequestCallTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self.call = None
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_user_tag,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 33, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 33, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(24, 33, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(24, 33, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 33, __pyx_L3_error)
    }
    __pyx_v_user_tag = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(24, 33, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self), __pyx_v_user_tag);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, PyObject *__pyx_v_user_tag) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":34
 * 
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self.call = None
 *     self.call_details = None
*/
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":35
 *   def __cinit__(self, user_tag):
 *     self._user_tag = user_tag
 *     self.call = None             # <<<<<<<<<<<<<<
 *     self.call_details = None
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":36
 *     self._user_tag = user_tag
 *     self.call = None
 *     self.call_details = None             # <<<<<<<<<<<<<<
 * 
 *   cdef void prepare(self) except *:
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":33
 * cdef class _RequestCallTag(_Tag):
 * 
 *   def __cinit__(self, user_tag):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self.call = None
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":38
 *     self.call_details = None
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     self.call = Call()
 *     self.call_details = CallDetails()
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepare", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":39
 * 
 *   cdef void prepare(self) except *:
 *     self.call = Call()             # <<<<<<<<<<<<<<
 *     self.call_details = CallDetails()
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 39, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call);
  __pyx_v_self->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":40
 *   cdef void prepare(self) except *:
 *     self.call = Call()
 *     self.call_details = CallDetails()             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 40, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->call_details);
  __Pyx_DECREF((PyObject *)__pyx_v_self->call_details);
  __pyx_v_self->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":41
 *     self.call = Call()
 *     self.call_details = CallDetails()
 *     grpc_metadata_array_init(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):
*/
  grpc_metadata_array_init((&__pyx_v_self->c_invocation_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":38
 *     self.call_details = None
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     self.call = Call()
 *     self.call_details = CallDetails()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.prepare", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":43
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
*/

struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  PyObject *__pyx_v_invocation_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":44
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->c_invocation_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invocation_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":45
 *   cdef RequestCallEvent event(self, grpc_event c_event):
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)             # <<<<<<<<<<<<<<
 *     return RequestCallEvent(
 *         c_event.type, c_event.success, self._user_tag, self.call,
*/
  grpc_metadata_array_destroy((&__pyx_v_self->c_invocation_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":46
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(             # <<<<<<<<<<<<<<
 *         c_event.type, c_event.success, self._user_tag, self.call,
 *         self.call_details, invocation_metadata)
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":47
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
 *     return RequestCallEvent(
 *         c_event.type, c_event.success, self._user_tag, self.call,             # <<<<<<<<<<<<<<
 *         self.call_details, invocation_metadata)
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":48
 *     return RequestCallEvent(
 *         c_event.type, c_event.success, self._user_tag, self.call,
 *         self.call_details, invocation_metadata)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_2, __pyx_t_4, __pyx_t_5, __pyx_v_self->_user_tag, ((PyObject *)__pyx_v_self->call), ((PyObject *)__pyx_v_self->call_details), __pyx_v_invocation_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (7-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 46, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":43
 *     grpc_metadata_array_init(&self.c_invocation_metadata)
 * 
 *   cdef RequestCallEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef tuple invocation_metadata = _metadata(&self.c_invocation_metadata)
 *     grpc_metadata_array_destroy(&self.c_invocation_metadata)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invocation_metadata);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":30
 * cdef class _RequestCallTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 *   cdef Call call
 *   cdef CallDetails call_details
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_RequestCallTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._RequestCallTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":53
 * cdef class _BatchOperationTag:
 * 
 *   def __cinit__(self, user_tag, operations, call):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._operations = operations
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_call = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_user_tag,&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_call,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 53, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(24, 53, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(24, 53, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 53, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(24, 53, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(24, 53, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 53, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(24, 53, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(24, 53, __pyx_L3_error)
    }
    __pyx_v_user_tag = values[0];
    __pyx_v_operations = values[1];
    __pyx_v_call = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(24, 53, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self), __pyx_v_user_tag, __pyx_v_operations, __pyx_v_call);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_operations, PyObject *__pyx_v_call) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":54
 * 
 *   def __cinit__(self, user_tag, operations, call):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self._operations = operations
 *     self._retained_call = call
*/
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":55
 *   def __cinit__(self, user_tag, operations, call):
 *     self._user_tag = user_tag
 *     self._operations = operations             # <<<<<<<<<<<<<<
 *     self._retained_call = call
 * 
*/
  __Pyx_INCREF(__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_v_operations);
  __Pyx_GOTREF(__pyx_v_self->_operations);
  __Pyx_DECREF(__pyx_v_self->_operations);
  __pyx_v_self->_operations = __pyx_v_operations;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":56
 *     self._user_tag = user_tag
 *     self._operations = operations
 *     self._retained_call = call             # <<<<<<<<<<<<<<
 * 
 *   cdef void prepare(self) except *:
*/
  __Pyx_INCREF(__pyx_v_call);
  __Pyx_GIVEREF(__pyx_v_call);
  __Pyx_GOTREF(__pyx_v_self->_retained_call);
  __Pyx_DECREF(__pyx_v_self->_retained_call);
  __pyx_v_self->_retained_call = __pyx_v_call;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":53
 * cdef class _BatchOperationTag:
 * 
 *   def __cinit__(self, user_tag, operations, call):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._operations = operations
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":58
 *     self._retained_call = call
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_operation = 0;
  PyObject *__pyx_v_index = NULL;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  grpc_op __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepare", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":60
 *   cdef void prepare(self) except *:
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)             # <<<<<<<<<<<<<<
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
*/
  __pyx_t_2 = (__pyx_v_self->_operations == Py_None);
  if (__pyx_t_2) {
    __pyx_t_1 = 0;
  } else {
    __pyx_t_3 = __pyx_v_self->_operations;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(24, 60, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __pyx_t_4;
  }
  __pyx_v_self->c_nops = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":61
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
*/
  __pyx_t_2 = (0 < __pyx_v_self->c_nops);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":62
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)             # <<<<<<<<<<<<<<
 *       for index, operation in enumerate(self._operations):
 *         operation.c()
*/
    __pyx_v_self->c_ops = ((grpc_op *)gpr_malloc(((sizeof(grpc_op)) * __pyx_v_self->c_nops)));

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":63
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):             # <<<<<<<<<<<<<<
 *         operation.c()
 *         self.c_ops[index] = operation.c_op
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
    __pyx_t_3 = __pyx_mstate_global->__pyx_int_0;
    if (likely(PyList_CheckExact(__pyx_v_self->_operations)) || PyTuple_CheckExact(__pyx_v_self->_operations)) {
      __pyx_t_5 = __pyx_v_self->_operations; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_self->_operations); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 63, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
            #endif
            if (__pyx_t_4 >= __pyx_temp) break;
          }
          __pyx_t_7 = __Pyx_PyList_GetItemRef(__pyx_t_5, __pyx_t_4);
          ++__pyx_t_4;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 63, __pyx_L1_error)
            #endif
            if (__pyx_t_4 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4));
          #else
          __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_4);
          #endif
          ++__pyx_t_4;
        }
        if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 63, __pyx_L1_error)
      } else {
        __pyx_t_7 = __pyx_t_6(__pyx_t_5);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(24, 63, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_7);
      if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation))))) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operation, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_7));
      __pyx_t_7 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_3);
      __pyx_t_7 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 63, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_7;
      __pyx_t_7 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":64
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
 *         operation.c()             # <<<<<<<<<<<<<<
 *         self.c_ops[index] = operation.c_op
 * 
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_operation->__pyx_vtab)->c(__pyx_v_operation); if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 64, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":65
 *       for index, operation in enumerate(self._operations):
 *         operation.c()
 *         self.c_ops[index] = operation.c_op             # <<<<<<<<<<<<<<
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
*/
      __pyx_t_8 = __pyx_v_operation->c_op;
      __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(24, 65, __pyx_L1_error)
      (__pyx_v_self->c_ops[__pyx_t_9]) = __pyx_t_8;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":63
 *     if 0 < self.c_nops:
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):             # <<<<<<<<<<<<<<
 *         operation.c()
 *         self.c_ops[index] = operation.c_op
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":61
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       self.c_ops = <grpc_op *>gpr_malloc(sizeof(grpc_op) * self.c_nops)
 *       for index, operation in enumerate(self._operations):
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":58
 *     self._retained_call = call
 * 
 *   cdef void prepare(self) except *:             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     self.c_nops = 0 if self._operations is None else len(self._operations)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.prepare", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_operation);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":67
 *         self.c_ops[index] = operation.c_op
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     if 0 < self.c_nops:
*/

struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_operation = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":69
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
 *     cdef Operation operation
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       for operation in self._operations:
 *         operation.un_c()
*/
  __pyx_t_1 = (0 < __pyx_v_self->c_nops);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":70
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 *       for operation in self._operations:             # <<<<<<<<<<<<<<
 *         operation.un_c()
 *       gpr_free(self.c_ops)
*/
    if (likely(PyList_CheckExact(__pyx_v_self->_operations)) || PyTuple_CheckExact(__pyx_v_self->_operations)) {
      __pyx_t_2 = __pyx_v_self->_operations; __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_self->_operations); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 70, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
            #endif
            if (__pyx_t_3 >= __pyx_temp) break;
          }
          __pyx_t_5 = __Pyx_PyList_GetItemRef(__pyx_t_2, __pyx_t_3);
          ++__pyx_t_3;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(24, 70, __pyx_L1_error)
            #endif
            if (__pyx_t_3 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3));
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3);
          #endif
          ++__pyx_t_3;
        }
        if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 70, __pyx_L1_error)
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(24, 70, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_5);
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation))))) __PYX_ERR(24, 70, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_operation, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":71
 *     if 0 < self.c_nops:
 *       for operation in self._operations:
 *         operation.un_c()             # <<<<<<<<<<<<<<
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_operation->__pyx_vtab)->un_c(__pyx_v_operation); if (unlikely(PyErr_Occurred())) __PYX_ERR(24, 71, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":70
 *     cdef Operation operation
 *     if 0 < self.c_nops:
 *       for operation in self._operations:             # <<<<<<<<<<<<<<
 *         operation.un_c()
 *       gpr_free(self.c_ops)
*/
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":72
 *       for operation in self._operations:
 *         operation.un_c()
 *       gpr_free(self.c_ops)             # <<<<<<<<<<<<<<
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, self._operations)
*/
    gpr_free(__pyx_v_self->c_ops);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":73
 *         operation.un_c()
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_t_5 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
    __pyx_t_6 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent); 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":74
 *       gpr_free(self.c_ops)
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, self._operations)             # <<<<<<<<<<<<<<
 *     else:
 *       return BatchOperationEvent(
*/
    __pyx_t_7 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_7, __pyx_t_8, __pyx_v_self->_user_tag, __pyx_v_self->_operations};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 73, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
    }
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":69
 *   cdef BatchOperationEvent event(self, grpc_event c_event):
 *     cdef Operation operation
 *     if 0 < self.c_nops:             # <<<<<<<<<<<<<<
 *       for operation in self._operations:
 *         operation.un_c()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":76
 *           c_event.type, c_event.success, self._user_tag, self._operations)
 *     else:
 *       return BatchOperationEvent(             # <<<<<<<<<<<<<<
 *           c_event.type, c_event.success, self._user_tag, ())
 * 
*/
  /*else*/ {
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_t_6 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent);
    __pyx_t_8 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent); 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":77
 *     else:
 *       return BatchOperationEvent(
 *           c_event.type, c_event.success, self._user_tag, ())             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_7 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_t_7, __pyx_t_5, __pyx_v_self->_user_tag, __pyx_mstate_global->__pyx_empty_tuple};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 76, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
    }
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":67
 *         self.c_ops[index] = operation.c_op
 * 
 *   cdef BatchOperationEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     cdef Operation operation
 *     if 0 < self.c_nops:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_operation);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":42
 * 
 *   cdef object _user_tag
 *   cdef readonly object _operations             # <<<<<<<<<<<<<<
 *   cdef readonly object _retained_call
 *   cdef grpc_op *c_ops
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_operations);
  __pyx_r = __pyx_v_self->_operations;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":43
 *   cdef object _user_tag
 *   cdef readonly object _operations
 *   cdef readonly object _retained_call             # <<<<<<<<<<<<<<
 *   cdef grpc_op *c_ops
 *   cdef size_t c_nops
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_retained_call);
  __pyx_r = __pyx_v_self->_retained_call;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_BatchOperationTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BatchOperationTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":82
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_user_tag = 0;
  PyObject *__pyx_v_shutting_down_server = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_user_tag,&__pyx_mstate_global->__pyx_n_u_shutting_down_server,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(24, 82, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(24, 82, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 82, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(24, 82, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(24, 82, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(24, 82, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(24, 82, __pyx_L3_error)
    }
    __pyx_v_user_tag = values[0];
    __pyx_v_shutting_down_server = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(24, 82, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self), __pyx_v_user_tag, __pyx_v_shutting_down_server);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, PyObject *__pyx_v_user_tag, PyObject *__pyx_v_shutting_down_server) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":83
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):
 *     self._user_tag = user_tag             # <<<<<<<<<<<<<<
 *     self._shutting_down_server = shutting_down_server
 * 
*/
  __Pyx_INCREF(__pyx_v_user_tag);
  __Pyx_GIVEREF(__pyx_v_user_tag);
  __Pyx_GOTREF(__pyx_v_self->_user_tag);
  __Pyx_DECREF(__pyx_v_self->_user_tag);
  __pyx_v_self->_user_tag = __pyx_v_user_tag;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":84
 *   def __cinit__(self, user_tag, shutting_down_server):
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server             # <<<<<<<<<<<<<<
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
*/
  __pyx_t_1 = __pyx_v_shutting_down_server;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server))))) __PYX_ERR(24, 84, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __pyx_v_self->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":82
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   def __cinit__(self, user_tag, shutting_down_server):             # <<<<<<<<<<<<<<
 *     self._user_tag = user_tag
 *     self._shutting_down_server = shutting_down_server
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":86
 *     self._shutting_down_server = shutting_down_server
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
*/

struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":87
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
 *     self._shutting_down_server.notify_shutdown_complete()             # <<<<<<<<<<<<<<
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server *)__pyx_v_self->_shutting_down_server->__pyx_vtab)->notify_shutdown_complete(__pyx_v_self->_shutting_down_server); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":88
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent); 
  __pyx_t_4 = __Pyx_PyLong_From_grpc_completion_type(__pyx_v_c_event.type); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_c_event.success); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_4, __pyx_t_5, __pyx_v_self->_user_tag};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 88, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pyx.pxi":86
 *     self._shutting_down_server = shutting_down_server
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event):             # <<<<<<<<<<<<<<
 *     self._shutting_down_server.notify_shutdown_complete()
 *     return ServerShutdownEvent(c_event.type, c_event.success, self._user_tag)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, grpc_event __pyx_v_c_event) {
  return __pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event(__pyx_v_self, __pyx_v_c_event);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":53
 * cdef class _ServerShutdownTag(_Tag):
 * 
 *   cdef readonly object _user_tag             # <<<<<<<<<<<<<<
 *   # This allows CompletionQueue to notify the Python Server object that the
 *   # underlying GRPC core server has shutdown
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_user_tag);
  __pyx_r = __pyx_v_self->_user_tag;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/tag.pxd.pxi":56
 *   # This allows CompletionQueue to notify the Python Server object that the
 *   # underlying GRPC core server has shutdown
 *   cdef readonly Server _shutting_down_server             # <<<<<<<<<<<<<<
 * 
 *   cdef ServerShutdownEvent event(self, grpc_event c_event)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_shutting_down_server);
  __pyx_r = ((PyObject *)__pyx_v_self->_shutting_down_server);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServerShutdownTag.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":16
 * 
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:             # <<<<<<<<<<<<<<
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
*/

static gpr_timespec __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(PyObject *__pyx_v_time) {
  gpr_timespec __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":17
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:             # <<<<<<<<<<<<<<
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
*/
  __pyx_t_1 = (__pyx_v_time == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":18
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 *   else:
 *     return gpr_time_from_nanos(
*/
    __pyx_r = gpr_inf_future(GPR_CLOCK_REALTIME);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":17
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:
 *   if time is None:             # <<<<<<<<<<<<<<
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":20
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     return gpr_time_from_nanos(             # <<<<<<<<<<<<<<
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),
 *       GPR_CLOCK_REALTIME,
*/
  /*else*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":21
 *   else:
 *     return gpr_time_from_nanos(
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),             # <<<<<<<<<<<<<<
 *       GPR_CLOCK_REALTIME,
 *     )
*/
    __pyx_t_2 = __Pyx_PyFloat_AsDouble(__pyx_v_time); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(25, 21, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":20
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
 *   else:
 *     return gpr_time_from_nanos(             # <<<<<<<<<<<<<<
 *       <int64_t>(<double>time * GPR_NS_PER_SEC),
 *       GPR_CLOCK_REALTIME,
*/
    __pyx_r = gpr_time_from_nanos(((__pyx_t_4grpc_7_cython_6cygrpc_int64_t)(((double)__pyx_t_2) * GPR_NS_PER_SEC)), GPR_CLOCK_REALTIME);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":16
 * 
 * 
 * cdef gpr_timespec _timespec_from_time(object time) except *:             # <<<<<<<<<<<<<<
 *   if time is None:
 *     return gpr_inf_future(GPR_CLOCK_REALTIME)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._timespec_from_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":26
 * 
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:             # <<<<<<<<<<<<<<
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
*/

static double __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(gpr_timespec __pyx_v_timespec) {
  gpr_timespec __pyx_v_real_timespec;
  double __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":27
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(             # <<<<<<<<<<<<<<
 *       timespec, GPR_CLOCK_REALTIME)
 *   return gpr_timespec_to_micros(real_timespec) / GPR_US_PER_SEC
*/
  __pyx_v_real_timespec = gpr_convert_clock_type(__pyx_v_timespec, GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":29
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
 *   return gpr_timespec_to_micros(real_timespec) / GPR_US_PER_SEC             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = gpr_timespec_to_micros(__pyx_v_real_timespec);
  if (unlikely(GPR_US_PER_SEC == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(25, 29, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_1 / ((double)GPR_US_PER_SEC));
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/time.pyx.pxi":26
 * 
 * 
 * cdef double _time_from_timespec(gpr_timespec timespec) except *:             # <<<<<<<<<<<<<<
 *   cdef gpr_timespec real_timespec = gpr_convert_clock_type(
 *       timespec, GPR_CLOCK_REALTIME)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._time_from_timespec", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":16
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   return pointer
 * 
*/

static void *__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer(void *__pyx_v_pointer) {
  void *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":17
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:
 *   return pointer             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_pointer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":16
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void* _copy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   return pointer
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":21
 * 
 * # TODO(https://github.com/grpc/grpc/issues/15662): Reform this.
 * cdef void _destroy_pointer(void* pointer) noexcept:             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer(CYTHON_UNUSED void *__pyx_v_pointer) {

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":25
 * 
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:             # <<<<<<<<<<<<<<
 *   if first_pointer < second_pointer:
 *     return -1
*/

static int __pyx_f_4grpc_7_cython_6cygrpc__compare_pointer(void *__pyx_v_first_pointer, void *__pyx_v_second_pointer) {
  int __pyx_r;
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":26
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:             # <<<<<<<<<<<<<<
 *     return -1
 *   elif first_pointer > second_pointer:
*/
  __pyx_t_1 = (__pyx_v_first_pointer < __pyx_v_second_pointer);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":27
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:
 *     return -1             # <<<<<<<<<<<<<<
 *   elif first_pointer > second_pointer:
 *     return 1
*/
    __pyx_r = -1;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":26
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:
 *   if first_pointer < second_pointer:             # <<<<<<<<<<<<<<
 *     return -1
 *   elif first_pointer > second_pointer:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":28
 *   if first_pointer < second_pointer:
 *     return -1
 *   elif first_pointer > second_pointer:             # <<<<<<<<<<<<<<
 *     return 1
 *   else:
*/
  __pyx_t_1 = (__pyx_v_first_pointer > __pyx_v_second_pointer);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":29
 *     return -1
 *   elif first_pointer > second_pointer:
 *     return 1             # <<<<<<<<<<<<<<
 *   else:
 *     return 0
*/
    __pyx_r = 1;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":28
 *   if first_pointer < second_pointer:
 *     return -1
 *   elif first_pointer > second_pointer:             # <<<<<<<<<<<<<<
 *     return 1
 *   else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":31
 *     return 1
 *   else:
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_arg_pointer_vtable default_vtable
*/
  /*else*/ {
    __pyx_r = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":25
 * 
 * 
 * cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept:             # <<<<<<<<<<<<<<
 *   if first_pointer < second_pointer:
 *     return -1
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":16
 * 
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):             # <<<<<<<<<<<<<<
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call(CYTHON_UNUSED int __pyx_v_op, CYTHON_UNUSED grpc_call *__pyx_v_call) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_custom_op_on_c_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":17
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):
 *   raise NotImplementedError("No custom hooks are implemented")             # <<<<<<<<<<<<<<
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_builtin_NotImplementedError);
  __pyx_t_3 = __pyx_builtin_NotImplementedError; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_No_custom_hooks_are_implemented};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 17, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(26, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":16
 * 
 * 
 * cdef object _custom_op_on_c_call(int op, grpc_call *call):             # <<<<<<<<<<<<<<
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._custom_op_on_c_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event = {"install_context_from_request_call_event", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_event,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(26, 19, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 19, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "install_context_from_request_call_event", 0) < 0) __PYX_ERR(26, 19, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event", 1, 1, 1, i); __PYX_ERR(26, 19, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 19, __pyx_L3_error)
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event", 1, 1, 1, __pyx_nargs); __PYX_ERR(26, 19, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent, 1, "event", 0))) __PYX_ERR(26, 19, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_56install_context_from_request_call_event(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("install_context_from_request_call_event", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":20
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):
 *   maybe_save_server_trace_context(event)             # <<<<<<<<<<<<<<
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_maybe_save_server_trace_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(26, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_event)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 20, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":22
 *   maybe_save_server_trace_context(event)
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_59install_context_from_request_call_event_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_59install_context_from_request_call_event_aio = {"install_context_from_request_call_event_aio", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_59install_context_from_request_call_event_aio, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_59install_context_from_request_call_event_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event_aio (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_event,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(26, 22, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 22, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "install_context_from_request_call_event_aio", 0) < 0) __PYX_ERR(26, 22, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event_aio", 1, 1, 1, i); __PYX_ERR(26, 22, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 22, __pyx_L3_error)
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("install_context_from_request_call_event_aio", 1, 1, 1, __pyx_nargs); __PYX_ERR(26, 22, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.install_context_from_request_call_event_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "event", 0))) __PYX_ERR(26, 22, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_58install_context_from_request_call_event_aio(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_58install_context_from_request_call_event_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_event) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("install_context_from_request_call_event_aio", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":25
 *   pass
 * 
 * def uninstall_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_61uninstall_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_61uninstall_context = {"uninstall_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_61uninstall_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_61uninstall_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("uninstall_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_60uninstall_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_60uninstall_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("uninstall_context", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":28
 *   pass
 * 
 * def build_census_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_63build_census_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_63build_census_context = {"build_census_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_63build_census_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_63build_census_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_census_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_62build_census_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_62build_census_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_census_context", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext___reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CensusContext); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CensusContext); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_13CensusContext_2__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CensusContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":34
 *   pass
 * 
 * def set_census_context_on_call(_CallState call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_65set_census_context_on_call(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_65set_census_context_on_call = {"set_census_context_on_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_65set_census_context_on_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_65set_census_context_on_call(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state = 0;
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_census_context_on_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_state,&__pyx_mstate_global->__pyx_n_u_census_ctx,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(26, 34, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(26, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_census_context_on_call", 0) < 0) __PYX_ERR(26, 34, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_census_context_on_call", 1, 2, 2, i); __PYX_ERR(26, 34, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 34, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(26, 34, __pyx_L3_error)
    }
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)values[0]);
    __pyx_v_census_ctx = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_census_context_on_call", 1, 2, 2, __pyx_nargs); __PYX_ERR(26, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_census_context_on_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState, 1, "call_state", 0))) __PYX_ERR(26, 34, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_census_ctx), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, 1, "census_ctx", 0))) __PYX_ERR(26, 34, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_64set_census_context_on_call(__pyx_self, __pyx_v_call_state, __pyx_v_census_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_64set_census_context_on_call(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_census_context_on_call", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":37
 *   pass
 * 
 * def set_instrumentation_context_on_call_aio(GrpcCallWrapper call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_67set_instrumentation_context_on_call_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_67set_instrumentation_context_on_call_aio = {"set_instrumentation_context_on_call_aio", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_67set_instrumentation_context_on_call_aio, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_67set_instrumentation_context_on_call_aio(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state = 0;
  CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_instrumentation_context_on_call_aio (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_call_state,&__pyx_mstate_global->__pyx_n_u_census_ctx,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(26, 37, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(26, 37, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 37, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_instrumentation_context_on_call_aio", 0) < 0) __PYX_ERR(26, 37, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_instrumentation_context_on_call_aio", 1, 2, 2, i); __PYX_ERR(26, 37, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(26, 37, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(26, 37, __pyx_L3_error)
    }
    __pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_census_ctx = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_instrumentation_context_on_call_aio", 1, 2, 2, __pyx_nargs); __PYX_ERR(26, 37, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.set_instrumentation_context_on_call_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "call_state", 0))) __PYX_ERR(26, 37, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_census_ctx), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, 1, "census_ctx", 0))) __PYX_ERR(26, 37, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_66set_instrumentation_context_on_call_aio(__pyx_self, __pyx_v_call_state, __pyx_v_census_ctx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_66set_instrumentation_context_on_call_aio(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_call_state, CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v_census_ctx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_instrumentation_context_on_call_aio", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_69get_deadline_from_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_69get_deadline_from_context = {"get_deadline_from_context", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_69get_deadline_from_context, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_69get_deadline_from_context(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_deadline_from_context (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_68get_deadline_from_context(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_68get_deadline_from_context(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_deadline_from_context", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":41
 * 
 * def get_deadline_from_context():
 *   return None             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_71get_server_call_tracer_factory_address(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_71get_server_call_tracer_factory_address = {"get_server_call_tracer_factory_address", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_71get_server_call_tracer_factory_address, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_71get_server_call_tracer_factory_address(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_observability_plugin = 0;
  int __pyx_v_xds;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_server_call_tracer_factory_address (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_observability_plugin,&__pyx_mstate_global->__pyx_n_u_xds,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(27, 26, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(27, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(27, 26, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_server_call_tracer_factory_address", 0) < 0) __PYX_ERR(27, 26, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_server_call_tracer_factory_address", 1, 2, 2, i); __PYX_ERR(27, 26, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(27, 26, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(27, 26, __pyx_L3_error)
    }
    __pyx_v_observability_plugin = values[0];
    __pyx_v_xds = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_xds == (int)-1) && PyErr_Occurred())) __PYX_ERR(27, 26, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_server_call_tracer_factory_address", 1, 2, 2, __pyx_nargs); __PYX_ERR(27, 26, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_server_call_tracer_factory_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_70get_server_call_tracer_factory_address(__pyx_self, __pyx_v_observability_plugin, __pyx_v_xds);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_70get_server_call_tracer_factory_address(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_observability_plugin, int __pyx_v_xds) {
  PyObject *__pyx_v_capsule = NULL;
  void *__pyx_v_capsule_ptr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  void *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_server_call_tracer_factory_address", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":27
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)             # <<<<<<<<<<<<<<
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
*/
  __pyx_t_2 = __pyx_v_observability_plugin;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_xds); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 27, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_xds, __pyx_t_3, __pyx_t_5, __pyx_callargs+1, 0) < 0) __PYX_ERR(27, 27, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_create_server_call_tracer_factor, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 27, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_capsule = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":28
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:             # <<<<<<<<<<<<<<
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_capsule); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(27, 28, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":29
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)             # <<<<<<<<<<<<<<
 *     return int(<uintptr_t>capsule_ptr)
 *   else:
*/
    __pyx_t_7 = PyCapsule_GetPointer(__pyx_v_capsule, __pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY); if (unlikely(__pyx_t_7 == ((void *)0) && PyErr_Occurred())) __PYX_ERR(27, 29, __pyx_L1_error)
    __pyx_v_capsule_ptr = __pyx_t_7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":30
 *   if capsule:
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)             # <<<<<<<<<<<<<<
 *   else:
 *     return None
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = NULL;
    __Pyx_INCREF((PyObject *)(&PyLong_Type));
    __pyx_t_3 = ((PyObject *)(&PyLong_Type)); 
    __pyx_t_2 = __Pyx_PyLong_FromSize_t(((__pyx_t_4grpc_7_cython_6cygrpc_uintptr_t)__pyx_v_capsule_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 30, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":28
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:             # <<<<<<<<<<<<<<
 *     capsule_ptr = cpython.PyCapsule_GetPointer(capsule, SERVER_CALL_TRACER_FACTORY)
 *     return int(<uintptr_t>capsule_ptr)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":32
 *     return int(<uintptr_t>capsule_ptr)
 *   else:
 *     return None             # <<<<<<<<<<<<<<
 * 
 * def clear_server_call_tracer_factory() -> None:
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_server_call_tracer_factory_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_capsule);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_73clear_server_call_tracer_factory(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_73clear_server_call_tracer_factory = {"clear_server_call_tracer_factory", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_73clear_server_call_tracer_factory, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_73clear_server_call_tracer_factory(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("clear_server_call_tracer_factory (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_72clear_server_call_tracer_factory(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_72clear_server_call_tracer_factory(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clear_server_call_tracer_factory", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":35
 * 
 * def clear_server_call_tracer_factory() -> None:
 *   _register_server_call_tracer_factory(NULL)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 35, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.clear_server_call_tracer_factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_75maybe_save_server_trace_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_75maybe_save_server_trace_context = {"maybe_save_server_trace_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_75maybe_save_server_trace_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_75maybe_save_server_trace_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("maybe_save_server_trace_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_event,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(27, 38, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(27, 38, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "maybe_save_server_trace_context", 0) < 0) __PYX_ERR(27, 38, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("maybe_save_server_trace_context", 1, 1, 1, i); __PYX_ERR(27, 38, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(27, 38, __pyx_L3_error)
    }
    __pyx_v_event = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("maybe_save_server_trace_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(27, 38, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent, 1, "event", 0))) __PYX_ERR(27, 38, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_74maybe_save_server_trace_context(__pyx_self, __pyx_v_event);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_74maybe_save_server_trace_context(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *__pyx_v_event) {
  grpc_core::ServerCallTracer *__pyx_v_server_call_tracer;
  PyObject *__pyx_v_plugin = NULL;
  PyObject *__pyx_v_trace_id = NULL;
  PyObject *__pyx_v_span_id = NULL;
  int __pyx_v_is_sampled;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  void *__pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("maybe_save_server_trace_context", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":40
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *     if not (plugin and plugin.tracing_enabled):
 *       return
*/
  /*with:*/ {
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_plugin); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(27, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = NULL;
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 40, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 40, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_3 = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {
          __pyx_v_plugin = __pyx_t_3;
          __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":41
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):             # <<<<<<<<<<<<<<
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
*/
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_plugin); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(27, 41, __pyx_L7_error)
          if (__pyx_t_11) {
          } else {
            __pyx_t_10 = __pyx_t_11;
            goto __pyx_L14_bool_binop_done;
          }
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_mstate_global->__pyx_n_u_tracing_enabled); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 41, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(27, 41, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_10 = __pyx_t_11;
          __pyx_L14_bool_binop_done:;
          __pyx_t_11 = (!__pyx_t_10);
          if (__pyx_t_11) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":42
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):
 *       return             # <<<<<<<<<<<<<<
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 *     # TraceId and SpanId is hex string, need to convert to str
*/
            __Pyx_XDECREF(__pyx_r);
            __pyx_r = Py_None; __Pyx_INCREF(Py_None);
            goto __pyx_L11_try_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":41
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
 *     if not (plugin and plugin.tracing_enabled):             # <<<<<<<<<<<<<<
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":43
 *     if not (plugin and plugin.tracing_enabled):
 *       return
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))             # <<<<<<<<<<<<<<
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
*/
          __pyx_t_12 = __pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(__pyx_v_event->call->c_call); if (unlikely(__pyx_t_12 == ((void *)0) && PyErr_Occurred())) __PYX_ERR(27, 43, __pyx_L7_error)
          __pyx_v_server_call_tracer = static_cast<grpc_core::ServerCallTracer *>(__pyx_t_12);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":45
 *     server_call_tracer = static_cast['ServerCallTracer*'](_get_call_tracer(event.call.c_call))
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))             # <<<<<<<<<<<<<<
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()
*/
          __pyx_t_1 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_codecs); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_decode); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_server_call_tracer->TraceId()); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
            assert(__pyx_t_1);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_hex_codec};
            __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 45, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
          }
          if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(27, 45, __pyx_L7_error)
          __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 45, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_v_trace_id = ((PyObject*)__pyx_t_2);
          __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":46
 *     # TraceId and SpanId is hex string, need to convert to str
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))             # <<<<<<<<<<<<<<
 *     is_sampled = server_call_tracer.IsSampled()
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)
*/
          __pyx_t_3 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_codecs); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_decode); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_server_call_tracer->SpanId()); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
            assert(__pyx_t_3);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
            __pyx_t_5 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_hex_codec};
            __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 46, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
          }
          if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(27, 46, __pyx_L7_error)
          __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 46, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_span_id = ((PyObject*)__pyx_t_1);
          __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":47
 *     trace_id = _decode(codecs.decode(server_call_tracer.TraceId(), 'hex_codec'))
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()             # <<<<<<<<<<<<<<
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)
 * 
*/
          __pyx_v_is_sampled = __pyx_v_server_call_tracer->IsSampled();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":48
 *     span_id = _decode(codecs.decode(server_call_tracer.SpanId(), 'hex_codec'))
 *     is_sampled = server_call_tracer.IsSampled()
 *     plugin.save_trace_context(trace_id, span_id, is_sampled)             # <<<<<<<<<<<<<<
 * 
 * 
*/
          __pyx_t_2 = __pyx_v_plugin;
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_sampled); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 48, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = 0;
          {
            PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_trace_id, __pyx_v_span_id, __pyx_t_4};
            __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_save_trace_context, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 48, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":40
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *     if not (plugin and plugin.tracing_enabled):
 *       return
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_2) < 0) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(27, 40, __pyx_L9_except_error)
          __pyx_t_10 = (!__pyx_t_11);
          if (unlikely(__pyx_t_10)) {
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_2);
            __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_4, __pyx_t_2);
            __pyx_t_1 = 0;  __pyx_t_4 = 0;  __pyx_t_2 = 0; 
            __PYX_ERR(27, 40, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_6) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(27, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_6) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L19;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L1_error;
    __pyx_L19:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.maybe_save_server_trace_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_plugin);
  __Pyx_XDECREF(__pyx_v_trace_id);
  __Pyx_XDECREF(__pyx_v_span_id);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":51
 * 
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__set_call_tracer(grpc_call *__pyx_v_call, void *__pyx_v_capsule_ptr) {
  grpc_core::ClientCallTracer *__pyx_v_call_tracer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":52
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr             # <<<<<<<<<<<<<<
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
 * 
*/
  __pyx_v_call_tracer = ((grpc_core::ClientCallTracer *)__pyx_v_capsule_ptr);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":53
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_call_tracer_set_and_manage(__pyx_v_call, __pyx_v_call_tracer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":51
 * 
 * 
 * cdef void _set_call_tracer(grpc_call* call, void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ClientCallTracer* call_tracer = <ClientCallTracer*>capsule_ptr
 *   grpc_call_tracer_set_and_manage(call, call_tracer)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":56
 * 
 * 
 * cdef void* _get_call_tracer(grpc_call* call):             # <<<<<<<<<<<<<<
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer
*/

static void *__pyx_f_4grpc_7_cython_6cygrpc__get_call_tracer(grpc_call *__pyx_v_call) {
  void *__pyx_v_call_tracer;
  void *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":57
 * 
 * cdef void* _get_call_tracer(grpc_call* call):
 *   cdef void* call_tracer = grpc_call_tracer_get(call)             # <<<<<<<<<<<<<<
 *   return call_tracer
 * 
*/
  __pyx_v_call_tracer = grpc_call_tracer_get(__pyx_v_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":58
 * cdef void* _get_call_tracer(grpc_call* call):
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_call_tracer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":56
 * 
 * 
 * cdef void* _get_call_tracer(grpc_call* call):             # <<<<<<<<<<<<<<
 *   cdef void* call_tracer = grpc_call_tracer_get(call)
 *   return call_tracer
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":61
 * 
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__register_server_call_tracer_factory(void *__pyx_v_capsule_ptr) {
  grpc_core::ServerCallTracerFactory *__pyx_v_call_tracer_factory;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":62
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr             # <<<<<<<<<<<<<<
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
*/
  __pyx_v_call_tracer_factory = ((grpc_core::ServerCallTracerFactory *)__pyx_v_capsule_ptr);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":63
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)             # <<<<<<<<<<<<<<
*/
  grpc_core::ServerCallTracerFactory::RegisterGlobal(__pyx_v_call_tracer_factory);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":61
 * 
 * 
 * cdef void _register_server_call_tracer_factory(void* capsule_ptr):             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracerFactory* call_tracer_factory = <ServerCallTracerFactory*>capsule_ptr
 *   ServerCallTracerFactory.RegisterGlobal(call_tracer_factory)
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":38
 * 
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):             # <<<<<<<<<<<<<<
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue(PyObject *__pyx_v_cb, PyObject *__pyx_v_args) {
  PyObject *__pyx_v_to_call = 0;
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_submit_to_greenlet_queue", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":39
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):
 *   cdef tuple to_call = (cb,) + args             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_cb);
  __Pyx_GIVEREF(__pyx_v_cb);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_cb) != (0)) __PYX_ERR(28, 39, __pyx_L1_error);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_to_call = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":41
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)             # <<<<<<<<<<<<<<
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
*/
  Py_INCREF(__pyx_v_to_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":42
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":43
 *   Py_INCREF(to_call)
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk
*/
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":44
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))             # <<<<<<<<<<<<<<
 *     del lk
 *     g_greenlets_cv.notify_all()
*/
        __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.push(((void *)__pyx_v_to_call));

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":45
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk             # <<<<<<<<<<<<<<
 *     g_greenlets_cv.notify_all()
 * 
*/
        delete __pyx_v_lk;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":46
 *     g_greenlets_to_run.push(<void*>(to_call))
 *     del lk
 *     g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":42
 *   cdef unique_lock[mutex]* lk
 *   Py_INCREF(to_call)
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_greenlets_to_run.push(<void*>(to_call))
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":38
 * 
 * 
 * cdef _submit_to_greenlet_queue(object cb, tuple args):             # <<<<<<<<<<<<<<
 *   cdef tuple to_call = (cb,) + args
 *   cdef unique_lock[mutex]* lk
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._submit_to_greenlet_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_v_old_channel_count;
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_increment_channel_count", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":52
 *   global g_channel_count
 *   cdef int old_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":53
 *   cdef int old_channel_count
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1
*/
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":54
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count             # <<<<<<<<<<<<<<
 *     g_channel_count += 1
 *     del lk
*/
        __pyx_v_old_channel_count = __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":55
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1             # <<<<<<<<<<<<<<
 *     del lk
 *   if old_channel_count == 0:
*/
        __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count + 1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":56
 *     old_channel_count = g_channel_count
 *     g_channel_count += 1
 *     del lk             # <<<<<<<<<<<<<<
 *   if old_channel_count == 0:
 *     run_spawn_greenlets()
*/
        delete __pyx_v_lk;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":52
 *   global g_channel_count
 *   cdef int old_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     old_channel_count = g_channel_count
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":57
 *     g_channel_count += 1
 *     del lk
 *   if old_channel_count == 0:             # <<<<<<<<<<<<<<
 *     run_spawn_greenlets()
 * 
*/
  __pyx_t_1 = (__pyx_v_old_channel_count == 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":58
 *     del lk
 *   if old_channel_count == 0:
 *     run_spawn_greenlets()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_run_spawn_greenlets); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":57
 *     g_channel_count += 1
 *     del lk
 *   if old_channel_count == 0:             # <<<<<<<<<<<<<<
 *     run_spawn_greenlets()
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_increment_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count = {"gevent_increment_channel_count", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gevent_increment_channel_count (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_76gevent_increment_channel_count(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_76gevent_increment_channel_count(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_increment_channel_count", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count(1); if (unlikely(PyErr_Occurred())) __PYX_ERR(28, 49, __pyx_L1_error)
  __pyx_t_1 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_increment_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static void __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  int __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":63
 * cpdef void gevent_decrement_channel_count():
 *   global g_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":64
 *   global g_channel_count
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_channel_count -= 1
 *     if g_channel_count == 0:
*/
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":65
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1             # <<<<<<<<<<<<<<
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()
*/
        __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count - 1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":66
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 *     if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.notify_all()
 *     del lk
*/
        __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count == 0);
        if (__pyx_t_1) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":67
 *     g_channel_count -= 1
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 *     del lk
 * 
*/
          __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":66
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
 *     if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.notify_all()
 *     del lk
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":68
 *     if g_channel_count == 0:
 *       g_greenlets_cv.notify_all()
 *     del lk             # <<<<<<<<<<<<<<
 * 
 * 
*/
        delete __pyx_v_lk;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":63
 * cpdef void gevent_decrement_channel_count():
 *   global g_channel_count
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_channel_count -= 1
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
*/

  /* function exit code */
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count = {"gevent_decrement_channel_count", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gevent_decrement_channel_count (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_78gevent_decrement_channel_count(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_78gevent_decrement_channel_count(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gevent_decrement_channel_count", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count(1); if (unlikely(PyErr_Occurred())) __PYX_ERR(28, 61, __pyx_L1_error)
  __pyx_t_1 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.gevent_decrement_channel_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":71
 * 
 * 
 * cdef object await_next_greenlet():             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet(void) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_v_to_call = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  void *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("await_next_greenlet", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":73
 * cdef object await_next_greenlet():
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":76
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():
*/
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":77
 *     # advantage of RAII.
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:             # <<<<<<<<<<<<<<
 *       if not g_greenlets_to_run.empty():
 *         break
*/
        while (1) {
          __pyx_t_2 = (!__pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue);
          if (__pyx_t_2) {
          } else {
            __pyx_t_1 = __pyx_t_2;
            goto __pyx_L8_bool_binop_done;
          }
          __pyx_t_2 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count != 0);
          __pyx_t_1 = __pyx_t_2;
          __pyx_L8_bool_binop_done:;
          if (!__pyx_t_1) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":78
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():             # <<<<<<<<<<<<<<
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
*/
          __pyx_t_1 = (!__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.empty());
          if (__pyx_t_1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":79
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():
 *         break             # <<<<<<<<<<<<<<
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:
*/
            goto __pyx_L7_break;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":78
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     while not g_shutdown_greenlets_to_run_queue and g_channel_count != 0:
 *       if not g_greenlets_to_run.empty():             # <<<<<<<<<<<<<<
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":80
 *       if not g_greenlets_to_run.empty():
 *         break
 *       g_greenlets_cv.wait(dereference(lk))             # <<<<<<<<<<<<<<
 *   if g_channel_count == 0:
 *     del lk
*/
          __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.wait((*__pyx_v_lk));
        }
        __pyx_L7_break:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":73
 * cdef object await_next_greenlet():
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     # Cython doesn't allow us to do proper stack allocations, so we can't take
 *     # advantage of RAII.
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":81
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
*/
  __pyx_t_1 = (__pyx_v_4grpc_7_cython_6cygrpc_g_channel_count == 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":82
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:
 *     del lk             # <<<<<<<<<<<<<<
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:
*/
    delete __pyx_v_lk;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":83
 *   if g_channel_count == 0:
 *     del lk
 *     return None             # <<<<<<<<<<<<<<
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":81
 *         break
 *       g_greenlets_cv.wait(dereference(lk))
 *   if g_channel_count == 0:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":84
 *     del lk
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
*/
  if (__pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":85
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk             # <<<<<<<<<<<<<<
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()
*/
    delete __pyx_v_lk;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":86
 *   if g_shutdown_greenlets_to_run_queue:
 *     del lk
 *     return None             # <<<<<<<<<<<<<<
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":84
 *     del lk
 *     return None
 *   if g_shutdown_greenlets_to_run_queue:             # <<<<<<<<<<<<<<
 *     del lk
 *     return None
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":87
 *     del lk
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()             # <<<<<<<<<<<<<<
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()
*/
  __pyx_t_3 = __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.front();
  __pyx_t_4 = ((PyObject *)__pyx_t_3);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_v_to_call = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":88
 *     return None
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)             # <<<<<<<<<<<<<<
 *   g_greenlets_to_run.pop()
 *   del lk
*/
  Py_DECREF(__pyx_v_to_call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":89
 *   cdef object to_call = <object>g_greenlets_to_run.front()
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()             # <<<<<<<<<<<<<<
 *   del lk
 *   return to_call
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_to_run.pop();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":90
 *   Py_DECREF(to_call)
 *   g_greenlets_to_run.pop()
 *   del lk             # <<<<<<<<<<<<<<
 *   return to_call
 * 
*/
  delete __pyx_v_lk;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":91
 *   g_greenlets_to_run.pop()
 *   del lk
 *   return to_call             # <<<<<<<<<<<<<<
 * 
 * def spawn_greenlets():
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_to_call);
  __pyx_r = __pyx_v_to_call;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":71
 * 
 * 
 * cdef object await_next_greenlet():             # <<<<<<<<<<<<<<
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_81spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_81spawn_greenlets = {"spawn_greenlets", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_81spawn_greenlets, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_81spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("spawn_greenlets (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_80spawn_greenlets(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_80spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_to_call = NULL;
  PyObject *__pyx_v_fn = NULL;
  PyObject *__pyx_v_args = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spawn_greenlets", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":94
 * 
 * def spawn_greenlets():
 *   while True:             # <<<<<<<<<<<<<<
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":95
 * def spawn_greenlets():
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())             # <<<<<<<<<<<<<<
 *     if to_call is None:
 *       break
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_g_gevent_threadpool); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_apply); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(__pyx_f_4grpc_7_cython_6cygrpc_await_next_greenlet); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_mstate_global->__pyx_empty_tuple};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 95, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_to_call, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":96
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:             # <<<<<<<<<<<<<<
 *       break
 *     fn = to_call[0]
*/
    __pyx_t_6 = (__pyx_v_to_call == Py_None);
    if (__pyx_t_6) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":97
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:
 *       break             # <<<<<<<<<<<<<<
 *     fn = to_call[0]
 *     args = to_call[1:]
*/
      goto __pyx_L4_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":96
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
 *     if to_call is None:             # <<<<<<<<<<<<<<
 *       break
 *     fn = to_call[0]
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":98
 *     if to_call is None:
 *       break
 *     fn = to_call[0]             # <<<<<<<<<<<<<<
 *     args = to_call[1:]
 *     fn(*args)
*/
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_to_call, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_fn, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":99
 *       break
 *     fn = to_call[0]
 *     args = to_call[1:]             # <<<<<<<<<<<<<<
 *     fn(*args)
 * 
*/
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_to_call, 1, 0, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":100
 *     fn = to_call[0]
 *     args = to_call[1:]
 *     fn(*args)             # <<<<<<<<<<<<<<
 * 
 * def run_spawn_greenlets():
*/
    __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_fn, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_L4_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.spawn_greenlets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_to_call);
  __Pyx_XDECREF(__pyx_v_fn);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_83run_spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_83run_spawn_greenlets = {"run_spawn_greenlets", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_83run_spawn_greenlets, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_83run_spawn_greenlets(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("run_spawn_greenlets (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_82run_spawn_greenlets(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_82run_spawn_greenlets(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("run_spawn_greenlets", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":103
 * 
 * def run_spawn_greenlets():
 *   g_gevent_pool.spawn(spawn_greenlets)             # <<<<<<<<<<<<<<
 * 
 * def shutdown_await_next_greenlet():
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_g_gevent_pool); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_spawn); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_spawn_greenlets); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.run_spawn_greenlets", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_85shutdown_await_next_greenlet(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_85shutdown_await_next_greenlet = {"shutdown_await_next_greenlet", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_85shutdown_await_next_greenlet, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_85shutdown_await_next_greenlet(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_await_next_greenlet (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_84shutdown_await_next_greenlet(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_84shutdown_await_next_greenlet(CYTHON_UNUSED PyObject *__pyx_self) {
  std::unique_lock<std::mutex>  *__pyx_v_lk;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_await_next_greenlet", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":108
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":109
 *   cdef unique_lock[mutex]* lk
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)             # <<<<<<<<<<<<<<
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk
*/
        __pyx_v_lk = new std::unique_lock<std::mutex> (__pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_mu);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":110
 *   with nogil:
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True             # <<<<<<<<<<<<<<
 *   del lk
 *   g_greenlets_cv.notify_all()
*/
        __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue = 1;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":108
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
 *   with nogil:             # <<<<<<<<<<<<<<
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":111
 *     lk = new unique_lock[mutex](g_greenlets_mu)
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk             # <<<<<<<<<<<<<<
 *   g_greenlets_cv.notify_all()
 * 
*/
  delete __pyx_v_lk;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":112
 *     g_shutdown_greenlets_to_run_queue = True
 *   del lk
 *   g_greenlets_cv.notify_all()             # <<<<<<<<<<<<<<
 * 
 * def init_grpc_gevent():
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_greenlets_cv.notify_all();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_87init_grpc_gevent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_87init_grpc_gevent = {"init_grpc_gevent", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_87init_grpc_gevent, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_87init_grpc_gevent(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_grpc_gevent (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_86init_grpc_gevent(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_86init_grpc_gevent(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_gevent = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_gevent", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":122
 *   global g_gevent_pool
 * 
 *   import gevent             # <<<<<<<<<<<<<<
 *   import gevent.pool
 * 
*/
  __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_gevent, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_gevent = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":123
 * 
 *   import gevent
 *   import gevent.pool             # <<<<<<<<<<<<<<
 * 
 *   gevent_hub = gevent.hub
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_gevent_pool, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_gevent, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":125
 *   import gevent.pool
 * 
 *   gevent_hub = gevent.hub             # <<<<<<<<<<<<<<
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_gevent, __pyx_mstate_global->__pyx_n_u_hub); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_gevent_hub, __pyx_t_1) < 0) __PYX_ERR(28, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":126
 * 
 *   gevent_hub = gevent.hub
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool             # <<<<<<<<<<<<<<
 * 
 *   g_gevent_activated = True
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_gevent_hub); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_hub); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_threadpool); if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_threadpool, __pyx_t_4) < 0) __PYX_ERR(28, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":128
 *   g_gevent_threadpool = gevent_hub.get_hub().threadpool
 * 
 *   g_gevent_activated = True             # <<<<<<<<<<<<<<
 *   g_interrupt_check_period_ms = 2000
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_activated, Py_True) < 0) __PYX_ERR(28, 128, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":129
 * 
 *   g_gevent_activated = True
 *   g_interrupt_check_period_ms = 2000             # <<<<<<<<<<<<<<
 * 
 *   g_gevent_pool = gevent.pool.Group()
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms = 0x7D0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":131
 *   g_interrupt_check_period_ms = 2000
 * 
 *   g_gevent_pool = gevent.pool.Group()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_gevent, __pyx_mstate_global->__pyx_n_u_pool); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_Group, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_pool, __pyx_t_4) < 0) __PYX_ERR(28, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":134
 * 
 * 
 *   set_async_callback_func(_submit_to_greenlet_queue)             # <<<<<<<<<<<<<<
 * 
 *   # TODO: Document how this all works.
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_set_async_callback_func); if (unlikely(!__pyx_t_1)) __PYX_ERR(28, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(__pyx_f_4grpc_7_cython_6cygrpc__submit_to_greenlet_queue); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":137
 * 
 *   # TODO: Document how this all works.
 *   atexit.register(shutdown_await_next_greenlet)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_atexit); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_shutdown_await_next_greenlet); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(28, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_gevent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_gevent);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_89_contextvars_supported(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_88_contextvars_supported, "Determines if the contextvars module is supported.\n\n    We use a 'try it and see if it works approach' here rather than predicting\n    based on interpreter version in order to support older interpreters that\n    may have a backported module based on, e.g. `threading.local`.\n\n    Returns:\n      A bool indicating whether `contextvars` are supported in the current\n      environment.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_89_contextvars_supported = {"_contextvars_supported", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_89_contextvars_supported, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_88_contextvars_supported};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_89_contextvars_supported(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_contextvars_supported (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_88_contextvars_supported(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_88_contextvars_supported(CYTHON_UNUSED PyObject *__pyx_self) {
  CYTHON_UNUSED PyObject *__pyx_v_contextvars = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_contextvars_supported", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":27
 *     """
 *     try:
 *         import contextvars             # <<<<<<<<<<<<<<
 *         return True
 *     except ImportError:
*/
      __pyx_t_4 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_contextvars, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(29, 27, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_contextvars = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":28
 *     try:
 *         import contextvars
 *         return True             # <<<<<<<<<<<<<<
 *     except ImportError:
 *         return False
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_True);
      __pyx_r = Py_True;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":29
 *         import contextvars
 *         return True
 *     except ImportError:             # <<<<<<<<<<<<<<
 *         return False
 * 
*/
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":30
 *         return True
 *     except ImportError:
 *         return False             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":26
 *       environment.
 *     """
 *     try:             # <<<<<<<<<<<<<<
 *         import contextvars
 *         return True
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._contextvars_supported", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_contextvars);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":33
 * 
 * 
 * def _run_with_context(target):             # <<<<<<<<<<<<<<
 *     """Runs a callable with contextvars propagated.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_90_run_with_context, "Runs a callable with contextvars propagated.\n\n    If contextvars are supported, the calling thread's context will be copied\n    and propagated. If they are not supported, this function is equivalent\n    to the identity function.\n\n    Args:\n      target: A callable object to wrap.\n    Returns:\n      A callable object with the same signature as `target` but with\n        contextvars propagated.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_91_run_with_context = {"_run_with_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_90_run_with_context};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_91_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(29, 33, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 33, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_run_with_context", 0) < 0) __PYX_ERR(29, 33, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, i); __PYX_ERR(29, 33, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 33, __pyx_L3_error)
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 33, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_90_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_target) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_93_run_with_context = {"_run_with_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_93_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(29, 50, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 50, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_run_with_context", 0) < 0) __PYX_ERR(29, 50, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, i); __PYX_ERR(29, 50, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 50, __pyx_L3_error)
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 50, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_1_run = {"_run", (PyCFunction)(void(*)(void))(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_1_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_run", __pyx_kwds); return NULL;}
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context__run(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":53
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
 *             ctx.run(target, *args)             # <<<<<<<<<<<<<<
 *         return _run
 * else:
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_ctx)) { __Pyx_RaiseClosureNameError("ctx"); __PYX_ERR(29, 53, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_ctx, __pyx_mstate_global->__pyx_n_u_run); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(29, 53, __pyx_L1_error) }
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_target) != (0)) __PYX_ERR(29, 53, __pyx_L1_error);
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context._run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_92_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *__pyx_cur_scope;
  PyObject *__pyx_v__run = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_with_context", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(29, 50, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":51
 *     import contextvars
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             ctx.run(target, *args)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_contextvars); if (unlikely(!__pyx_t_3)) __PYX_ERR(29, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_copy_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(29, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":52
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             ctx.run(target, *args)
 *         return _run
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_1_run, 0, __pyx_mstate_global->__pyx_n_u_run_with_context_locals__run, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__run = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":54
 *         def _run(*args):
 *             ctx.run(target, *args)
 *         return _run             # <<<<<<<<<<<<<<
 * else:
 *     def _run_with_context(target):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v__run);
  __pyx_r = __pyx_v__run;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__run);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_95_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_95_run_with_context = {"_run_with_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_95_run_with_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_95_run_with_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_with_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(29, 56, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 56, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_run_with_context", 0) < 0) __PYX_ERR(29, 56, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, i); __PYX_ERR(29, 56, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(29, 56, __pyx_L3_error)
    }
    __pyx_v_target = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_with_context", 1, 1, 1, __pyx_nargs); __PYX_ERR(29, 56, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_94_run_with_context(__pyx_self, __pyx_v_target);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_3_run = {"_run", (PyCFunction)(void(*)(void))(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17_run_with_context_3_run(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_run", __pyx_kwds); return NULL;}
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17_run_with_context_2_run(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":58
 *     def _run_with_context(target):
 *         def _run(*args):
 *             target(*args)             # <<<<<<<<<<<<<<
 *         return _run
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(29, 58, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_target, __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context._run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_94_run_with_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *__pyx_cur_scope;
  PyObject *__pyx_v__run = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_with_context", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(29, 56, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":57
 * else:
 *     def _run_with_context(target):
 *         def _run(*args):             # <<<<<<<<<<<<<<
 *             target(*args)
 *         return _run
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_run_with_context_3_run, 0, __pyx_mstate_global->__pyx_n_u_run_with_context_locals__run, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__run = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":59
 *         def _run(*args):
 *             target(*args)
 *         return _run             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v__run);
  __pyx_r = __pyx_v__run;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_with_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__run);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":38
 * _fork_handler_failed = False
 * 
 * cdef void __prefork() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         global _fork_handler_failed
*/

static void __pyx_f_4grpc_7_cython_6cygrpc___prefork(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("__prefork", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":39
 * 
 * cdef void __prefork() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":41
 *     with gil:
 *         global _fork_handler_failed
 *         _fork_handler_failed = False             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
*/
        if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_handler_failed, Py_False) < 0) __PYX_ERR(1, 41, __pyx_L4_error)

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":42
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
*/
        /*with:*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 42, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = NULL;
          __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 42, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 42, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_7);
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_9);
              /*try:*/ {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":43
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True             # <<<<<<<<<<<<<<
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
*/
                __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_2);
                if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_in_progress, Py_True) < 0) __PYX_ERR(1, 43, __pyx_L10_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":42
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
*/
              }
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              goto __pyx_L15_try_end;
              __pyx_L10_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("grpc._cython.cygrpc.__prefork", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_XGOTREF(__pyx_t_2);
                __Pyx_XGOTREF(__pyx_t_1);
                __Pyx_XGOTREF(__pyx_t_5);
                __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                if (__pyx_t_11 < 0) __PYX_ERR(1, 42, __pyx_L12_except_error)
                __pyx_t_12 = (!__pyx_t_11);
                if (unlikely(__pyx_t_12)) {
                  __Pyx_GIVEREF(__pyx_t_2);
                  __Pyx_GIVEREF(__pyx_t_1);
                  __Pyx_XGIVEREF(__pyx_t_5);
                  __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_5);
                  __pyx_t_2 = 0;  __pyx_t_1 = 0;  __pyx_t_5 = 0; 
                  __PYX_ERR(1, 42, __pyx_L12_except_error)
                }
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
                goto __pyx_L11_exception_handled;
              }
              __pyx_L12_except_error:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              goto __pyx_L4_error;
              __pyx_L11_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              __pyx_L15_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_3) {
                __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[0], NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 42, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              goto __pyx_L9;
            }
            __pyx_L9:;
          }
          goto __pyx_L19;
          __pyx_L6_error:;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L4_error;
          __pyx_L19:;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
*/
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_1 = __pyx_t_4;
        __Pyx_INCREF(__pyx_t_1);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":45
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):             # <<<<<<<<<<<<<<
 *             _LOGGER.error(
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
*/
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_AWAIT_THREADS_TIMEOUT_SECONDS); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 45, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_2};
          __pyx_t_5 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_await_zero_threads, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 44, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_5);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
*/
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(1, 44, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_11 = (!__pyx_t_12);
        if (__pyx_t_11) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":46
 *         if not _fork_state.active_thread_count.await_zero_threads(
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(             # <<<<<<<<<<<<<<
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
 *                 'Behavior after fork will be undefined.')
*/
          __pyx_t_4 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 46, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Failed_to_shutdown_gRPC_Python_t};
            __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 46, __pyx_L4_error)
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":49
 *                 'Failed to shutdown gRPC Python threads prior to fork. '
 *                 'Behavior after fork will be undefined.')
 *             _fork_handler_failed = True             # <<<<<<<<<<<<<<
 * 
 * 
*/
          if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_handler_failed, Py_True) < 0) __PYX_ERR(1, 49, __pyx_L4_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":44
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = True
 *         if not _fork_state.active_thread_count.await_zero_threads(             # <<<<<<<<<<<<<<
 *                 _AWAIT_THREADS_TIMEOUT_SECONDS):
 *             _LOGGER.error(
*/
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":39
 * 
 * cdef void __prefork() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         global _fork_handler_failed
 *         _fork_handler_failed = False
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":38
 * _fork_handler_failed = False
 * 
 * cdef void __prefork() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         global _fork_handler_failed
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__prefork", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":52
 * 
 * 
 * cdef void __postfork_parent() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
*/

static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_parent(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("__postfork_parent", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":53
 * 
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":54
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()
*/
        /*with:*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 54, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = NULL;
          __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 54, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            assert(__pyx_t_4);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
            __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 54, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          /*try:*/ {
            {
              __Pyx_PyThreadState_declare
              __Pyx_PyThreadState_assign
              __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_7);
              __Pyx_XGOTREF(__pyx_t_8);
              __Pyx_XGOTREF(__pyx_t_9);
              /*try:*/ {

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":55
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress_condition.notify_all()
 * 
*/
                __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_2);
                if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 55, __pyx_L10_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":56
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()             # <<<<<<<<<<<<<<
 * 
 * 
*/
                __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 56, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 56, __pyx_L10_error)
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                __pyx_t_1 = __pyx_t_4;
                __Pyx_INCREF(__pyx_t_1);
                __pyx_t_6 = 0;
                {
                  PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
                  __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_notify_all, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 56, __pyx_L10_error)
                  __Pyx_GOTREF(__pyx_t_2);
                }
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":54
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress = False
 *             _fork_state.fork_in_progress_condition.notify_all()
*/
              }
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              goto __pyx_L15_try_end;
              __pyx_L10_error:;
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              /*except:*/ {
                __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_parent", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_XGOTREF(__pyx_t_2);
                __Pyx_XGOTREF(__pyx_t_4);
                __Pyx_XGOTREF(__pyx_t_1);
                __pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                if (__pyx_t_11 < 0) __PYX_ERR(1, 54, __pyx_L12_except_error)
                __pyx_t_12 = (!__pyx_t_11);
                if (unlikely(__pyx_t_12)) {
                  __Pyx_GIVEREF(__pyx_t_2);
                  __Pyx_GIVEREF(__pyx_t_4);
                  __Pyx_XGIVEREF(__pyx_t_1);
                  __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_1);
                  __pyx_t_2 = 0;  __pyx_t_4 = 0;  __pyx_t_1 = 0; 
                  __PYX_ERR(1, 54, __pyx_L12_except_error)
                }
                __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
                goto __pyx_L11_exception_handled;
              }
              __pyx_L12_except_error:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              goto __pyx_L4_error;
              __pyx_L11_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_7);
              __Pyx_XGIVEREF(__pyx_t_8);
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
              __pyx_L15_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_3) {
                __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[0], NULL);
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 54, __pyx_L4_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              goto __pyx_L9;
            }
            __pyx_L9:;
          }
          goto __pyx_L19;
          __pyx_L6_error:;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L4_error;
          __pyx_L19:;
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":53
 * 
 * cdef void __postfork_parent() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             _fork_state.fork_in_progress = False
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":52
 * 
 * 
 * cdef void __postfork_parent() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         with _fork_state.fork_in_progress_condition:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__postfork_parent", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":59
 * 
 * 
 * cdef void __postfork_child() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         try:
*/

static void __pyx_f_4grpc_7_cython_6cygrpc___postfork_child(void) {
  PyObject *__pyx_v_state_to_reset = NULL;
  PyObject *__pyx_v_channel = NULL;
  PyObject *__pyx_v_wait_ms = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("__postfork_child", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":60
 * 
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         try:
 *             if _fork_handler_failed:
*/
  {
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
*/
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_3);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":62
 *     with gil:
 *         try:
 *             if _fork_handler_failed:             # <<<<<<<<<<<<<<
 *                 return
 *             # Thread could be holding the fork_in_progress_condition inside of
*/
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_handler_failed); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 62, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(1, 62, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (__pyx_t_5) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":63
 *         try:
 *             if _fork_handler_failed:
 *                 return             # <<<<<<<<<<<<<<
 *             # Thread could be holding the fork_in_progress_condition inside of
 *             # block_if_fork_in_progress() when fork occurs. Reset the lock here.
*/
              goto __pyx_L10_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":62
 *     with gil:
 *         try:
 *             if _fork_handler_failed:             # <<<<<<<<<<<<<<
 *                 return
 *             # Thread could be holding the fork_in_progress_condition inside of
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":66
 *             # Thread could be holding the fork_in_progress_condition inside of
 *             # block_if_fork_in_progress() when fork occurs. Reset the lock here.
 *             _fork_state.fork_in_progress_condition = threading.Condition()             # <<<<<<<<<<<<<<
 *             # A thread in return_from_user_request_generator() may hold this lock
 *             # when fork occurs.
*/
            __pyx_t_6 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Condition); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_8))) {
              __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
              assert(__pyx_t_6);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 66, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition, __pyx_t_4) < 0) __PYX_ERR(1, 66, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":69
 *             # A thread in return_from_user_request_generator() may hold this lock
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()             # <<<<<<<<<<<<<<
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()
*/
            __pyx_t_4 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_6))) {
              __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
              assert(__pyx_t_4);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
              __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 69, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_8);
            }
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_active_thread_count, __pyx_t_8) < 0) __PYX_ERR(1, 69, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":70
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:             # <<<<<<<<<<<<<<
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
*/
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 70, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_postfork_states_to_reset); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 70, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
              __pyx_t_6 = __pyx_t_8; __Pyx_INCREF(__pyx_t_6);
              __pyx_t_10 = 0;
              __pyx_t_11 = NULL;
            } else {
              __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 70, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 70, __pyx_L6_error)
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            for (;;) {
              if (likely(!__pyx_t_11)) {
                if (likely(PyList_CheckExact(__pyx_t_6))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                    #endif
                    if (__pyx_t_10 >= __pyx_temp) break;
                  }
                  __pyx_t_8 = __Pyx_PyList_GetItemRef(__pyx_t_6, __pyx_t_10);
                  ++__pyx_t_10;
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 70, __pyx_L6_error)
                    #endif
                    if (__pyx_t_10 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10));
                  #else
                  __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_10);
                  #endif
                  ++__pyx_t_10;
                }
                if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 70, __pyx_L6_error)
              } else {
                __pyx_t_8 = __pyx_t_11(__pyx_t_6);
                if (unlikely(!__pyx_t_8)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 70, __pyx_L6_error)
                    PyErr_Clear();
                  }
                  break;
                }
              }
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_XDECREF_SET(__pyx_v_state_to_reset, __pyx_t_8);
              __pyx_t_8 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":71
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()             # <<<<<<<<<<<<<<
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
*/
              __pyx_t_4 = __pyx_v_state_to_reset;
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_9 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_reset_postfork_child, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 71, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_8);
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":70
 *             # when fork occurs.
 *             _fork_state.active_thread_count = _ActiveThreadCount()
 *             for state_to_reset in _fork_state.postfork_states_to_reset:             # <<<<<<<<<<<<<<
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
*/
            }
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":72
 *             for state_to_reset in _fork_state.postfork_states_to_reset:
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []             # <<<<<<<<<<<<<<
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:
*/
            __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_postfork_states_to_reset, __pyx_t_6) < 0) __PYX_ERR(1, 72, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":73
 *                 state_to_reset.reset_postfork_child()
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1             # <<<<<<<<<<<<<<
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
*/
            __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_epoch); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_epoch, __pyx_t_8) < 0) __PYX_ERR(1, 73, __pyx_L6_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":74
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:             # <<<<<<<<<<<<<<
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
*/
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 74, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_channels); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 74, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
              __pyx_t_6 = __pyx_t_8; __Pyx_INCREF(__pyx_t_6);
              __pyx_t_10 = 0;
              __pyx_t_11 = NULL;
            } else {
              __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 74, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 74, __pyx_L6_error)
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            for (;;) {
              if (likely(!__pyx_t_11)) {
                if (likely(PyList_CheckExact(__pyx_t_6))) {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                    #endif
                    if (__pyx_t_10 >= __pyx_temp) break;
                  }
                  __pyx_t_8 = __Pyx_PyList_GetItemRef(__pyx_t_6, __pyx_t_10);
                  ++__pyx_t_10;
                } else {
                  {
                    Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6);
                    #if !CYTHON_ASSUME_SAFE_SIZE
                    if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 74, __pyx_L6_error)
                    #endif
                    if (__pyx_t_10 >= __pyx_temp) break;
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10));
                  #else
                  __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_10);
                  #endif
                  ++__pyx_t_10;
                }
                if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 74, __pyx_L6_error)
              } else {
                __pyx_t_8 = __pyx_t_11(__pyx_t_6);
                if (unlikely(!__pyx_t_8)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 74, __pyx_L6_error)
                    PyErr_Clear();
                  }
                  break;
                }
              }
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_XDECREF_SET(__pyx_v_channel, __pyx_t_8);
              __pyx_t_8 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":75
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()             # <<<<<<<<<<<<<<
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False
*/
              __pyx_t_4 = __pyx_v_channel;
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_9 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_close_on_fork, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 75, __pyx_L6_error)
                __Pyx_GOTREF(__pyx_t_8);
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":74
 *             _fork_state.postfork_states_to_reset = []
 *             _fork_state.fork_epoch += 1
 *             for channel in _fork_state.channels:             # <<<<<<<<<<<<<<
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
*/
            }
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":76
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_in_progress = False
 *         except:
*/
            /*with:*/ {
              __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_12 = __Pyx_PyObject_LookupSpecial(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 76, __pyx_L6_error)
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_4 = NULL;
              __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 76, __pyx_L19_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_9 = 1;
              #if CYTHON_UNPACK_METHODS
              if (likely(PyMethod_Check(__pyx_t_7))) {
                __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
                assert(__pyx_t_4);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
                __pyx_t_9 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
                __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 76, __pyx_L19_error)
                __Pyx_GOTREF(__pyx_t_6);
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              /*try:*/ {
                {
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
                  __Pyx_XGOTREF(__pyx_t_13);
                  __Pyx_XGOTREF(__pyx_t_14);
                  __Pyx_XGOTREF(__pyx_t_15);
                  /*try:*/ {

                    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":77
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False             # <<<<<<<<<<<<<<
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')
*/
                    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 77, __pyx_L23_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 77, __pyx_L23_error)
                    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

                    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":76
 *             for channel in _fork_state.channels:
 *                 channel._close_on_fork()
 *             with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_in_progress = False
 *         except:
*/
                  }
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
                  goto __pyx_L28_try_end;
                  __pyx_L23_error:;
                  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                  /*except:*/ {
                    __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename);
                    if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_XGOTREF(__pyx_t_8);
                    __Pyx_XGOTREF(__pyx_t_6);
                    __Pyx_XGOTREF(__pyx_t_7);
                    __pyx_t_4 = PyTuple_Pack(3, __pyx_t_8, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_GOTREF(__pyx_t_4);
                    __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_4, NULL);
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                    if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __Pyx_GOTREF(__pyx_t_16);
                    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_16);
                    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                    if (__pyx_t_5 < 0) __PYX_ERR(1, 76, __pyx_L25_except_error)
                    __pyx_t_17 = (!__pyx_t_5);
                    if (unlikely(__pyx_t_17)) {
                      __Pyx_GIVEREF(__pyx_t_8);
                      __Pyx_GIVEREF(__pyx_t_6);
                      __Pyx_XGIVEREF(__pyx_t_7);
                      __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_6, __pyx_t_7);
                      __pyx_t_8 = 0;  __pyx_t_6 = 0;  __pyx_t_7 = 0; 
                      __PYX_ERR(1, 76, __pyx_L25_except_error)
                    }
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                    goto __pyx_L24_exception_handled;
                  }
                  __pyx_L25_except_error:;
                  __Pyx_XGIVEREF(__pyx_t_13);
                  __Pyx_XGIVEREF(__pyx_t_14);
                  __Pyx_XGIVEREF(__pyx_t_15);
                  __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
                  goto __pyx_L6_error;
                  __pyx_L24_exception_handled:;
                  __Pyx_XGIVEREF(__pyx_t_13);
                  __Pyx_XGIVEREF(__pyx_t_14);
                  __Pyx_XGIVEREF(__pyx_t_15);
                  __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
                  __pyx_L28_try_end:;
                }
              }
              /*finally:*/ {
                /*normal exit:*/{
                  if (__pyx_t_12) {
                    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[0], NULL);
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 76, __pyx_L6_error)
                    __Pyx_GOTREF(__pyx_t_15);
                    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                  }
                  goto __pyx_L22;
                }
                __pyx_L22:;
              }
              goto __pyx_L32;
              __pyx_L19_error:;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L6_error;
              __pyx_L32:;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
*/
          }
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L11_try_end;
          __pyx_L6_error:;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":78
 *             with _fork_state.fork_in_progress_condition:
 *                 _fork_state.fork_in_progress = False
 *         except:             # <<<<<<<<<<<<<<
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])
*/
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_8) < 0) __PYX_ERR(1, 78, __pyx_L8_except_error)
            __Pyx_XGOTREF(__pyx_t_7);
            __Pyx_XGOTREF(__pyx_t_6);
            __Pyx_XGOTREF(__pyx_t_8);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":79
 *                 _fork_state.fork_in_progress = False
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')             # <<<<<<<<<<<<<<
 *             _LOGGER.error(sys.exc_info()[0])
 *             os._exit(os.EX_USAGE)
*/
            __pyx_t_18 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 79, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 79, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_20);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_20))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_20);
              assert(__pyx_t_18);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_20);
              __Pyx_INCREF(__pyx_t_18);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_20, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_mstate_global->__pyx_kp_u_Exiting_child_due_to_raised_exce};
              __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_20, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 79, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":80
 *         except:
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])             # <<<<<<<<<<<<<<
 *             os._exit(os.EX_USAGE)
 *         # Give ~2s to shutdown asynchronously.
*/
            __pyx_t_20 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_21 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_22)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_mstate_global->__pyx_n_u_exc_info); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_23))) {
              __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_23);
              assert(__pyx_t_21);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_23);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_23, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_21, NULL};
              __pyx_t_18 = __Pyx_PyObject_FastCall(__pyx_t_23, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 80, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_18);
            }
            __pyx_t_23 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 80, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_19))) {
              __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19);
              assert(__pyx_t_20);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_19);
              __Pyx_INCREF(__pyx_t_20);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_19, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_t_23};
              __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_19, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 80, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":81
 *             _LOGGER.error('Exiting child due to raised exception')
 *             _LOGGER.error(sys.exc_info()[0])
 *             os._exit(os.EX_USAGE)             # <<<<<<<<<<<<<<
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10
*/
            __pyx_t_19 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_exit_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_20);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_23)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_EX_USAGE); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 81, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_9 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_20))) {
              __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20);
              assert(__pyx_t_19);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_20);
              __Pyx_INCREF(__pyx_t_19);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_20, __pyx__function);
              __pyx_t_9 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_19, __pyx_t_18};
              __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_20, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
              if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 81, __pyx_L8_except_error)
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            goto __pyx_L7_exception_handled;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":61
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:
 *         try:             # <<<<<<<<<<<<<<
 *             if _fork_handler_failed:
 *                 return
*/
          __pyx_L8_except_error:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          goto __pyx_L4_error;
          __pyx_L10_try_return:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          goto __pyx_L3_return;
          __pyx_L7_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_1);
          __Pyx_XGIVEREF(__pyx_t_2);
          __Pyx_XGIVEREF(__pyx_t_3);
          __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
          __pyx_L11_try_end:;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":83
 *             os._exit(os.EX_USAGE)
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10             # <<<<<<<<<<<<<<
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:
*/
        __Pyx_INCREF(__pyx_mstate_global->__pyx_int_10);
        __pyx_v_wait_ms = __pyx_mstate_global->__pyx_int_10;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":84
 *         # Give ~2s to shutdown asynchronously.
 *         wait_ms = 10
 *         while wait_ms < 1500:             # <<<<<<<<<<<<<<
 *             if grpc_is_initialized() == 0:
 *                 return
*/
        while (1) {
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_wait_ms, __pyx_mstate_global->__pyx_int_1500, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 84, __pyx_L4_error)
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(1, 84, __pyx_L4_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (!__pyx_t_17) break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":85
 *         wait_ms = 10
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:             # <<<<<<<<<<<<<<
 *                 return
 *             time.sleep(wait_ms / 1000)
*/
          __pyx_t_17 = (grpc_is_initialized() == 0);
          if (__pyx_t_17) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":86
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:
 *                 return             # <<<<<<<<<<<<<<
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2
*/
            goto __pyx_L3_return;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":85
 *         wait_ms = 10
 *         while wait_ms < 1500:
 *             if grpc_is_initialized() == 0:             # <<<<<<<<<<<<<<
 *                 return
 *             time.sleep(wait_ms / 1000)
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":87
 *             if grpc_is_initialized() == 0:
 *                 return
 *             time.sleep(wait_ms / 1000)             # <<<<<<<<<<<<<<
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
*/
          __pyx_t_6 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_sleep); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyLong_TrueDivideObjC(__pyx_v_wait_ms, __pyx_mstate_global->__pyx_int_1000, 0x3E8, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 87, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_9 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
            assert(__pyx_t_6);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
            __pyx_t_9 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
            __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 87, __pyx_L4_error)
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":88
 *                 return
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2             # <<<<<<<<<<<<<<
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
 *         os._exit(os.EX_USAGE)
*/
          __pyx_t_8 = __Pyx_PyLong_MultiplyObjC(__pyx_v_wait_ms, __pyx_mstate_global->__pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 88, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF_SET(__pyx_v_wait_ms, __pyx_t_8);
          __pyx_t_8 = 0;
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":89
 *             time.sleep(wait_ms / 1000)
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')             # <<<<<<<<<<<<<<
 *         os._exit(os.EX_USAGE)
 * 
*/
        __pyx_t_4 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 89, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 89, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_9 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
          assert(__pyx_t_4);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
          __pyx_t_9 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Failed_to_shutdown_gRPC_Core_aft};
          __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 89, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":90
 *             wait_ms = wait_ms * 2
 *         _LOGGER.error('Failed to shutdown gRPC Core after fork()')
 *         os._exit(os.EX_USAGE)             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_t_6 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_exit_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EX_USAGE); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 90, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_20);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_9 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
          assert(__pyx_t_6);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
          __pyx_t_9 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_20};
          __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 90, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":60
 * 
 * cdef void __postfork_child() noexcept nogil:
 *     with gil:             # <<<<<<<<<<<<<<
 *         try:
 *             if _fork_handler_failed:
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L5;
        }
        __pyx_L3_return: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L0;
        }
        __pyx_L4_error: {
          __Pyx_PyGILState_Release(__pyx_gilstate_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":59
 * 
 * 
 * cdef void __postfork_child() noexcept nogil:             # <<<<<<<<<<<<<<
 *     with gil:
 *         try:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.__postfork_child", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_v_state_to_reset);
  __Pyx_XDECREF(__pyx_v_channel);
  __Pyx_XDECREF(__pyx_v_wait_ms);
  __Pyx_RefNannyFinishContext();
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_97fork_handlers_and_grpc_init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_97fork_handlers_and_grpc_init = {"fork_handlers_and_grpc_init", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_97fork_handlers_and_grpc_init, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_97fork_handlers_and_grpc_init(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_handlers_and_grpc_init (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_96fork_handlers_and_grpc_init(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_96fork_handlers_and_grpc_init(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_handlers_and_grpc_init", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":94
 * 
 * def fork_handlers_and_grpc_init():
 *     grpc_init()             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
*/
  grpc_init();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":95
 * def fork_handlers_and_grpc_init():
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":96
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
*/
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_handler_registered_lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = NULL;
      __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 96, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_7 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      /*try:*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":97
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:             # <<<<<<<<<<<<<<
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
*/
            __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_handler_registered); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 97, __pyx_L8_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_11 = (!__pyx_t_2);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":98
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,             # <<<<<<<<<<<<<<
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)
*/
              __pyx_t_3 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_register_at_fork); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_6 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___prefork); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 98, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_6);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":99
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,             # <<<<<<<<<<<<<<
 *                                     after_in_child=__postfork_child)
 *                 _fork_state.fork_handler_registered = True
*/
              __pyx_t_12 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___postfork_parent); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 99, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_12);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":100
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)             # <<<<<<<<<<<<<<
 *                 _fork_state.fork_handler_registered = True
 * 
*/
              __pyx_t_13 = __Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(__pyx_f_4grpc_7_cython_6cygrpc___postfork_child); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 100, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_7 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_5))) {
                __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
                assert(__pyx_t_3);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
                __pyx_t_7 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_3, NULL};
                __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 98, __pyx_L8_error)
                __Pyx_GOTREF(__pyx_t_14);
                if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_before, __pyx_t_6, __pyx_t_14, __pyx_callargs+1, 0) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
                if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_after_in_parent, __pyx_t_12, __pyx_t_14, __pyx_callargs+1, 1) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
                if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_after_in_child, __pyx_t_13, __pyx_t_14, __pyx_callargs+1, 2) < 0) __PYX_ERR(1, 98, __pyx_L8_error)
                __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14);
                __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L8_error)
                __Pyx_GOTREF(__pyx_t_1);
              }
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":101
 *                                     after_in_parent=__postfork_parent,
 *                                     after_in_child=__postfork_child)
 *                 _fork_state.fork_handler_registered = True             # <<<<<<<<<<<<<<
 * 
 * 
*/
              __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_1);
              if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_handler_registered, Py_True) < 0) __PYX_ERR(1, 101, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":97
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:             # <<<<<<<<<<<<<<
 *                 os.register_at_fork(before=__prefork,
 *                                     after_in_parent=__postfork_parent,
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":96
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_handler_registered_lock:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_handler_registered:
 *                 os.register_at_fork(before=__prefork,
*/
          }
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L13_try_end;
          __pyx_L8_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.fork_handlers_and_grpc_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_14) < 0) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_5);
            __Pyx_XGOTREF(__pyx_t_14);
            __pyx_t_13 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            if (__pyx_t_11 < 0) __PYX_ERR(1, 96, __pyx_L10_except_error)
            __pyx_t_2 = (!__pyx_t_11);
            if (unlikely(__pyx_t_2)) {
              __Pyx_GIVEREF(__pyx_t_1);
              __Pyx_GIVEREF(__pyx_t_5);
              __Pyx_XGIVEREF(__pyx_t_14);
              __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_5, __pyx_t_14);
              __pyx_t_1 = 0;  __pyx_t_5 = 0;  __pyx_t_14 = 0; 
              __PYX_ERR(1, 96, __pyx_L10_except_error)
            }
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            goto __pyx_L9_exception_handled;
          }
          __pyx_L10_except_error:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L1_error;
          __pyx_L9_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          __pyx_L13_try_end:;
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_4) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 96, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L7;
        }
        __pyx_L7:;
      }
      goto __pyx_L18;
      __pyx_L4_error:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L1_error;
      __pyx_L18:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":95
 * def fork_handlers_and_grpc_init():
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_handler_registered_lock:
 *             if not _fork_state.fork_handler_registered:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_handlers_and_grpc_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_args = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_target,&__pyx_mstate_global->__pyx_n_u_args,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 107, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 107, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 107, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 107, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(1, 107, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(1, 107, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 107, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 107, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 107, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
    }
    __pyx_v_self = values[0];
    __pyx_v_target = values[1];
    __pyx_v_args = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(1, 107, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(__pyx_self, __pyx_v_self, __pyx_v_target, __pyx_v_args);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target = {"managed_target", (PyCFunction)(void(*)(void))(PyCFunctionWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("managed_target (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("managed_target", __pyx_kwds); return NULL;}
  __Pyx_INCREF(__pyx_args);
  __pyx_v_args = __pyx_args;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(__pyx_self, __pyx_v_args);

  /* function exit code */
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___managed_target(PyObject *__pyx_self, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  char const *__pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("managed_target", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":110
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
 *                 try:             # <<<<<<<<<<<<<<
 *                     target(*args)
 *                 finally:
*/
  /*try:*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":111
 *             def managed_target(*args):
 *                 try:
 *                     target(*args)             # <<<<<<<<<<<<<<
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()
*/
    if (unlikely(!__pyx_cur_scope->__pyx_v_target)) { __Pyx_RaiseClosureNameError("target"); __PYX_ERR(1, 111, __pyx_L4_error) }
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_target, __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 111, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":113
 *                     target(*args)
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)
 *         else:
*/
  /*finally:*/ {
    /*normal exit:*/{
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_2 = __pyx_t_4;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_5 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decrement, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if ( unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_14);
      __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename;
      {
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 113, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 113, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_4 = __pyx_t_3;
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decrement, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 113, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
      __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8;
      goto __pyx_L1_error;
      __pyx_L7_error:;
      __Pyx_XGIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_13);
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__.managed_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_args) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *__pyx_cur_scope;
  PyObject *__pyx_v_managed_target = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(1, 107, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_target = __pyx_v_target;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_target);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_target);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":108
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             def managed_target(*args):
 *                 try:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":109
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):             # <<<<<<<<<<<<<<
 *                 try:
 *                     target(*args)
*/
    __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_8__init___1managed_target, 0, __pyx_mstate_global->__pyx_n_u_ForkManagedThread___init___local, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_managed_target = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":114
 *                 finally:
 *                     _fork_state.active_thread_count.decrement()
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)             # <<<<<<<<<<<<<<
 *         else:
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_run_with_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_managed_target};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_3, NULL};
      __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_target, __pyx_t_4, __pyx_t_7, __pyx_callargs+1, 0) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_args, __pyx_v_args, __pyx_t_7, __pyx_callargs+1, 1) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_5, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_thread, __pyx_t_1) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":108
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             def managed_target(*args):
 *                 try:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":116
 *             self._thread = threading.Thread(target=_run_with_context(managed_target), args=args)
 *         else:
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)             # <<<<<<<<<<<<<<
 * 
 *     def setDaemon(self, daemonic):
*/
  /*else*/ {
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Thread); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_run_with_context); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_target};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_5, NULL};
      __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_target, __pyx_t_7, __pyx_t_6, __pyx_callargs+1, 0) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_args, __pyx_v_args, __pyx_t_6, __pyx_callargs+1, 1) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_4, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_thread, __pyx_t_1) < 0) __PYX_ERR(1, 116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_managed_target);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon = {"setDaemon", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_daemonic = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setDaemon (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_daemonic,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 118, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 118, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 118, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "setDaemon", 0) < 0) __PYX_ERR(1, 118, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("setDaemon", 1, 2, 2, i); __PYX_ERR(1, 118, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 118, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 118, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_daemonic = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setDaemon", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 118, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.setDaemon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(__pyx_self, __pyx_v_self, __pyx_v_daemonic);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_2setDaemon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_daemonic) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setDaemon", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":119
 * 
 *     def setDaemon(self, daemonic):
 *         self._thread.daemon = daemonic             # <<<<<<<<<<<<<<
 * 
 *     def start(self):
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_daemon, __pyx_v_daemonic) < 0) __PYX_ERR(1, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.setDaemon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start = {"start", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 121, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 121, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "start", 0) < 0) __PYX_ERR(1, 121, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("start", 1, 1, 1, i); __PYX_ERR(1, 121, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 121, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("start", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 121, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_4start(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":122
 * 
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":123
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 *         self._thread.start()
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_increment, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":122
 * 
 *     def start(self):
 *         if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":124
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
 *         self._thread.start()             # <<<<<<<<<<<<<<
 * 
 *     def join(self):
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_thread); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join = {"join", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("join (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 126, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 126, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "join", 0) < 0) __PYX_ERR(1, 126, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("join", 1, 1, 1, i); __PYX_ERR(1, 126, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 126, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("join", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 126, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_17ForkManagedThread_6join(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("join", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":127
 * 
 *     def join(self):
 *         self._thread.join()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_thread); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_join, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.ForkManagedThread.join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_99block_if_fork_in_progress(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_99block_if_fork_in_progress = {"block_if_fork_in_progress", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_99block_if_fork_in_progress, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_99block_if_fork_in_progress(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_postfork_state_to_reset = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("block_if_fork_in_progress (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_postfork_state_to_reset,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 130, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 130, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "block_if_fork_in_progress", 0) < 0) __PYX_ERR(1, 130, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 130, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_postfork_state_to_reset = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("block_if_fork_in_progress", 0, 0, 1, __pyx_nargs); __PYX_ERR(1, 130, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_98block_if_fork_in_progress(__pyx_self, __pyx_v_postfork_state_to_reset);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_98block_if_fork_in_progress(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_postfork_state_to_reset) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("block_if_fork_in_progress", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":131
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":132
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_in_progress:
 *                 return
*/
    /*with:*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = NULL;
      __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 132, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = 1;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_7 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      /*try:*/ {
        {
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_8);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":133
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:             # <<<<<<<<<<<<<<
 *                 return
 *             if postfork_state_to_reset is not None:
*/
            __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fork_in_progress); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 133, __pyx_L8_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_11 = (!__pyx_t_2);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":134
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
 *                 return             # <<<<<<<<<<<<<<
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
*/
              __Pyx_XDECREF(__pyx_r);
              __pyx_r = Py_None; __Pyx_INCREF(Py_None);
              goto __pyx_L12_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":133
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:             # <<<<<<<<<<<<<<
 *                 return
 *             if postfork_state_to_reset is not None:
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":135
 *             if not _fork_state.fork_in_progress:
 *                 return
 *             if postfork_state_to_reset is not None:             # <<<<<<<<<<<<<<
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
*/
            __pyx_t_11 = (__pyx_v_postfork_state_to_reset != Py_None);
            if (__pyx_t_11) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":136
 *                 return
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()
*/
              __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_postfork_states_to_reset); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_postfork_state_to_reset); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(1, 136, __pyx_L8_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":135
 *             if not _fork_state.fork_in_progress:
 *                 return
 *             if postfork_state_to_reset is not None:             # <<<<<<<<<<<<<<
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":137
 *             if postfork_state_to_reset is not None:
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 *             _fork_state.fork_in_progress_condition.wait()
 *             _fork_state.active_thread_count.increment()
*/
            __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 137, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 137, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_1 = __pyx_t_5;
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_7 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decrement, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 137, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":138
 *                 _fork_state.postfork_states_to_reset.append(postfork_state_to_reset)
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()             # <<<<<<<<<<<<<<
 *             _fork_state.active_thread_count.increment()
 * 
*/
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 138, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 138, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_5 = __pyx_t_6;
            __Pyx_INCREF(__pyx_t_5);
            __pyx_t_7 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_wait, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 138, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":139
 *             _fork_state.active_thread_count.decrement()
 *             _fork_state.fork_in_progress_condition.wait()
 *             _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 * 
 * 
*/
            __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 139, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_6 = __pyx_t_1;
            __Pyx_INCREF(__pyx_t_6);
            __pyx_t_7 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_increment, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":132
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:             # <<<<<<<<<<<<<<
 *             if not _fork_state.fork_in_progress:
 *                 return
*/
          }
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L13_try_end;
          __pyx_L8_error:;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          /*except:*/ {
            __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
            if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_XGOTREF(__pyx_t_3);
            __Pyx_XGOTREF(__pyx_t_1);
            __Pyx_XGOTREF(__pyx_t_6);
            __pyx_t_5 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (__pyx_t_11 < 0) __PYX_ERR(1, 132, __pyx_L10_except_error)
            __pyx_t_2 = (!__pyx_t_11);
            if (unlikely(__pyx_t_2)) {
              __Pyx_GIVEREF(__pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_1);
              __Pyx_XGIVEREF(__pyx_t_6);
              __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_6);
              __pyx_t_3 = 0;  __pyx_t_1 = 0;  __pyx_t_6 = 0; 
              __PYX_ERR(1, 132, __pyx_L10_except_error)
            }
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            goto __pyx_L9_exception_handled;
          }
          __pyx_L10_except_error:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L1_error;
          __pyx_L12_try_return:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          goto __pyx_L5_return;
          __pyx_L9_exception_handled:;
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
          __pyx_L13_try_end:;
        }
      }
      /*finally:*/ {
        /*normal exit:*/{
          if (__pyx_t_4) {
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 132, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          }
          goto __pyx_L7;
        }
        __pyx_L5_return: {
          __pyx_t_10 = __pyx_r;
          __pyx_r = 0;
          if (__pyx_t_4) {
            __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[0], NULL);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 132, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_r = __pyx_t_10;
          __pyx_t_10 = 0;
          goto __pyx_L0;
        }
        __pyx_L7:;
      }
      goto __pyx_L19;
      __pyx_L4_error:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L1_error;
      __pyx_L19:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":131
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         with _fork_state.fork_in_progress_condition:
 *             if not _fork_state.fork_in_progress:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.block_if_fork_in_progress", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_101enter_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_101enter_user_request_generator = {"enter_user_request_generator", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_101enter_user_request_generator, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_101enter_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enter_user_request_generator (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_100enter_user_request_generator(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_100enter_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("enter_user_request_generator", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":143
 * 
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.decrement()
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":144
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decrement, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":143
 * 
 * def enter_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.decrement()
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.enter_user_request_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_103return_from_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_103return_from_user_request_generator = {"return_from_user_request_generator", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_103return_from_user_request_generator, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_103return_from_user_request_generator(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("return_from_user_request_generator (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_102return_from_user_request_generator(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_102return_from_user_request_generator(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("return_from_user_request_generator", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":148
 * 
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":149
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()             # <<<<<<<<<<<<<<
 *         block_if_fork_in_progress()
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_active_thread_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_increment, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":150
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_block_if_fork_in_progress); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 150, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":148
 * 
 * def return_from_user_request_generator():
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.active_thread_count.increment()
 *         block_if_fork_in_progress()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.return_from_user_request_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_105get_fork_epoch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_105get_fork_epoch = {"get_fork_epoch", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_105get_fork_epoch, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_105get_fork_epoch(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_fork_epoch (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_104get_fork_epoch(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_104get_fork_epoch(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_fork_epoch", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":154
 * 
 * def get_fork_epoch():
 *     return _fork_state.fork_epoch             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fork_epoch); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_fork_epoch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_107is_fork_support_enabled(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_107is_fork_support_enabled = {"is_fork_support_enabled", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_107is_fork_support_enabled, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_107is_fork_support_enabled(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_fork_support_enabled (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_106is_fork_support_enabled(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_106is_fork_support_enabled(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_fork_support_enabled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":158
 * 
 * def is_fork_support_enabled():
 *     return _GRPC_ENABLE_FORK_SUPPORT             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.is_fork_support_enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_109fork_register_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_109fork_register_channel = {"fork_register_channel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_109fork_register_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_109fork_register_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_register_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 161, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 161, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fork_register_channel", 0) < 0) __PYX_ERR(1, 161, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fork_register_channel", 1, 1, 1, i); __PYX_ERR(1, 161, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 161, __pyx_L3_error)
    }
    __pyx_v_channel = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fork_register_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 161, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_register_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_108fork_register_channel(__pyx_self, __pyx_v_channel);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_108fork_register_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_register_channel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":162
 * 
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.add(channel)
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":163
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_channels); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_channel};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":162
 * 
 * def fork_register_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.add(channel)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_register_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_111fork_unregister_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_111fork_unregister_channel = {"fork_unregister_channel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_111fork_unregister_channel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_111fork_unregister_channel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_channel = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fork_unregister_channel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 166, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 166, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "fork_unregister_channel", 0) < 0) __PYX_ERR(1, 166, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("fork_unregister_channel", 1, 1, 1, i); __PYX_ERR(1, 166, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 166, __pyx_L3_error)
    }
    __pyx_v_channel = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fork_unregister_channel", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 166, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_unregister_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_110fork_unregister_channel(__pyx_self, __pyx_v_channel);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_110fork_unregister_channel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_channel) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fork_unregister_channel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":167
 * 
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.discard(channel)
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":168
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fork_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_channels); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_channel};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_discard, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 168, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":167
 * 
 * def fork_unregister_channel(channel):
 *     if _GRPC_ENABLE_FORK_SUPPORT:             # <<<<<<<<<<<<<<
 *         _fork_state.channels.discard(channel)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.fork_unregister_channel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 172, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 172, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(1, 172, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 172, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 172, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 172, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":173
 * class _ActiveThreadCount(object):
 *     def __init__(self):
 *         self._num_active_threads = 0             # <<<<<<<<<<<<<<
 *         self._condition = threading.Condition()
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads, __pyx_mstate_global->__pyx_int_0) < 0) __PYX_ERR(1, 173, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":174
 *     def __init__(self):
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()             # <<<<<<<<<<<<<<
 * 
 *     def increment(self):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition, __pyx_t_1) < 0) __PYX_ERR(1, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment = {"increment", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("increment (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 176, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 176, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "increment", 0) < 0) __PYX_ERR(1, 176, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("increment", 1, 1, 1, i); __PYX_ERR(1, 176, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 176, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("increment", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 176, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_2increment(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("increment", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":177
 * 
 *     def increment(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads += 1
 * 
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 177, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 177, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":178
 *     def increment(self):
 *         with self._condition:
 *             self._num_active_threads += 1             # <<<<<<<<<<<<<<
 * 
 *     def decrement(self):
*/
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads, __pyx_t_3) < 0) __PYX_ERR(1, 178, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":177
 * 
 *     def increment(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads += 1
 * 
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_5);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_11 < 0) __PYX_ERR(1, 177, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_11);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_5);
            __pyx_t_3 = 0;  __pyx_t_1 = 0;  __pyx_t_5 = 0; 
            __PYX_ERR(1, 177, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L16;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L16:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.increment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement = {"decrement", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("decrement (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 180, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 180, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "decrement", 0) < 0) __PYX_ERR(1, 180, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("decrement", 1, 1, 1, i); __PYX_ERR(1, 180, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 180, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decrement", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 180, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_4decrement(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("decrement", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":181
 * 
 *     def decrement(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 181, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 181, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":182
 *     def decrement(self):
 *         with self._condition:
 *             self._num_active_threads -= 1             # <<<<<<<<<<<<<<
 *             if self._num_active_threads == 0:
 *                 self._condition.notify_all()
*/
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __Pyx_PyLong_SubtractObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads, __pyx_t_3) < 0) __PYX_ERR(1, 182, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":183
 *         with self._condition:
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                 self._condition.notify_all()
 * 
*/
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 183, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_10 = (__Pyx_PyLong_BoolEqObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 183, __pyx_L7_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_10) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":184
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
 *                 self._condition.notify_all()             # <<<<<<<<<<<<<<
 * 
 *     def await_zero_threads(self, timeout_secs):
*/
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 184, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_1 = __pyx_t_5;
            __Pyx_INCREF(__pyx_t_1);
            __pyx_t_6 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
              __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_notify_all, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 184, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":183
 *         with self._condition:
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                 self._condition.notify_all()
 * 
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":181
 * 
 *     def decrement(self):
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             self._num_active_threads -= 1
 *             if self._num_active_threads == 0:
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_3);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(1, 181, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_10);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_1);
            __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_5, __pyx_t_1);
            __pyx_t_3 = 0;  __pyx_t_5 = 0;  __pyx_t_1 = 0; 
            __PYX_ERR(1, 181, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_2) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 181, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.decrement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads = {"await_zero_threads", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_timeout_secs = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("await_zero_threads (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_timeout_secs,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 186, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "await_zero_threads", 0) < 0) __PYX_ERR(1, 186, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("await_zero_threads", 1, 2, 2, i); __PYX_ERR(1, 186, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_timeout_secs = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("await_zero_threads", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 186, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(__pyx_self, __pyx_v_self, __pyx_v_timeout_secs);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_6await_zero_threads(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timeout_secs) {
  PyObject *__pyx_v_end_time = NULL;
  PyObject *__pyx_v_wait_time = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("await_zero_threads", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":187
 * 
 *     def await_zero_threads(self, timeout_secs):
 *         end_time = time.time() + timeout_secs             # <<<<<<<<<<<<<<
 *         wait_time = timeout_secs
 *         with self._condition:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_timeout_secs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_end_time = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":188
 *     def await_zero_threads(self, timeout_secs):
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             while True:
*/
  __Pyx_INCREF(__pyx_v_timeout_secs);
  __pyx_v_wait_time = __pyx_v_timeout_secs;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":189
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             while True:
 *                 if self._num_active_threads > 0:
*/
  /*with:*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 189, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = NULL;
    __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 189, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 189, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":190
 *         wait_time = timeout_secs
 *         with self._condition:
 *             while True:             # <<<<<<<<<<<<<<
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
*/
          while (1) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":191
 *         with self._condition:
 *             while True:
 *                 if self._num_active_threads > 0:             # <<<<<<<<<<<<<<
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
*/
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_mstate_global->__pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 191, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":192
 *             while True:
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)             # <<<<<<<<<<<<<<
 *                 if self._num_active_threads == 0:
 *                     return True
*/
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_4 = __pyx_t_3;
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_5 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_wait_time};
                __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_wait, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 192, __pyx_L7_error)
                __Pyx_GOTREF(__pyx_t_1);
              }
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":191
 *         with self._condition:
 *             while True:
 *                 if self._num_active_threads > 0:             # <<<<<<<<<<<<<<
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":193
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                     return True
 *                 # Thread count may have increased before this re-obtains the
*/
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_num_active_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 193, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_10 = (__Pyx_PyLong_BoolEqObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 193, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":194
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:
 *                     return True             # <<<<<<<<<<<<<<
 *                 # Thread count may have increased before this re-obtains the
 *                 # lock after a notify(). Wait again until timeout_secs has
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_True);
              __pyx_r = Py_True;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":193
 *                 if self._num_active_threads > 0:
 *                     self._condition.wait(wait_time)
 *                 if self._num_active_threads == 0:             # <<<<<<<<<<<<<<
 *                     return True
 *                 # Thread count may have increased before this re-obtains the
*/
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":198
 *                 # lock after a notify(). Wait again until timeout_secs has
 *                 # elapsed.
 *                 wait_time = end_time - time.time()             # <<<<<<<<<<<<<<
 *                 if wait_time <= 0:
 *                     return False
*/
            __pyx_t_3 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_5 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
              assert(__pyx_t_3);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
              __pyx_t_5 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
              __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 198, __pyx_L7_error)
              __Pyx_GOTREF(__pyx_t_1);
            }
            __pyx_t_2 = PyNumber_Subtract(__pyx_v_end_time, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 198, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF_SET(__pyx_v_wait_time, __pyx_t_2);
            __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":199
 *                 # elapsed.
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:             # <<<<<<<<<<<<<<
 *                     return False
 * 
*/
            __pyx_t_2 = PyObject_RichCompare(__pyx_v_wait_time, __pyx_mstate_global->__pyx_int_0, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 199, __pyx_L7_error)
            __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 199, __pyx_L7_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (__pyx_t_10) {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":200
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:
 *                     return False             # <<<<<<<<<<<<<<
 * 
 * 
*/
              __Pyx_XDECREF(__pyx_r);
              __Pyx_INCREF(Py_False);
              __pyx_r = Py_False;
              goto __pyx_L11_try_return;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":199
 *                 # elapsed.
 *                 wait_time = end_time - time.time()
 *                 if wait_time <= 0:             # <<<<<<<<<<<<<<
 *                     return False
 * 
*/
            }
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":189
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
 *         with self._condition:             # <<<<<<<<<<<<<<
 *             while True:
 *                 if self._num_active_threads > 0:
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_1);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(1, 189, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_10);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_1);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3);
            __pyx_t_2 = 0;  __pyx_t_1 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(1, 189, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L11_try_return:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L4_return;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_6) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 189, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L4_return: {
        __pyx_t_9 = __pyx_r;
        __pyx_r = 0;
        if (__pyx_t_6) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 189, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_r = __pyx_t_9;
        __pyx_t_9 = 0;
        goto __pyx_L0;
      }
      __pyx_L6:;
    }
    goto __pyx_L21;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L1_error;
    __pyx_L21:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ActiveThreadCount.await_zero_threads", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_end_time);
  __Pyx_XDECREF(__pyx_v_wait_time);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10_ForkState_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10_ForkState_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 204, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 204, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(1, 204, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 204, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 204, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 204, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ForkState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10_ForkState___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":205
 * class _ForkState(object):
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()             # <<<<<<<<<<<<<<
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 205, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_fork_in_progress_condition, __pyx_t_1) < 0) __PYX_ERR(1, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":206
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False             # <<<<<<<<<<<<<<
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_fork_in_progress, Py_False) < 0) __PYX_ERR(1, 206, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":207
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []             # <<<<<<<<<<<<<<
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_postfork_states_to_reset, __pyx_t_1) < 0) __PYX_ERR(1, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":208
 *         self.fork_in_progress = False
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()             # <<<<<<<<<<<<<<
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_fork_handler_registered_lock, __pyx_t_1) < 0) __PYX_ERR(1, 208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":209
 *         self.postfork_states_to_reset = []
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False             # <<<<<<<<<<<<<<
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_fork_handler_registered, Py_False) < 0) __PYX_ERR(1, 209, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":210
 *         self.fork_handler_registered_lock = threading.Lock()
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()             # <<<<<<<<<<<<<<
 *         self.fork_epoch = 0
 *         self.channels = set()
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 210, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_active_thread_count, __pyx_t_1) < 0) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":211
 *         self.fork_handler_registered = False
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0             # <<<<<<<<<<<<<<
 *         self.channels = set()
 * 
*/
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_fork_epoch, __pyx_mstate_global->__pyx_int_0) < 0) __PYX_ERR(1, 211, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":212
 *         self.active_thread_count = _ActiveThreadCount()
 *         self.fork_epoch = 0
 *         self.channels = set()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_channels, __pyx_t_1) < 0) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ForkState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":22
 * 
 * 
 * cdef grpc_status_code get_status_code(object code) except *:             # <<<<<<<<<<<<<<
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
*/

static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(PyObject *__pyx_v_code) {
  grpc_status_code __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  grpc_status_code __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_status_code", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":23
 * 
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):             # <<<<<<<<<<<<<<
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code
*/
  __pyx_t_1 = PyLong_Check(__pyx_v_code); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":24
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:             # <<<<<<<<<<<<<<
 *             return code
 *         else:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_code, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
    } else {
      __pyx_t_1 = __pyx_t_4;
      goto __pyx_L5_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_data_loss); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_code, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(6, 24, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_t_4;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":25
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code             # <<<<<<<<<<<<<<
 *         else:
 *             return StatusCode.unknown
*/
      __pyx_t_5 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_v_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 25, __pyx_L1_error)
      __pyx_r = __pyx_t_5;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":24
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:             # <<<<<<<<<<<<<<
 *             return code
 *         else:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":27
 *             return code
 *         else:
 *             return StatusCode.unknown             # <<<<<<<<<<<<<<
 *     else:
 *         try:
*/
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_unknown); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 27, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_r = __pyx_t_5;
      goto __pyx_L0;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":23
 * 
 * cdef grpc_status_code get_status_code(object code) except *:
 *     if isinstance(code, int):             # <<<<<<<<<<<<<<
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
 *             return code
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
*/
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":30
 *     else:
 *         try:
 *             return code.value[0]             # <<<<<<<<<<<<<<
 *         except (KeyError, AttributeError):
 *             return StatusCode.unknown
*/
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_code, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 30, __pyx_L7_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        goto __pyx_L11_try_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
*/
      }
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":31
 *         try:
 *             return code.value[0]
 *         except (KeyError, AttributeError):             # <<<<<<<<<<<<<<
 *             return StatusCode.unknown
 * 
*/
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_KeyError, __pyx_builtin_AttributeError);
      if (__pyx_t_9) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.get_status_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_10) < 0) __PYX_ERR(6, 31, __pyx_L9_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_3);
        __Pyx_XGOTREF(__pyx_t_10);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":32
 *             return code.value[0]
 *         except (KeyError, AttributeError):
 *             return StatusCode.unknown             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_unknown); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_5 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_12)); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 32, __pyx_L9_except_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L10_except_return;
      }
      goto __pyx_L9_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":29
 *             return StatusCode.unknown
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return code.value[0]
 *         except (KeyError, AttributeError):
*/
      __pyx_L9_except_error:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L11_try_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
      __pyx_L10_except_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":22
 * 
 * 
 * cdef grpc_status_code get_status_code(object code) except *:             # <<<<<<<<<<<<<<
 *     if isinstance(code, int):
 *         if code >= StatusCode.ok and code <= StatusCode.data_loss:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_status_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (grpc_status_code) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":35
 * 
 * 
 * cdef object deserialize(object deserializer, bytes raw_message):             # <<<<<<<<<<<<<<
 *     """Perform deserialization on raw bytes.
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_deserialize(PyObject *__pyx_v_deserializer, PyObject *__pyx_v_raw_message) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deserialize", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":40
 *     Failure to deserialize is a fatal error.
 *     """
 *     if deserializer:             # <<<<<<<<<<<<<<
 *         return deserializer(raw_message)
 *     else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_deserializer); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 40, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":41
 *     """
 *     if deserializer:
 *         return deserializer(raw_message)             # <<<<<<<<<<<<<<
 *     else:
 *         return raw_message
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_v_deserializer);
    __pyx_t_4 = __pyx_v_deserializer; 
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_raw_message};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 41, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":40
 *     Failure to deserialize is a fatal error.
 *     """
 *     if deserializer:             # <<<<<<<<<<<<<<
 *         return deserializer(raw_message)
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":43
 *         return deserializer(raw_message)
 *     else:
 *         return raw_message             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_raw_message);
    __pyx_r = __pyx_v_raw_message;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":35
 * 
 * 
 * cdef object deserialize(object deserializer, bytes raw_message):             # <<<<<<<<<<<<<<
 *     """Perform deserialization on raw bytes.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":46
 * 
 * 
 * cdef bytes serialize(object serializer, object message):             # <<<<<<<<<<<<<<
 *     """Perform serialization on a message.
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_serialize(PyObject *__pyx_v_serializer, PyObject *__pyx_v_message) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("serialize", 0);
  __Pyx_INCREF(__pyx_v_message);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":51
 *     Failure to serialize is a fatal error.
 *     """
 *     if isinstance(message, str):             # <<<<<<<<<<<<<<
 *         message = message.encode('utf-8')
 *     if serializer:
*/
  __pyx_t_1 = PyUnicode_Check(__pyx_v_message); 
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":52
 *     """
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')             # <<<<<<<<<<<<<<
 *     if serializer:
 *         return serializer(message)
*/
    __pyx_t_3 = __pyx_v_message;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 52, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":51
 *     Failure to serialize is a fatal error.
 *     """
 *     if isinstance(message, str):             # <<<<<<<<<<<<<<
 *         message = message.encode('utf-8')
 *     if serializer:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":53
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')
 *     if serializer:             # <<<<<<<<<<<<<<
 *         return serializer(message)
 *     else:
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_serializer); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(6, 53, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":54
 *         message = message.encode('utf-8')
 *     if serializer:
 *         return serializer(message)             # <<<<<<<<<<<<<<
 *     else:
 *         return message
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_v_serializer);
    __pyx_t_5 = __pyx_v_serializer; 
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_message};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 54, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(6, 54, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":53
 *     if isinstance(message, str):
 *         message = message.encode('utf-8')
 *     if serializer:             # <<<<<<<<<<<<<<
 *         return serializer(message)
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":56
 *         return serializer(message)
 *     else:
 *         return message             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (!(likely(PyBytes_CheckExact(__pyx_v_message))||((__pyx_v_message) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_message))) __PYX_ERR(6, 56, __pyx_L1_error)
    __Pyx_INCREF(__pyx_v_message);
    __pyx_r = ((PyObject*)__pyx_v_message);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":46
 * 
 * 
 * cdef bytes serialize(object serializer, object message):             # <<<<<<<<<<<<<<
 *     """Perform serialization on a message.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_message);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_1__bool__ = {"__bool__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_1__bool__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 61, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 61, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__bool__", 0) < 0) __PYX_ERR(6, 61, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__bool__", 1, 1, 1, i); __PYX_ERR(6, 61, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 61, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__bool__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 61, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF___bool__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":62
 * 
 *     def __bool__(self):
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_3__len__ = {"__len__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_3__len__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 64, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 64, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__len__", 0) < 0) __PYX_ERR(6, 64, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__len__", 1, 1, 1, i); __PYX_ERR(6, 64, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 64, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__len__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 64, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_2__len__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":65
 * 
 *     def __len__(self):
 *         return 0             # <<<<<<<<<<<<<<
 * 
 *     def _repr(self) -> str:
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0);
  __pyx_r = __pyx_mstate_global->__pyx_int_0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_5_repr = {"_repr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_5_repr(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 67, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 67, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_repr", 0) < 0) __PYX_ERR(6, 67, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_repr", 1, 1, 1, i); __PYX_ERR(6, 67, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 67, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_repr", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF._repr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_4_repr(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":68
 * 
 *     def _repr(self) -> str:
 *         return '<grpc.aio.EOF>'             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self) -> str:
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_grpc_aio_EOF);
  __pyx_r = __pyx_mstate_global->__pyx_kp_u_grpc_aio_EOF;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_7__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_7__repr__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 70, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 70, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < 0) __PYX_ERR(6, 70, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(6, 70, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 70, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 70, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_6__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":71
 * 
 *     def __repr__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self) -> str:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_repr, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 71, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(6, 71, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_9__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_4_EOF_9__str__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 73, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 73, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < 0) __PYX_ERR(6, 73, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(6, 73, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 73, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 73, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(__pyx_self, __pyx_v_self);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_4_EOF_8__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":74
 * 
 *     def __str__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_repr, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(6, 74, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._EOF.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_113schedule_coro_threadsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_113schedule_coro_threadsafe = {"schedule_coro_threadsafe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_113schedule_coro_threadsafe, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_113schedule_coro_threadsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_coro = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("schedule_coro_threadsafe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_coro,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 110, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 110, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 110, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "schedule_coro_threadsafe", 0) < 0) __PYX_ERR(6, 110, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("schedule_coro_threadsafe", 1, 2, 2, i); __PYX_ERR(6, 110, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 110, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 110, __pyx_L3_error)
    }
    __pyx_v_coro = values[0];
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("schedule_coro_threadsafe", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 110, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_112schedule_coro_threadsafe(__pyx_self, __pyx_v_coro, __pyx_v_loop);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_112schedule_coro_threadsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_coro, PyObject *__pyx_v_loop) {
  PyObject *__pyx_v_runtime_error = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  char const *__pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("schedule_coro_threadsafe", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":112
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:
 *         return loop.create_task(coro)             # <<<<<<<<<<<<<<
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __pyx_v_loop;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_coro};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 112, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":113
 *     try:
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:             # <<<<<<<<<<<<<<
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_RuntimeError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(6, 113, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_5);
      __pyx_v_runtime_error = __pyx_t_5;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":114
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):             # <<<<<<<<<<<<<<
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
*/
        __pyx_t_9 = __Pyx_PyObject_Unicode(__pyx_v_runtime_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 114, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = (__Pyx_PyUnicode_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Non_thread_safe_operation, __pyx_t_9, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(6, 114, __pyx_L14_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (likely(__pyx_t_10)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":115
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *                 coro,
 *                 loop,
*/
          __Pyx_XDECREF(__pyx_r);
          __pyx_t_11 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 115, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 115, __pyx_L14_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":117
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
 *                 loop,             # <<<<<<<<<<<<<<
 *             )
 *         else:
*/
          __pyx_t_6 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_13);
            assert(__pyx_t_11);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
            __pyx_t_6 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_v_coro, __pyx_v_loop};
            __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 115, __pyx_L14_error)
            __Pyx_GOTREF(__pyx_t_9);
          }
          __pyx_r = __pyx_t_9;
          __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L13_return;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":114
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
 *         if 'Non-thread-safe operation' in str(runtime_error):             # <<<<<<<<<<<<<<
 *             return asyncio.run_coroutine_threadsafe(
 *                 coro,
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":120
 *             )
 *         else:
 *             raise             # <<<<<<<<<<<<<<
 * 
 * 
*/
        /*else*/ {
          __Pyx_GIVEREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_8);
          __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_5, __pyx_t_8);
          __pyx_t_4 = 0;  __pyx_t_5 = 0;  __pyx_t_8 = 0; 
          __PYX_ERR(6, 120, __pyx_L14_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":113
 *     try:
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:             # <<<<<<<<<<<<<<
 *         if 'Non-thread-safe operation' in str(runtime_error):
 *             return asyncio.run_coroutine_threadsafe(
*/
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_7 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_runtime_error); __pyx_v_runtime_error = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
          goto __pyx_L5_except_error;
        }
        __pyx_L13_return: {
          __pyx_t_21 = __pyx_r;
          __pyx_r = 0;
          __Pyx_DECREF(__pyx_v_runtime_error); __pyx_v_runtime_error = 0;
          __pyx_r = __pyx_t_21;
          __pyx_t_21 = 0;
          goto __pyx_L6_except_return;
        }
      }
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":111
 * 
 * def schedule_coro_threadsafe(object coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         return loop.create_task(coro)
 *     except RuntimeError as runtime_error:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("grpc._cython.cygrpc.schedule_coro_threadsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_runtime_error);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_116generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_115async_generator_to_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_114async_generator_to_generator, "Converts an async generator into generator.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_115async_generator_to_generator = {"async_generator_to_generator", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_115async_generator_to_generator, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_114async_generator_to_generator};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_115async_generator_to_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_agen = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("async_generator_to_generator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_agen,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 123, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 123, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 123, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "async_generator_to_generator", 0) < 0) __PYX_ERR(6, 123, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("async_generator_to_generator", 1, 2, 2, i); __PYX_ERR(6, 123, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 123, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 123, __pyx_L3_error)
    }
    __pyx_v_agen = values[0];
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("async_generator_to_generator", 1, 2, 2, __pyx_nargs); __PYX_ERR(6, 123, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_114async_generator_to_generator(__pyx_self, __pyx_v_agen, __pyx_v_loop);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_114async_generator_to_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_agen, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("async_generator_to_generator", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(6, 123, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_agen = __pyx_v_agen;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_agen);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_agen);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_116generator, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(6, 123, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_116generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("async_generator_to_generator", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L13_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
    __PYX_ERR(6, 123, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":126
 *     """Converts an async generator into generator."""
 *     try:
 *         while True:             # <<<<<<<<<<<<<<
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),
*/
      while (1) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":127
 *     try:
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *                 agen.__anext__(),
 *                 loop
*/
        __pyx_t_5 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 127, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 127, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":128
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),             # <<<<<<<<<<<<<<
 *                 loop
 *             )
*/
        __pyx_t_8 = __pyx_cur_scope->__pyx_v_agen;
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_9 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
          __pyx_t_6 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_anext, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 128, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_6);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":129
 *             future = asyncio.run_coroutine_threadsafe(
 *                 agen.__anext__(),
 *                 loop             # <<<<<<<<<<<<<<
 *             )
 *             response = future.result()
*/
        __pyx_t_9 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
          assert(__pyx_t_5);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
          __pyx_t_9 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_loop};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 127, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_future);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_future, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":131
 *                 loop
 *             )
 *             response = future.result()             # <<<<<<<<<<<<<<
 *             if response is EOF:
 *                 break
*/
        __pyx_t_7 = __pyx_cur_scope->__pyx_v_future;
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_9 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
          __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_result, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 131, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_4 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":132
 *             )
 *             response = future.result()
 *             if response is EOF:             # <<<<<<<<<<<<<<
 *                 break
 *             else:
*/
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 132, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = (__pyx_cur_scope->__pyx_v_response == __pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_10) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":133
 *             response = future.result()
 *             if response is EOF:
 *                 break             # <<<<<<<<<<<<<<
 *             else:
 *                 yield response
*/
          goto __pyx_L11_break;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":132
 *             )
 *             response = future.result()
 *             if response is EOF:             # <<<<<<<<<<<<<<
 *                 break
 *             else:
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":135
 *                 break
 *             else:
 *                 yield response             # <<<<<<<<<<<<<<
 *     except StopAsyncIteration:
 *         # If StopAsyncIteration is raised, end this generator.
*/
        /*else*/ {
          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response);
          __pyx_r = __pyx_cur_scope->__pyx_v_response;
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, yielding value */
          __pyx_generator->resume_label = 1;
          return __pyx_r;
          __pyx_L13_resume_from_yield:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 135, __pyx_L4_error)
        }
      }
      __pyx_L11_break:;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":136
 *             else:
 *                 yield response
 *     except StopAsyncIteration:             # <<<<<<<<<<<<<<
 *         # If StopAsyncIteration is raised, end this generator.
 *         pass
*/
    __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_StopAsyncIteration);
    if (__pyx_t_11) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":125
 * def async_generator_to_generator(object agen, object loop):
 *     """Converts an async generator into generator."""
 *     try:             # <<<<<<<<<<<<<<
 *         while True:
 *             future = asyncio.run_coroutine_threadsafe(
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("async_generator_to_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_119generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_118generator_to_async_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_117generator_to_async_generator, "Converts a generator into async generator.\n\n    The generator might block, so we need to delegate the iteration to thread\n    pool. Also, we can't simply delegate __next__ to the thread pool, otherwise\n    we will see following error:\n\n        TypeError: StopIteration interacts badly with generators and cannot be\n            raised into a Future\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_118generator_to_async_generator = {"generator_to_async_generator", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_118generator_to_async_generator, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_117generator_to_async_generator};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_118generator_to_async_generator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_thread_pool = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("generator_to_async_generator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_gen,&__pyx_mstate_global->__pyx_n_u_loop,&__pyx_mstate_global->__pyx_n_u_thread_pool,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 141, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 141, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 141, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 141, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "generator_to_async_generator", 0) < 0) __PYX_ERR(6, 141, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("generator_to_async_generator", 1, 3, 3, i); __PYX_ERR(6, 141, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 141, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(6, 141, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(6, 141, __pyx_L3_error)
    }
    __pyx_v_gen = values[0];
    __pyx_v_loop = values[1];
    __pyx_v_thread_pool = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("generator_to_async_generator", 1, 3, 3, __pyx_nargs); __PYX_ERR(6, 141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_117generator_to_async_generator(__pyx_self, __pyx_v_gen, __pyx_v_loop, __pyx_v_thread_pool);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_117generator_to_async_generator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("generator_to_async_generator", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(6, 141, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_gen = __pyx_v_gen;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_gen);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_gen);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  __pyx_cur_scope->__pyx_v_thread_pool = __pyx_v_thread_pool;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_thread_pool);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_thread_pool);
  {
    __pyx_CoroutineObject *gen = __Pyx_AsyncGen_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_119generator1, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(6, 141, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue = {"yield_to_queue", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue, METH_NOARGS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("yield_to_queue (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_28generator_to_async_generator_yield_to_queue(PyObject *__pyx_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_outer_scope;
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  int __pyx_t_12;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yield_to_queue", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":154
 * 
 *     def yield_to_queue():
 *         try:             # <<<<<<<<<<<<<<
 *             for item in gen:
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
*/
  /*try:*/ {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":155
 *     def yield_to_queue():
 *         try:
 *             for item in gen:             # <<<<<<<<<<<<<<
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
*/
    if (unlikely(!__pyx_cur_scope->__pyx_v_gen)) { __Pyx_RaiseClosureNameError("gen"); __PYX_ERR(6, 155, __pyx_L4_error) }
    if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_gen)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_gen)) {
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_gen; __Pyx_INCREF(__pyx_t_1);
      __pyx_t_2 = 0;
      __pyx_t_3 = NULL;
    } else {
      __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_gen); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 155, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 155, __pyx_L4_error)
    }
    for (;;) {
      if (likely(!__pyx_t_3)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
            #endif
            if (__pyx_t_2 >= __pyx_temp) break;
          }
          __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_2);
          ++__pyx_t_2;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 155, __pyx_L4_error)
            #endif
            if (__pyx_t_2 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
          #else
          __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
          #endif
          ++__pyx_t_2;
        }
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 155, __pyx_L4_error)
      } else {
        __pyx_t_4 = __pyx_t_3(__pyx_t_1);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(6, 155, __pyx_L4_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":156
 *         try:
 *             for item in gen:
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()             # <<<<<<<<<<<<<<
 *         finally:
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()
*/
      __pyx_t_7 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 156, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 156, __pyx_L4_error) }
      __pyx_t_10 = __pyx_cur_scope->__pyx_v_queue;
      __Pyx_INCREF(__pyx_t_10);
      __pyx_t_11 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_item};
        __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 156, __pyx_L4_error) }
      __pyx_t_11 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
        assert(__pyx_t_7);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
        __pyx_t_11 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __pyx_t_5 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_11 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_result, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 156, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":155
 *     def yield_to_queue():
 *         try:
 *             for item in gen:             # <<<<<<<<<<<<<<
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
*/
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":158
 *                 asyncio.run_coroutine_threadsafe(queue.put(item), loop).result()
 *         finally:
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()             # <<<<<<<<<<<<<<
 * 
 *     future = loop.run_in_executor(
*/
  /*finally:*/ {
    /*normal exit:*/{
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 158, __pyx_L1_error) }
      __pyx_t_7 = __pyx_cur_scope->__pyx_v_queue;
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_10};
        __pyx_t_9 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 158, __pyx_L1_error) }
      __pyx_t_11 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_11 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_9, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __pyx_t_4 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_11 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_result, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
      if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_15);
      __Pyx_XGOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_18);
      __Pyx_XGOTREF(__pyx_t_19);
      __Pyx_XGOTREF(__pyx_t_20);
      __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
      {
        __pyx_t_8 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_cur_scope->__pyx_v_queue)) { __Pyx_RaiseClosureNameError("queue"); __PYX_ERR(6, 158, __pyx_L10_error) }
        __pyx_t_10 = __pyx_cur_scope->__pyx_v_queue;
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 158, __pyx_L10_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_put, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        if (unlikely(!__pyx_cur_scope->__pyx_v_loop)) { __Pyx_RaiseClosureNameError("loop"); __PYX_ERR(6, 158, __pyx_L10_error) }
        __pyx_t_11 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
          assert(__pyx_t_8);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
          __pyx_t_11 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_9, __pyx_cur_scope->__pyx_v_loop};
          __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_4);
        }
        __pyx_t_6 = __pyx_t_4;
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_11 = 0;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_result, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 158, __pyx_L10_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_XGIVEREF(__pyx_t_19);
      __Pyx_XGIVEREF(__pyx_t_20);
      __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
      __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
      __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
      goto __pyx_L1_error;
      __pyx_L10_error:;
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_XGIVEREF(__pyx_t_19);
      __Pyx_XGIVEREF(__pyx_t_20);
      __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.generator_to_async_generator.yield_to_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
*/

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_119generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("generator_to_async_generator", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_await;
    case 2: goto __pyx_L8_resume_from_yield;
    case 3: goto __pyx_L9_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started async generator");
    __PYX_ERR(6, 141, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":151
 *             raised into a Future
 *     """
 *     queue = asyncio.Queue(maxsize=1)             # <<<<<<<<<<<<<<
 * 
 *     def yield_to_queue():
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Queue); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_3 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_maxsize, __pyx_mstate_global->__pyx_int_1, __pyx_t_3, __pyx_callargs+1, 0) < 0) __PYX_ERR(6, 151, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_queue = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":153
 *     queue = asyncio.Queue(maxsize=1)
 * 
 *     def yield_to_queue():             # <<<<<<<<<<<<<<
 *         try:
 *             for item in gen:
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28generator_to_async_generator_1yield_to_queue, 0, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator_loc, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_yield_to_queue = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":160
 *             asyncio.run_coroutine_threadsafe(queue.put(EOF), loop).result()
 * 
 *     future = loop.run_in_executor(             # <<<<<<<<<<<<<<
 *         thread_pool,
 *         yield_to_queue,
*/
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_loop;
  __Pyx_INCREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":162
 *     future = loop.run_in_executor(
 *         thread_pool,
 *         yield_to_queue,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_thread_pool, __pyx_cur_scope->__pyx_v_yield_to_queue};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_run_in_executor, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":165
 *     )
 * 
 *     while True:             # <<<<<<<<<<<<<<
 *         response = await queue.get()
 *         if response is EOF:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":166
 * 
 *     while True:
 *         response = await queue.get()             # <<<<<<<<<<<<<<
 *         if response is EOF:
 *             break
*/
    __pyx_t_4 = __pyx_cur_scope->__pyx_v_queue;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 166, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(6, 166, __pyx_L1_error)
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":167
 *     while True:
 *         response = await queue.get()
 *         if response is EOF:             # <<<<<<<<<<<<<<
 *             break
 *         else:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = (__pyx_cur_scope->__pyx_v_response == __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_7) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":168
 *         response = await queue.get()
 *         if response is EOF:
 *             break             # <<<<<<<<<<<<<<
 *         else:
 *             yield response
*/
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":167
 *     while True:
 *         response = await queue.get()
 *         if response is EOF:             # <<<<<<<<<<<<<<
 *             break
 *         else:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":170
 *             break
 *         else:
 *             yield response             # <<<<<<<<<<<<<<
 * 
 *     # Port the exception if there is any
*/
    /*else*/ {
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response);
      __pyx_r = __pyx_cur_scope->__pyx_v_response;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __Pyx__PyAsyncGenValueWrapperNew(__pyx_r);
      __pyx_L8_resume_from_yield:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 170, __pyx_L1_error)
    }
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":173
 * 
 *     # Port the exception if there is any
 *     await future             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from async generator, awaiting value */
    __pyx_generator->resume_label = 3;
    return __pyx_r;
    __pyx_L9_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(6, 173, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(6, 173, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(1);
    __Pyx_AddTraceback("generator_to_async_generator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_120get_working_loop, "Returns a running event loop.\n\n        Due to a defect of asyncio.get_event_loop, its returned event loop might\n        not be set as the default event loop for the main thread.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_121get_working_loop = {"get_working_loop", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_120get_working_loop};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_121get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_working_loop (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_120get_working_loop(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  int __pyx_t_25;
  int __pyx_t_26;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_working_loop", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":184
 *         """
 *         try:
 *             return asyncio.get_running_loop()             # <<<<<<<<<<<<<<
 *         except RuntimeError:
 *             with warnings.catch_warnings():
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 184, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_running_loop); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 184, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 184, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":185
 *         try:
 *             return asyncio.get_running_loop()
 *         except RuntimeError:             # <<<<<<<<<<<<<<
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_RuntimeError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(6, 185, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_5);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":186
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 *             with warnings.catch_warnings():             # <<<<<<<<<<<<<<
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
*/
      /*with:*/ {
        __pyx_t_10 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_catch_warnings); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_8 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_8 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
          __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 186, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_6);
        }
        __pyx_t_13 = __Pyx_PyObject_LookupSpecial(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 186, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_10 = NULL;
        __pyx_t_11 = __Pyx_PyObject_LookupSpecial(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 186, __pyx_L11_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = 1;
        #if CYTHON_UNPACK_METHODS
        if (likely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
          __pyx_t_8 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
          __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 186, __pyx_L11_error)
          __Pyx_GOTREF(__pyx_t_12);
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        /*try:*/ {
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
            __Pyx_XGOTREF(__pyx_t_14);
            __Pyx_XGOTREF(__pyx_t_15);
            __Pyx_XGOTREF(__pyx_t_16);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":188
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)             # <<<<<<<<<<<<<<
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()
*/
              __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_simplefilter); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_12);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[2], NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 188, __pyx_L17_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
*/
              {
                __Pyx_PyThreadState_declare
                __Pyx_PyThreadState_assign
                __Pyx_ExceptionSave(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
                __Pyx_XGOTREF(__pyx_t_17);
                __Pyx_XGOTREF(__pyx_t_18);
                __Pyx_XGOTREF(__pyx_t_19);
                /*try:*/ {

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":190
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()             # <<<<<<<<<<<<<<
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 *                 # current event loop.
*/
                  __Pyx_XDECREF(__pyx_r);
                  __pyx_t_10 = NULL;
                  __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_20)) __PYX_ERR(6, 190, __pyx_L25_error)
                  __Pyx_GOTREF(__pyx_t_20);
                  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_get_event_loop_policy); if (unlikely(!__pyx_t_21)) __PYX_ERR(6, 190, __pyx_L25_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                  __pyx_t_8 = 1;
                  #if CYTHON_UNPACK_METHODS
                  if (unlikely(PyMethod_Check(__pyx_t_21))) {
                    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_21);
                    assert(__pyx_t_10);
                    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_21);
                    __Pyx_INCREF(__pyx_t_10);
                    __Pyx_INCREF(__pyx__function);
                    __Pyx_DECREF_SET(__pyx_t_21, __pyx__function);
                    __pyx_t_8 = 0;
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
                    __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_21, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                    if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 190, __pyx_L25_error)
                    __Pyx_GOTREF(__pyx_t_11);
                  }
                  __pyx_t_12 = __pyx_t_11;
                  __Pyx_INCREF(__pyx_t_12);
                  __pyx_t_8 = 0;
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
                    __pyx_t_6 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_get_event_loop, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                    if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 190, __pyx_L25_error)
                    __Pyx_GOTREF(__pyx_t_6);
                  }
                  __pyx_r = __pyx_t_6;
                  __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  goto __pyx_L29_try_return;

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
*/
                }
                __pyx_L25_error:;
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
                __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
                __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":193
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
 *                 # current event loop.
 *                 except DeprecationWarning:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
*/
                __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_DeprecationWarning);
                if (__pyx_t_9) {
                  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
                  if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_11, &__pyx_t_12) < 0) __PYX_ERR(6, 193, __pyx_L27_except_error)
                  __Pyx_XGOTREF(__pyx_t_6);
                  __Pyx_XGOTREF(__pyx_t_11);
                  __Pyx_XGOTREF(__pyx_t_12);

                  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":194
 *                 # current event loop.
 *                 except DeprecationWarning:
 *                     return asyncio.get_event_loop_policy().new_event_loop()             # <<<<<<<<<<<<<<
 * else:
 *     def get_working_loop():
*/
                  __Pyx_XDECREF(__pyx_r);
                  __pyx_t_22 = NULL;
                  __Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_23)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_get_event_loop_policy); if (unlikely(!__pyx_t_24)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_8 = 1;
                  #if CYTHON_UNPACK_METHODS
                  if (unlikely(PyMethod_Check(__pyx_t_24))) {
                    __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_24);
                    assert(__pyx_t_22);
                    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_24);
                    __Pyx_INCREF(__pyx_t_22);
                    __Pyx_INCREF(__pyx__function);
                    __Pyx_DECREF_SET(__pyx_t_24, __pyx__function);
                    __pyx_t_8 = 0;
                  }
                  #endif
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_22, NULL};
                    __pyx_t_20 = __Pyx_PyObject_FastCall(__pyx_t_24, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                    if (unlikely(!__pyx_t_20)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                    __Pyx_GOTREF(__pyx_t_20);
                  }
                  __pyx_t_10 = __pyx_t_20;
                  __Pyx_INCREF(__pyx_t_10);
                  __pyx_t_8 = 0;
                  {
                    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
                    __pyx_t_21 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new_event_loop, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                    if (unlikely(!__pyx_t_21)) __PYX_ERR(6, 194, __pyx_L27_except_error)
                    __Pyx_GOTREF(__pyx_t_21);
                  }
                  __pyx_r = __pyx_t_21;
                  __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
                  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                  goto __pyx_L28_except_return;
                }
                goto __pyx_L27_except_error;

                /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":189
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
 *                 try:             # <<<<<<<<<<<<<<
 *                     return asyncio.get_event_loop_policy().get_event_loop()
 *                 # Since version 3.12, DeprecationWarning is emitted if there is no
*/
                __pyx_L27_except_error:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L17_error;
                __pyx_L29_try_return:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L21_try_return;
                __pyx_L28_except_return:;
                __Pyx_XGIVEREF(__pyx_t_17);
                __Pyx_XGIVEREF(__pyx_t_18);
                __Pyx_XGIVEREF(__pyx_t_19);
                __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                goto __pyx_L21_try_return;
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":186
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
 *             with warnings.catch_warnings():             # <<<<<<<<<<<<<<
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)
*/
            }
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            /*except:*/ {
              __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_11, &__pyx_t_6) < 0) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_XGOTREF(__pyx_t_12);
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_6);
              __pyx_t_21 = PyTuple_Pack(3, __pyx_t_12, __pyx_t_11, __pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_21, NULL);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(!__pyx_t_19)) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (__pyx_t_25 < 0) __PYX_ERR(6, 186, __pyx_L19_except_error)
              __pyx_t_26 = (!__pyx_t_25);
              if (unlikely(__pyx_t_26)) {
                __Pyx_GIVEREF(__pyx_t_12);
                __Pyx_GIVEREF(__pyx_t_11);
                __Pyx_XGIVEREF(__pyx_t_6);
                __Pyx_ErrRestoreWithState(__pyx_t_12, __pyx_t_11, __pyx_t_6);
                __pyx_t_12 = 0;  __pyx_t_11 = 0;  __pyx_t_6 = 0; 
                __PYX_ERR(6, 186, __pyx_L19_except_error)
              }
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            goto __pyx_L5_except_error;
            __pyx_L21_try_return:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            goto __pyx_L14_return;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_13) {
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[0], NULL);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (unlikely(!__pyx_t_16)) __PYX_ERR(6, 186, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L14_return: {
            __pyx_t_16 = __pyx_r;
            __pyx_r = 0;
            if (__pyx_t_13) {
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[0], NULL);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (unlikely(!__pyx_t_15)) __PYX_ERR(6, 186, __pyx_L5_except_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            }
            __pyx_r = __pyx_t_16;
            __pyx_t_16 = 0;
            goto __pyx_L6_except_return;
          }
          __pyx_L16:;
        }
        goto __pyx_L38;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        goto __pyx_L5_except_error;
        __pyx_L38:;
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":183
 *         not be set as the default event loop for the main thread.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             return asyncio.get_running_loop()
 *         except RuntimeError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_123get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_122get_working_loop, "Returns a running event loop.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_123get_working_loop = {"get_working_loop", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_123get_working_loop, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_122get_working_loop};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_123get_working_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_working_loop (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_122get_working_loop(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_122get_working_loop(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_working_loop", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":198
 *     def get_working_loop():
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_event_loop); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.get_working_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_125raise_if_not_valid_trailing_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_125raise_if_not_valid_trailing_metadata = {"raise_if_not_valid_trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_125raise_if_not_valid_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_125raise_if_not_valid_trailing_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("raise_if_not_valid_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(6, 201, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 201, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "raise_if_not_valid_trailing_metadata", 0) < 0) __PYX_ERR(6, 201, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("raise_if_not_valid_trailing_metadata", 1, 1, 1, i); __PYX_ERR(6, 201, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 201, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("raise_if_not_valid_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(6, 201, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.raise_if_not_valid_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_124raise_if_not_valid_trailing_metadata(__pyx_self, __pyx_v_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_124raise_if_not_valid_trailing_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9[4];
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  PyObject *__pyx_t_14 = NULL;
  Py_ssize_t __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("raise_if_not_valid_trailing_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":202
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):             # <<<<<<<<<<<<<<
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
*/
  __pyx_t_2 = __Pyx_HasAttr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_iter); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(6, 202, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyDict_Check(__pyx_v_metadata); 
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":203
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *     for item in metadata:
 *         if not isinstance(item, tuple):
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_6 = __pyx_builtin_TypeError; 
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e;
    __pyx_t_9[1] = __pyx_t_8;
    __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__3;
    __pyx_t_9[3] = __pyx_t_7;
    __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
    if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 203, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_11 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 203, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(6, 203, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":202
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):             # <<<<<<<<<<<<<<
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":204
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:             # <<<<<<<<<<<<<<
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
  if (likely(PyList_CheckExact(__pyx_v_metadata)) || PyTuple_CheckExact(__pyx_v_metadata)) {
    __pyx_t_4 = __pyx_v_metadata; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_metadata); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_13 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 204, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
          #endif
          if (__pyx_t_12 >= __pyx_temp) break;
        }
        __pyx_t_6 = __Pyx_PyList_GetItemRef(__pyx_t_4, __pyx_t_12);
        ++__pyx_t_12;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(6, 204, __pyx_L1_error)
          #endif
          if (__pyx_t_12 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12));
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_12);
        #endif
        ++__pyx_t_12;
      }
      if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 204, __pyx_L1_error)
    } else {
      __pyx_t_6 = __pyx_t_13(__pyx_t_4);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(6, 204, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":205
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 *         if not isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
*/
    __pyx_t_1 = PyTuple_Check(__pyx_v_item); 
    __pyx_t_3 = (!__pyx_t_1);
    if (unlikely(__pyx_t_3)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":206
 *     for item in metadata:
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
      __pyx_t_10 = NULL;
      __Pyx_INCREF(__pyx_builtin_TypeError);
      __pyx_t_5 = __pyx_builtin_TypeError; 
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e;
      __pyx_t_9[1] = __pyx_t_8;
      __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__3;
      __pyx_t_9[3] = __pyx_t_7;
      __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
      if (unlikely(!__pyx_t_14)) __PYX_ERR(6, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_11 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_14};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 206, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(6, 206, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":205
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:
 *         if not isinstance(item, tuple):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":207
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
*/
    __pyx_t_15 = PyObject_Length(__pyx_v_item); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(6, 207, __pyx_L1_error)
    __pyx_t_3 = (__pyx_t_15 != 2);
    if (unlikely(__pyx_t_3)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":208
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
      __pyx_t_5 = NULL;
      __Pyx_INCREF(__pyx_builtin_TypeError);
      __pyx_t_14 = __pyx_builtin_TypeError; 
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_10, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e;
      __pyx_t_9[1] = __pyx_t_7;
      __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__3;
      __pyx_t_9[3] = __pyx_t_10;
      __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10));
      if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_11 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 208, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(6, 208, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":207
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if len(item) != 2:             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":209
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
*/
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_item, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyUnicode_Check(__pyx_t_6); 
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = (!__pyx_t_3);
    if (unlikely(__pyx_t_1)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":210
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
      __pyx_t_14 = NULL;
      __Pyx_INCREF(__pyx_builtin_TypeError);
      __pyx_t_8 = __pyx_builtin_TypeError; 
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e;
      __pyx_t_9[1] = __pyx_t_10;
      __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__3;
      __pyx_t_9[3] = __pyx_t_5;
      __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
      if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_11 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_7};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 210, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(6, 210, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":209
 *         if len(item) != 2:
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[0], str):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":211
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_item, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyUnicode_Check(__pyx_t_6); 
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = (!__pyx_t_3);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_item, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyBytes_Check(__pyx_t_6); 
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_3 = (!__pyx_t_2);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    if (unlikely(__pyx_t_1)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":212
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')             # <<<<<<<<<<<<<<
*/
      __pyx_t_8 = NULL;
      __Pyx_INCREF(__pyx_builtin_TypeError);
      __pyx_t_7 = __pyx_builtin_TypeError; 
      __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING); if (unlikely(!__pyx_t_14)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_metadata, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_trailing_metadata_type_e;
      __pyx_t_9[1] = __pyx_t_5;
      __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__3;
      __pyx_t_9[3] = __pyx_t_14;
      __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 41 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14));
      if (unlikely(!__pyx_t_10)) __PYX_ERR(6, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_11 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_10};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __PYX_ERR(6, 212, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":211
 *         if not isinstance(item[0], str):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *         if not isinstance(item[1], str) and not isinstance(item[1], bytes):             # <<<<<<<<<<<<<<
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":204
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
 *     for item in metadata:             # <<<<<<<<<<<<<<
 *         if not isinstance(item, tuple):
 *             raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("grpc._cython.cygrpc.raise_if_not_valid_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":21
 *     # The final status of gRPC is represented by three trailing metadata:
 *     # `grpc-status`, `grpc-status-message`, and `grpc-status-details`.
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   grpc_status_code code,
 *                   str details,
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  PyObject *__pyx_v_debug_error_string = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,&__pyx_mstate_global->__pyx_n_u_trailing_metadata,&__pyx_mstate_global->__pyx_n_u_debug_error_string,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(30, 21, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(30, 21, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(30, 21, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(30, 21, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(30, 21, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(30, 21, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, i); __PYX_ERR(30, 21, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(30, 21, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(30, 21, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(30, 21, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(30, 21, __pyx_L3_error)
    }
    __pyx_v_code = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 22, __pyx_L3_error)
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
    __pyx_v_debug_error_string = ((PyObject*)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(30, 21, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(30, 23, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(30, 24, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_debug_error_string), (&PyUnicode_Type), 1, "debug_error_string", 1))) __PYX_ERR(30, 25, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata, __pyx_v_debug_error_string);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, PyObject *__pyx_v_debug_error_string) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":26
 *                   tuple trailing_metadata,
 *                   str debug_error_string):
 *         self._code = code             # <<<<<<<<<<<<<<
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata
*/
  __pyx_v_self->_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":27
 *                   str debug_error_string):
 *         self._code = code
 *         self._details = details             # <<<<<<<<<<<<<<
 *         self._trailing_metadata = trailing_metadata
 *         self._debug_error_string = debug_error_string
*/
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_details);
  __Pyx_DECREF(__pyx_v_self->_details);
  __pyx_v_self->_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":28
 *         self._code = code
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 *         self._debug_error_string = debug_error_string
 * 
*/
  __Pyx_INCREF(__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_v_trailing_metadata);
  __Pyx_GOTREF(__pyx_v_self->_trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_trailing_metadata);
  __pyx_v_self->_trailing_metadata = __pyx_v_trailing_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":29
 *         self._details = details
 *         self._trailing_metadata = trailing_metadata
 *         self._debug_error_string = debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cpdef grpc_status_code code(self):
*/
  __Pyx_INCREF(__pyx_v_debug_error_string);
  __Pyx_GIVEREF(__pyx_v_debug_error_string);
  __Pyx_GOTREF(__pyx_v_self->_debug_error_string);
  __Pyx_DECREF(__pyx_v_self->_debug_error_string);
  __pyx_v_self->_debug_error_string = __pyx_v_debug_error_string;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":21
 *     # The final status of gRPC is represented by three trailing metadata:
 *     # `grpc-status`, `grpc-status-message`, and `grpc-status-details`.
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   grpc_status_code code,
 *                   str details,
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  grpc_status_code __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  grpc_status_code __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("code", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 31, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code)) {
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_t_6 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 31, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":32
 * 
 *     cpdef grpc_status_code code(self):
 *         return self._code             # <<<<<<<<<<<<<<
 * 
 *     cpdef str details(self):
*/
  __pyx_r = __pyx_v_self->_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (grpc_status_code) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code = {"code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("code", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_2code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("code", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(30, 31, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("details", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 34, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 34, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(30, 34, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":35
 * 
 *     cpdef str details(self):
 *         return self._details             # <<<<<<<<<<<<<<
 * 
 *     cpdef tuple trailing_metadata(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details = {"details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("details", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_4details(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("details", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("trailing_metadata", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_trailing_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 37, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 37, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(30, 37, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":38
 * 
 *     cpdef tuple trailing_metadata(self):
 *         return self._trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *     cpdef str debug_error_string(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata = {"trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("trailing_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_6trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("trailing_metadata", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("debug_error_string", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_debug_error_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 40, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(30, 40, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":41
 * 
 *     cpdef str debug_error_string(self):
 *         return self._debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_status_code c_code(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_debug_error_string);
  __pyx_r = __pyx_v_self->_debug_error_string;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.debug_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string = {"debug_error_string", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("debug_error_string (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("debug_error_string", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("debug_error_string", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8debug_error_string(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("debug_error_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.debug_error_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":43
 *         return self._debug_error_string
 * 
 *     cdef grpc_status_code c_code(self):             # <<<<<<<<<<<<<<
 *         return <grpc_status_code>self._code
*/

static grpc_status_code __pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  grpc_status_code __pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":44
 * 
 *     cdef grpc_status_code c_code(self):
 *         return <grpc_status_code>self._code             # <<<<<<<<<<<<<<
*/
  __pyx_r = ((grpc_status_code)__pyx_v_self->_code);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":43
 *         return self._debug_error_string
 * 
 *     cdef grpc_status_code c_code(self):             # <<<<<<<<<<<<<<
 *         return <grpc_status_code>self._code
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":19
 * cdef class AioRpcStatus(Exception):
 *     cdef readonly:
 *         grpc_status_code _code             # <<<<<<<<<<<<<<
 *         str _details
 *         # Per the spec, only client-side status has trailing metadata.
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_v_self->_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus._code.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":20
 *     cdef readonly:
 *         grpc_status_code _code
 *         str _details             # <<<<<<<<<<<<<<
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_details);
  __pyx_r = __pyx_v_self->_details;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":22
 *         str _details
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata             # <<<<<<<<<<<<<<
 *         str _debug_error_string
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_trailing_metadata);
  __pyx_r = __pyx_v_self->_trailing_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi":23
 *         # Per the spec, only client-side status has trailing metadata.
 *         tuple _trailing_metadata
 *         str _debug_error_string             # <<<<<<<<<<<<<<
 * 
 *     cpdef grpc_status_code code(self)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_debug_error_string);
  __pyx_r = __pyx_v_self->_debug_error_string;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_12AioRpcStatus_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioRpcStatus.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":30
 *     from posix cimport unistd
 * 
 *     cdef void _unified_socket_write(int fd) noexcept nogil:             # <<<<<<<<<<<<<<
 *         unistd.write(fd, b"1", 1)
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(int __pyx_v_fd) {

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":31
 * 
 *     cdef void _unified_socket_write(int fd) noexcept nogil:
 *         unistd.write(fd, b"1", 1)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  (void)(write(__pyx_v_fd, ((char *)"1"), 1));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":30
 *     from posix cimport unistd
 * 
 *     cdef void _unified_socket_write(int fd) noexcept nogil:             # <<<<<<<<<<<<<<
 *         unistd.write(fd, b"1", 1)
 * 
*/

  /* function exit code */
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_127_handle_callback_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_127_handle_callback_wrapper = {"_handle_callback_wrapper", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_127_handle_callback_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_127_handle_callback_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper = 0;
  int __pyx_v_success;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_callback_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback_wrapper,&__pyx_mstate_global->__pyx_n_u_success,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 34, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 34, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_callback_wrapper", 0) < 0) __PYX_ERR(7, 34, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_callback_wrapper", 1, 2, 2, i); __PYX_ERR(7, 34, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 34, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 34, __pyx_L3_error)
    }
    __pyx_v_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)values[0]);
    __pyx_v_success = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_success == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 34, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_callback_wrapper", 1, 2, 2, __pyx_nargs); __PYX_ERR(7, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_callback_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_callback_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper, 1, "callback_wrapper", 0))) __PYX_ERR(7, 34, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_126_handle_callback_wrapper(__pyx_self, __pyx_v_callback_wrapper, __pyx_v_success);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_126_handle_callback_wrapper(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_callback_wrapper, int __pyx_v_success) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_completion_queue_functor *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_callback_wrapper", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":35
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_callback_wrapper->__pyx_vtab)->c_functor(__pyx_v_callback_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(7, 35, __pyx_L1_error)
  __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(__pyx_t_1, __pyx_v_success);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_callback_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":40
 * cdef class BaseCompletionQueue:
 * 
 *     cdef grpc_completion_queue* c_ptr(self):             # <<<<<<<<<<<<<<
 *         return self._cq
 * 
*/

static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self) {
  grpc_completion_queue *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":41
 * 
 *     cdef grpc_completion_queue* c_ptr(self):
 *         return self._cq             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_self->_cq;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":40
 * cdef class BaseCompletionQueue:
 * 
 *     cdef grpc_completion_queue* c_ptr(self):             # <<<<<<<<<<<<<<
 *         return self._cq
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self__cq_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_self__cq_cannot_be_converted_to, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.BaseCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":46
 * cdef class _BoundEventLoop:
 * 
 *     def __cinit__(self, object loop, object read_socket, object handler):             # <<<<<<<<<<<<<<
 *         global _has_fd_monitoring
 *         self.loop = loop
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_read_socket = 0;
  PyObject *__pyx_v_handler = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_loop,&__pyx_mstate_global->__pyx_n_u_read_socket,&__pyx_mstate_global->__pyx_n_u_handler,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 46, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 46, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(7, 46, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(7, 46, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 46, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(7, 46, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(7, 46, __pyx_L3_error)
    }
    __pyx_v_loop = values[0];
    __pyx_v_read_socket = values[1];
    __pyx_v_handler = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(7, 46, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self), __pyx_v_loop, __pyx_v_read_socket, __pyx_v_handler);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_read_socket, PyObject *__pyx_v_handler) {
  PyObject *__pyx_v_reader_function = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":48
 *     def __cinit__(self, object loop, object read_socket, object handler):
 *         global _has_fd_monitoring
 *         self.loop = loop             # <<<<<<<<<<<<<<
 *         self.read_socket = read_socket
 *         reader_function = functools.partial(
*/
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->loop);
  __Pyx_DECREF(__pyx_v_self->loop);
  __pyx_v_self->loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":49
 *         global _has_fd_monitoring
 *         self.loop = loop
 *         self.read_socket = read_socket             # <<<<<<<<<<<<<<
 *         reader_function = functools.partial(
 *             handler,
*/
  __Pyx_INCREF(__pyx_v_read_socket);
  __Pyx_GIVEREF(__pyx_v_read_socket);
  __Pyx_GOTREF(__pyx_v_self->read_socket);
  __Pyx_DECREF(__pyx_v_self->read_socket);
  __pyx_v_self->read_socket = __pyx_v_read_socket;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":50
 *         self.loop = loop
 *         self.read_socket = read_socket
 *         reader_function = functools.partial(             # <<<<<<<<<<<<<<
 *             handler,
 *             loop
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_functools); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_partial); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":52
 *         reader_function = functools.partial(
 *             handler,
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         # NOTE(lidiz) There isn't a way to cleanly pre-check if fd monitoring
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_handler, __pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_reader_function = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":58
 *         # good enough. The application can have its own loop implementation, or
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
*/
  if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":60
 *         if _has_fd_monitoring:
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)             # <<<<<<<<<<<<<<
 *                 self._has_reader = True
 *             except NotImplementedError:
*/
        __pyx_t_4 = __pyx_v_self->loop;
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = 0;
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_self->read_socket, __pyx_v_reader_function};
          __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_reader, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 60, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":61
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True             # <<<<<<<<<<<<<<
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False
*/
        __pyx_v_self->_has_reader = 1;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
*/
      }
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":62
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
 *             except NotImplementedError:             # <<<<<<<<<<<<<<
 *                 _has_fd_monitoring = False
 *                 self._has_reader = False
*/
      __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NotImplementedError);
      if (__pyx_t_9) {
        __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_2) < 0) __PYX_ERR(7, 62, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_2);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":63
 *                 self._has_reader = True
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False             # <<<<<<<<<<<<<<
 *                 self._has_reader = False
 * 
*/
        __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":64
 *             except NotImplementedError:
 *                 _has_fd_monitoring = False
 *                 self._has_reader = False             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
*/
        __pyx_v_self->_has_reader = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":59
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:
 *             try:             # <<<<<<<<<<<<<<
 *                 self.loop.add_reader(self.read_socket, reader_function)
 *                 self._has_reader = True
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      __pyx_L9_try_end:;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":58
 *         # good enough. The application can have its own loop implementation, or
 *         # uses different types of event loops (e.g., 1 Proactor, 3 Selectors).
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             try:
 *                 self.loop.add_reader(self.read_socket, reader_function)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":46
 * cdef class _BoundEventLoop:
 * 
 *     def __cinit__(self, object loop, object read_socket, object handler):             # <<<<<<<<<<<<<<
 *         global _has_fd_monitoring
 *         self.loop = loop
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_reader_function);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close = {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("close", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("close", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_2close(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":67
 * 
 *     def close(self):
 *         if self.loop:             # <<<<<<<<<<<<<<
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->loop); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(7, 67, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":68
 *     def close(self):
 *         if self.loop:
 *             if self._has_reader:             # <<<<<<<<<<<<<<
 *                 self.loop.remove_reader(self.read_socket)
 * 
*/
    if (__pyx_v_self->_has_reader) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":69
 *         if self.loop:
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_3 = __pyx_v_self->loop;
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_self->read_socket};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_remove_reader, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 69, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":68
 *     def close(self):
 *         if self.loop:
 *             if self._has_reader:             # <<<<<<<<<<<<<<
 *                 self.loop.remove_reader(self.read_socket)
 * 
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":67
 * 
 *     def close(self):
 *         if self.loop:             # <<<<<<<<<<<<<<
 *             if self._has_reader:
 *                 self.loop.remove_reader(self.read_socket)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":36
 * 
 * cdef class _BoundEventLoop:
 *     cdef readonly object loop             # <<<<<<<<<<<<<<
 *     cdef readonly object read_socket  # socket.socket
 *     cdef bint _has_reader
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->loop);
  __pyx_r = __pyx_v_self->loop;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi":37
 * cdef class _BoundEventLoop:
 *     cdef readonly object loop
 *     cdef readonly object read_socket  # socket.socket             # <<<<<<<<<<<<<<
 *     cdef bint _has_reader
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->read_socket);
  __pyx_r = __pyx_v_self->read_socket;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15_BoundEventLoop_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._BoundEventLoop.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":74
 * cdef class PollerCompletionQueue(BaseCompletionQueue):
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *(*__pyx_t_7)(PyObject *);
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":75
 * 
 *     def __cinit__(self):
 *         self._cq = grpc_completion_queue_create_for_next(NULL)             # <<<<<<<<<<<<<<
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
*/
  __pyx_v_self->__pyx_base._cq = grpc_completion_queue_create_for_next(NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":76
 *     def __cinit__(self):
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False             # <<<<<<<<<<<<<<
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
 *         self._poller_thread.start()
*/
  __pyx_v_self->_shutdown = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":77
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)             # <<<<<<<<<<<<<<
 *         self._poller_thread.start()
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Thread); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_poll_wrapper); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_target, __pyx_t_3, __pyx_t_6, __pyx_callargs+1, 0) < 0) __PYX_ERR(7, 77, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_daemon, Py_True, __pyx_t_6, __pyx_callargs+1, 1) < 0) __PYX_ERR(7, 77, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_poller_thread);
  __Pyx_DECREF(__pyx_v_self->_poller_thread);
  __pyx_v_self->_poller_thread = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":78
 *         self._shutdown = False
 *         self._poller_thread = threading.Thread(target=self._poll_wrapper, daemon=True)
 *         self._poller_thread.start()             # <<<<<<<<<<<<<<
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()
*/
  __pyx_t_4 = __pyx_v_self->_poller_thread;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":80
 *         self._poller_thread.start()
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()             # <<<<<<<<<<<<<<
 *         self._write_fd = self._write_socket.fileno()
 *         self._loops = {}
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_socket); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_socketpair); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(7, 80, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
      __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_3 = __Pyx_PyList_GetItemRef(sequence, 0);
      if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 80, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyList_GetItemRef(sequence, 1);
      if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 80, __pyx_L1_error)
      __Pyx_XGOTREF(__pyx_t_4);
    }
    #else
    __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6);
    index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(7, 80, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(7, 80, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->_read_socket);
  __Pyx_DECREF(__pyx_v_self->_read_socket);
  __pyx_v_self->_read_socket = __pyx_t_3;
  __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_self->_write_socket);
  __Pyx_DECREF(__pyx_v_self->_write_socket);
  __pyx_v_self->_write_socket = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":81
 * 
 *         self._read_socket, self._write_socket = socket.socketpair()
 *         self._write_fd = self._write_socket.fileno()             # <<<<<<<<<<<<<<
 *         self._loops = {}
 * 
*/
  __pyx_t_4 = __pyx_v_self->_write_socket;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_fileno, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_8 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->_write_fd = __pyx_t_8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":82
 *         self._read_socket, self._write_socket = socket.socketpair()
 *         self._write_fd = self._write_socket.fileno()
 *         self._loops = {}             # <<<<<<<<<<<<<<
 * 
 *         # The read socket might be read by multiple threads. But only one of them will
*/
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_loops);
  __Pyx_DECREF(__pyx_v_self->_loops);
  __pyx_v_self->_loops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":87
 *         # read the 1 byte sent by the poller thread. This setting is essential to allow
 *         # multiple loops in multiple threads bound to the same poller.
 *         self._read_socket.setblocking(False)             # <<<<<<<<<<<<<<
 * 
 *         self._queue = cpp_event_queue()
*/
  __pyx_t_4 = __pyx_v_self->_read_socket;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_False};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_setblocking, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":89
 *         self._read_socket.setblocking(False)
 * 
 *         self._queue = cpp_event_queue()             # <<<<<<<<<<<<<<
 * 
 *     def bind_loop(self, object loop):
*/
  __pyx_v_self->_queue = __pyx_t_4grpc_7_cython_6cygrpc_cpp_event_queue();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":74
 * cdef class PollerCompletionQueue(BaseCompletionQueue):
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._cq = grpc_completion_queue_create_for_next(NULL)
 *         self._shutdown = False
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop = {"bind_loop", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bind_loop (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 91, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 91, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bind_loop", 0) < 0) __PYX_ERR(7, 91, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bind_loop", 1, 1, 1, i); __PYX_ERR(7, 91, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 91, __pyx_L3_error)
    }
    __pyx_v_loop = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("bind_loop", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 91, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.bind_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v_loop);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_2bind_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_loop) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bind_loop", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":92
 * 
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:             # <<<<<<<<<<<<<<
 *             return
 *         else:
*/
  if (unlikely(__pyx_v_self->_loops == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(7, 92, __pyx_L1_error)
  }
  __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_loop, __pyx_v_self->_loops, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(7, 92, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":93
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":92
 * 
 *     def bind_loop(self, object loop):
 *         if loop in self._loops:             # <<<<<<<<<<<<<<
 *             return
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":95
 *             return
 *         else:
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)             # <<<<<<<<<<<<<<
 * 
 *     cdef void _poll(self) nogil:
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop);
    __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop); 
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_handle_events); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_loop, __pyx_v_self->_read_socket, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 95, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_2);
    }
    if (unlikely(__pyx_v_self->_loops == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(7, 95, __pyx_L1_error)
    }
    if (unlikely((PyDict_SetItem(__pyx_v_self->_loops, __pyx_v_loop, ((PyObject *)__pyx_t_2)) < 0))) __PYX_ERR(7, 95, __pyx_L1_error)
    __Pyx_DECREF((PyObject *)__pyx_t_2); __pyx_t_2 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.bind_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":97
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
 * 
 *     cdef void _poll(self) nogil:             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  grpc_event __pyx_v_event;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyGILState_STATE __pyx_gilstate_save;
  __Pyx_RefNannySetupContext("_poll", 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":101
 *         cdef CallbackContext *context
 * 
 *         while not self._shutdown:             # <<<<<<<<<<<<<<
 *             event = grpc_completion_queue_next(self._cq,
 *                                                _GPR_INF_FUTURE,
*/
  while (1) {
    __pyx_t_1 = (!__pyx_v_self->_shutdown);
    if (!__pyx_t_1) break;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":102
 * 
 *         while not self._shutdown:
 *             event = grpc_completion_queue_next(self._cq,             # <<<<<<<<<<<<<<
 *                                                _GPR_INF_FUTURE,
 *                                                NULL)
*/
    __pyx_v_event = grpc_completion_queue_next(__pyx_v_self->__pyx_base._cq, __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE, NULL);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":106
 *                                                NULL)
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
*/
    switch (__pyx_v_event.type) {
      case GRPC_QUEUE_TIMEOUT:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":107
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:             # <<<<<<<<<<<<<<
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
*/
      {
          PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":108
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")             # <<<<<<<<<<<<<<
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 *                 self._shutdown = True
*/
            __pyx_t_3 = NULL;
            __Pyx_INCREF(__pyx_builtin_AssertionError);
            __pyx_t_4 = __pyx_builtin_AssertionError; 
            __pyx_t_5 = 1;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Core_should_not_return_GRPC_QUEU};
              __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 108, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_Raise(__pyx_t_2, 0, 0, 0);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __PYX_ERR(7, 108, __pyx_L8_error)
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":107
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:
 *                 with gil:             # <<<<<<<<<<<<<<
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
*/
          /*finally:*/ {
            __pyx_L8_error: {
              __Pyx_PyGILState_Release(__pyx_gilstate_save);
              goto __pyx_L1_error;
            }
          }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":106
 *                                                NULL)
 * 
 *             if event.type == GRPC_QUEUE_TIMEOUT:             # <<<<<<<<<<<<<<
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
*/
      break;
      case GRPC_QUEUE_SHUTDOWN:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":110
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:
 *                 self._shutdown = True             # <<<<<<<<<<<<<<
 *             else:
 *                 self._queue_mutex.lock()
*/
      __pyx_v_self->_shutdown = 1;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":109
 *                 with gil:
 *                     raise AssertionError("Core should not return GRPC_QUEUE_TIMEOUT!")
 *             elif event.type == GRPC_QUEUE_SHUTDOWN:             # <<<<<<<<<<<<<<
 *                 self._shutdown = True
 *             else:
*/
      break;
      default:

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":112
 *                 self._shutdown = True
 *             else:
 *                 self._queue_mutex.lock()             # <<<<<<<<<<<<<<
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
*/
      __pyx_v_self->_queue_mutex.lock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":113
 *             else:
 *                 self._queue_mutex.lock()
 *                 self._queue.push(event)             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:
*/
      __pyx_v_self->_queue.push(__pyx_v_event);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":114
 *                 self._queue_mutex.lock()
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 *                 if _has_fd_monitoring:
 *                     _unified_socket_write(self._write_fd)
*/
      __pyx_v_self->_queue_mutex.unlock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":115
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *                     _unified_socket_write(self._write_fd)
 *                 else:
*/
      if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":116
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:
 *                     _unified_socket_write(self._write_fd)             # <<<<<<<<<<<<<<
 *                 else:
 *                     with gil:
*/
        __pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write(__pyx_v_self->_write_fd);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":115
 *                 self._queue.push(event)
 *                 self._queue_mutex.unlock()
 *                 if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *                     _unified_socket_write(self._write_fd)
 *                 else:
*/
        goto __pyx_L10;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":118
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 *                     with gil:             # <<<<<<<<<<<<<<
 *                         # Event loops can be paused or killed at any time. So,
 *                         # instead of delegate to any thread, the polling thread
*/
      /*else*/ {
        {
            PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":122
 *                         # instead of delegate to any thread, the polling thread
 *                         # should handle the distribution of the event.
 *                         self._handle_events(None)             # <<<<<<<<<<<<<<
 * 
 *     def _poll_wrapper(self):
*/
              __pyx_t_4 = ((PyObject *)__pyx_v_self);
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_5 = 0;
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_None};
                __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_handle_events, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
                if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 122, __pyx_L14_error)
                __Pyx_GOTREF(__pyx_t_2);
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":118
 *                     _unified_socket_write(self._write_fd)
 *                 else:
 *                     with gil:             # <<<<<<<<<<<<<<
 *                         # Event loops can be paused or killed at any time. So,
 *                         # instead of delegate to any thread, the polling thread
*/
            /*finally:*/ {
              /*normal exit:*/{
                __Pyx_PyGILState_Release(__pyx_gilstate_save);
                goto __pyx_L15;
              }
              __pyx_L14_error: {
                __Pyx_PyGILState_Release(__pyx_gilstate_save);
                goto __pyx_L1_error;
              }
              __pyx_L15:;
            }
        }
      }
      __pyx_L10:;
      break;
    }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":97
 *             self._loops[loop] = _BoundEventLoop(loop, self._read_socket, self._handle_events)
 * 
 *     cdef void _poll(self) nogil:             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._poll", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  __pyx_L0:;
  __Pyx_RefNannyFinishContextNogil()
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper = {"_poll_wrapper", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_poll_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_poll_wrapper", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_poll_wrapper", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_4_poll_wrapper(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_poll_wrapper", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":125
 * 
 *     def _poll_wrapper(self):
 *         with nogil:             # <<<<<<<<<<<<<<
 *             self._poll()
 * 
*/
  {
      PyThreadState *_save;
      _save = NULL;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":126
 *     def _poll_wrapper(self):
 *         with nogil:
 *             self._poll()             # <<<<<<<<<<<<<<
 * 
 *     cdef shutdown(self):
*/
        ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self->__pyx_base.__pyx_vtab)->_poll(__pyx_v_self); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(7, 126, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":125
 * 
 *     def _poll_wrapper(self):
 *         with nogil:             # <<<<<<<<<<<<<<
 *             self._poll()
 * 
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._poll_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":128
 *             self._poll()
 * 
 *     cdef shutdown(self):             # <<<<<<<<<<<<<<
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":130
 *     cdef shutdown(self):
 *         # Removes the socket hook from loops
 *         for loop in self._loops:             # <<<<<<<<<<<<<<
 *             self._loops.get(loop).close()
 * 
*/
  __pyx_t_2 = 0;
  if (unlikely(__pyx_v_self->_loops == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(7, 130, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_self->_loops, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(7, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_loop, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":131
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
 *             self._loops.get(loop).close()             # <<<<<<<<<<<<<<
 * 
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
*/
    if (unlikely(__pyx_v_self->_loops == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
      __PYX_ERR(7, 131, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_loops, __pyx_v_loop, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_t_8;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_9 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_close, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":134
 * 
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
 *         grpc_completion_queue_shutdown(self._cq)             # <<<<<<<<<<<<<<
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
*/
  grpc_completion_queue_shutdown(__pyx_v_self->__pyx_base._cq);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":135
 *         # TODO(https://github.com/grpc/grpc/issues/22365) perform graceful shutdown
 *         grpc_completion_queue_shutdown(self._cq)
 *         while not self._shutdown:             # <<<<<<<<<<<<<<
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
 *         grpc_completion_queue_destroy(self._cq)
*/
  while (1) {
    __pyx_t_10 = (!__pyx_v_self->_shutdown);
    if (!__pyx_t_10) break;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":136
 *         grpc_completion_queue_shutdown(self._cq)
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)             # <<<<<<<<<<<<<<
 *         grpc_completion_queue_destroy(self._cq)
 * 
*/
    __pyx_t_5 = __pyx_v_self->_poller_thread;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_8 = PyFloat_FromDouble(__pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = 0;
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_5, NULL};
      __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_timeout, __pyx_t_8, __pyx_t_7, __pyx_callargs+1, 0) < 0) __PYX_ERR(7, 136, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_join, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":137
 *         while not self._shutdown:
 *             self._poller_thread.join(timeout=_POLL_AWAKE_INTERVAL_S)
 *         grpc_completion_queue_destroy(self._cq)             # <<<<<<<<<<<<<<
 * 
 *         # Clean up socket resources
*/
  grpc_completion_queue_destroy(__pyx_v_self->__pyx_base._cq);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":140
 * 
 *         # Clean up socket resources
 *         self._read_socket.close()             # <<<<<<<<<<<<<<
 *         self._write_socket.close()
 * 
*/
  __pyx_t_7 = __pyx_v_self->_read_socket;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_9 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_close, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 140, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":141
 *         # Clean up socket resources
 *         self._read_socket.close()
 *         self._write_socket.close()             # <<<<<<<<<<<<<<
 * 
 *     def _handle_events(self, object context_loop):
*/
  __pyx_t_7 = __pyx_v_self->_write_socket;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_9 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_close, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":128
 *             self._poll()
 * 
 *     cdef shutdown(self):             # <<<<<<<<<<<<<<
 *         # Removes the socket hook from loops
 *         for loop in self._loops:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events = {"_handle_events", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_context_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_events (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(7, 143, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 143, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_events", 0) < 0) __PYX_ERR(7, 143, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_events", 1, 1, 1, i); __PYX_ERR(7, 143, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(7, 143, __pyx_L3_error)
    }
    __pyx_v_context_loop = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_events", 1, 1, 1, __pyx_nargs); __PYX_ERR(7, 143, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._handle_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v_context_loop);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_6_handle_events(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, PyObject *__pyx_v_context_loop) {
  CYTHON_UNUSED PyObject *__pyx_v_data = 0;
  grpc_event __pyx_v_event;
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *__pyx_v_context;
  PyObject *__pyx_v_loop = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_events", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":145
 *     def _handle_events(self, object context_loop):
 *         cdef bytes data
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)
*/
  if (__pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":147
 *         if _has_fd_monitoring:
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)             # <<<<<<<<<<<<<<
 *         cdef grpc_event event
 *         cdef CallbackContext *context
*/
    __pyx_t_2 = __pyx_v_self->_read_socket;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_int_1};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_recv, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(7, 147, __pyx_L1_error)
    __pyx_v_data = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":145
 *     def _handle_events(self, object context_loop):
 *         cdef bytes data
 *         if _has_fd_monitoring:             # <<<<<<<<<<<<<<
 *             # If fd monitoring is working, clean the socket without blocking.
 *             data = self._read_socket.recv(1)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":151
 *         cdef CallbackContext *context
 * 
 *         while True:             # <<<<<<<<<<<<<<
 *             self._queue_mutex.lock()
 *             if self._queue.empty():
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":152
 * 
 *         while True:
 *             self._queue_mutex.lock()             # <<<<<<<<<<<<<<
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()
*/
    __pyx_v_self->_queue_mutex.lock();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":153
 *         while True:
 *             self._queue_mutex.lock()
 *             if self._queue.empty():             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 break
*/
    __pyx_t_4 = __pyx_v_self->_queue.empty();
    if (__pyx_t_4) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":154
 *             self._queue_mutex.lock()
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 *                 break
 *             else:
*/
      __pyx_v_self->_queue_mutex.unlock();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":155
 *             if self._queue.empty():
 *                 self._queue_mutex.unlock()
 *                 break             # <<<<<<<<<<<<<<
 *             else:
 *                 event = self._queue.front()
*/
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":153
 *         while True:
 *             self._queue_mutex.lock()
 *             if self._queue.empty():             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 *                 break
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":157
 *                 break
 *             else:
 *                 event = self._queue.front()             # <<<<<<<<<<<<<<
 *                 self._queue.pop()
 *                 self._queue_mutex.unlock()
*/
    /*else*/ {
      __pyx_v_event = __pyx_v_self->_queue.front();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":158
 *             else:
 *                 event = self._queue.front()
 *                 self._queue.pop()             # <<<<<<<<<<<<<<
 *                 self._queue_mutex.unlock()
 * 
*/
      __pyx_v_self->_queue.pop();

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":159
 *                 event = self._queue.front()
 *                 self._queue.pop()
 *                 self._queue_mutex.unlock()             # <<<<<<<<<<<<<<
 * 
 *             context = <CallbackContext *>event.tag
*/
      __pyx_v_self->_queue_mutex.unlock();
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":161
 *                 self._queue_mutex.unlock()
 * 
 *             context = <CallbackContext *>event.tag             # <<<<<<<<<<<<<<
 *             loop = <object>context.loop
 *             if loop is context_loop:
*/
    __pyx_v_context = ((struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *)__pyx_v_event.tag);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":162
 * 
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop             # <<<<<<<<<<<<<<
 *             if loop is context_loop:
 *                 # Executes callbacks: complete the future
*/
    __pyx_t_1 = ((PyObject *)__pyx_v_context->loop);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_loop, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":163
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop
 *             if loop is context_loop:             # <<<<<<<<<<<<<<
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(
*/
    __pyx_t_4 = (__pyx_v_loop == __pyx_v_context_loop);
    if (__pyx_t_4) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":165
 *             if loop is context_loop:
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(             # <<<<<<<<<<<<<<
 *                     <grpc_completion_queue_functor *>event.tag,
 *                     event.success
*/
      __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(((grpc_completion_queue_functor *)__pyx_v_event.tag), __pyx_v_event.success);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":163
 *             context = <CallbackContext *>event.tag
 *             loop = <object>context.loop
 *             if loop is context_loop:             # <<<<<<<<<<<<<<
 *                 # Executes callbacks: complete the future
 *                 CallbackWrapper.functor_run(
*/
      goto __pyx_L7;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":170
 *                 )
 *             else:
 *                 loop.call_soon_threadsafe(             # <<<<<<<<<<<<<<
 *                     _handle_callback_wrapper,
 *                     <CallbackWrapper>context.callback_wrapper,
*/
    /*else*/ {
      __pyx_t_2 = __pyx_v_loop;
      __Pyx_INCREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":171
 *             else:
 *                 loop.call_soon_threadsafe(
 *                     _handle_callback_wrapper,             # <<<<<<<<<<<<<<
 *                     <CallbackWrapper>context.callback_wrapper,
 *                     event.success
*/
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_handle_callback_wrapper); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 171, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":173
 *                     _handle_callback_wrapper,
 *                     <CallbackWrapper>context.callback_wrapper,
 *                     event.success             # <<<<<<<<<<<<<<
 *                 )
*/
      __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_event.success); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_5, ((PyObject *)__pyx_v_context->callback_wrapper), __pyx_t_6};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_call_soon_threadsafe, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L7:;
  }
  __pyx_L5_break:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue._handle_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_data);
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.PollerCompletionQueue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":18
 * cdef class CallbackFailureHandler:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   str core_function_name,
 *                   object error_details,
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_core_function_name = 0;
  PyObject *__pyx_v_error_details = 0;
  PyObject *__pyx_v_exception_type = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_core_function_name,&__pyx_mstate_global->__pyx_n_u_error_details,&__pyx_mstate_global->__pyx_n_u_exception_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 18, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 18, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(32, 18, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(32, 18, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 18, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 18, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 18, __pyx_L3_error)
    }
    __pyx_v_core_function_name = ((PyObject*)values[0]);
    __pyx_v_error_details = values[1];
    __pyx_v_exception_type = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 18, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_core_function_name), (&PyUnicode_Type), 1, "core_function_name", 1))) __PYX_ERR(32, 19, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self), __pyx_v_core_function_name, __pyx_v_error_details, __pyx_v_exception_type);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_core_function_name, PyObject *__pyx_v_error_details, PyObject *__pyx_v_exception_type) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":23
 *                   object exception_type):
 *         """Handles failure by raising exception."""
 *         self._core_function_name = core_function_name             # <<<<<<<<<<<<<<
 *         self._error_details = error_details
 *         self._exception_type = exception_type
*/
  __Pyx_INCREF(__pyx_v_core_function_name);
  __Pyx_GIVEREF(__pyx_v_core_function_name);
  __Pyx_GOTREF(__pyx_v_self->_core_function_name);
  __Pyx_DECREF(__pyx_v_self->_core_function_name);
  __pyx_v_self->_core_function_name = __pyx_v_core_function_name;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":24
 *         """Handles failure by raising exception."""
 *         self._core_function_name = core_function_name
 *         self._error_details = error_details             # <<<<<<<<<<<<<<
 *         self._exception_type = exception_type
 * 
*/
  __Pyx_INCREF(__pyx_v_error_details);
  __Pyx_GIVEREF(__pyx_v_error_details);
  __Pyx_GOTREF(__pyx_v_self->_error_details);
  __Pyx_DECREF(__pyx_v_self->_error_details);
  __pyx_v_self->_error_details = __pyx_v_error_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":25
 *         self._core_function_name = core_function_name
 *         self._error_details = error_details
 *         self._exception_type = exception_type             # <<<<<<<<<<<<<<
 * 
 *     cdef handle(self, object future):
*/
  __Pyx_INCREF(__pyx_v_exception_type);
  __Pyx_GIVEREF(__pyx_v_exception_type);
  __Pyx_GOTREF(__pyx_v_self->_exception_type);
  __Pyx_DECREF(__pyx_v_self->_exception_type);
  __pyx_v_self->_exception_type = __pyx_v_exception_type;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":18
 * cdef class CallbackFailureHandler:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   str core_function_name,
 *                   object error_details,
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":27
 *         self._exception_type = exception_type
 * 
 *     cdef handle(self, object future):             # <<<<<<<<<<<<<<
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, PyObject *__pyx_v_future) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8[4];
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("handle", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":28
 * 
 *     cdef handle(self, object future):
 *         future.set_exception(self._exception_type(             # <<<<<<<<<<<<<<
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
 *         ))
*/
  __pyx_t_2 = __pyx_v_future;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __Pyx_INCREF(__pyx_v_self->_exception_type);
  __pyx_t_5 = __pyx_v_self->_exception_type; 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":29
 *     cdef handle(self, object future):
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_self->_core_function_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_self->_error_details), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Failed;
  __pyx_t_8[1] = __pyx_t_6;
  __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_8[3] = __pyx_t_7;
  __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7));
  if (unlikely(!__pyx_t_9)) __PYX_ERR(32, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_10 = 1;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_10 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_10 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_exception, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":27
 *         self._exception_type = exception_type
 * 
 *     cdef handle(self, object future):             # <<<<<<<<<<<<<<
 *         future.set_exception(self._exception_type(
 *             'Failed "%s": %s' % (self._core_function_name, self._error_details)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.handle", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackFailureHandler.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":35
 * cdef class CallbackWrapper:
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):             # <<<<<<<<<<<<<<
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_future = 0;
  PyObject *__pyx_v_loop = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_future,&__pyx_mstate_global->__pyx_n_u_loop,&__pyx_mstate_global->__pyx_n_u_failure_handler,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 35, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 35, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 35, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 35, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(32, 35, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, i); __PYX_ERR(32, 35, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 35, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 35, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 35, __pyx_L3_error)
    }
    __pyx_v_future = values[0];
    __pyx_v_loop = values[1];
    __pyx_v_failure_handler = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 35, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_failure_handler), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler, 1, "failure_handler", 0))) __PYX_ERR(32, 35, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self), __pyx_v_future, __pyx_v_loop, __pyx_v_failure_handler);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, PyObject *__pyx_v_future, PyObject *__pyx_v_loop, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *__pyx_v_failure_handler) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  void (*__pyx_t_1)(grpc_completion_queue_functor *, int);
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":36
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
 *         self.context.functor.functor_run = self.functor_run             # <<<<<<<<<<<<<<
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self->__pyx_vtab)->functor_run;
  __pyx_v_self->context.functor.functor_run = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":37
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future             # <<<<<<<<<<<<<<
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
*/
  __pyx_v_self->context.waiter = ((PyObject *)__pyx_v_future);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":38
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop             # <<<<<<<<<<<<<<
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
 *         self.context.callback_wrapper = <cpython.PyObject*>self
*/
  __pyx_v_self->context.loop = ((PyObject *)__pyx_v_loop);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":39
 *         self.context.waiter = <cpython.PyObject*>future
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler             # <<<<<<<<<<<<<<
 *         self.context.callback_wrapper = <cpython.PyObject*>self
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
*/
  __pyx_v_self->context.failure_handler = ((PyObject *)__pyx_v_failure_handler);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":40
 *         self.context.loop = <cpython.PyObject*>loop
 *         self.context.failure_handler = <cpython.PyObject*>failure_handler
 *         self.context.callback_wrapper = <cpython.PyObject*>self             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
 *         # data path. We should make it as efficient as possible.
*/
  __pyx_v_self->context.callback_wrapper = ((PyObject *)__pyx_v_self);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":43
 *         # NOTE(lidiz) Not using a list here, because this class is critical in
 *         # data path. We should make it as efficient as possible.
 *         self._reference_of_future = future             # <<<<<<<<<<<<<<
 *         self._reference_of_failure_handler = failure_handler
 *         # NOTE(lidiz) We need to ensure when Core invokes our callback, the
*/
  __Pyx_INCREF(__pyx_v_future);
  __Pyx_GIVEREF(__pyx_v_future);
  __Pyx_GOTREF(__pyx_v_self->_reference_of_future);
  __Pyx_DECREF(__pyx_v_self->_reference_of_future);
  __pyx_v_self->_reference_of_future = __pyx_v_future;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":44
 *         # data path. We should make it as efficient as possible.
 *         self._reference_of_future = future
 *         self._reference_of_failure_handler = failure_handler             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) We need to ensure when Core invokes our callback, the
 *         # callback function itself is not deallocated. Otherwise, we will get
*/
  __Pyx_INCREF((PyObject *)__pyx_v_failure_handler);
  __Pyx_GIVEREF((PyObject *)__pyx_v_failure_handler);
  __Pyx_GOTREF(__pyx_v_self->_reference_of_failure_handler);
  __Pyx_DECREF(__pyx_v_self->_reference_of_failure_handler);
  __pyx_v_self->_reference_of_failure_handler = ((PyObject *)__pyx_v_failure_handler);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":48
 *         # callback function itself is not deallocated. Otherwise, we will get
 *         # a segfault. We can view this as Core holding a ref.
 *         cpython.Py_INCREF(self)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  Py_INCREF(((PyObject *)__pyx_v_self));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":35
 * cdef class CallbackWrapper:
 * 
 *     def __cinit__(self, object future, object loop, CallbackFailureHandler failure_handler):             # <<<<<<<<<<<<<<
 *         self.context.functor.functor_run = self.functor_run
 *         self.context.waiter = <cpython.PyObject*>future
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":50
 *         cpython.Py_INCREF(self)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef void functor_run(
 *             grpc_completion_queue_functor* functor,
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run(grpc_completion_queue_functor *__pyx_v_functor, int __pyx_v_success) {
  struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *__pyx_v_context;
  PyObject *__pyx_v_waiter = 0;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("functor_run", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":54
 *             grpc_completion_queue_functor* functor,
 *             int success) noexcept:
 *         cdef CallbackContext *context = <CallbackContext *>functor             # <<<<<<<<<<<<<<
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
*/
  __pyx_v_context = ((struct __pyx_t_4grpc_7_cython_6cygrpc_CallbackContext *)__pyx_v_functor);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":55
 *             int success) noexcept:
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter             # <<<<<<<<<<<<<<
 *         if not waiter.cancelled():
 *             if success == 0:
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_context->waiter);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_waiter = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":56
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():             # <<<<<<<<<<<<<<
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
*/
  __pyx_t_2 = __pyx_v_waiter;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_cancelled, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(32, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":57
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
 *             if success == 0:             # <<<<<<<<<<<<<<
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
*/
    __pyx_t_5 = (__pyx_v_success == 0);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":58
 *         if not waiter.cancelled():
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)             # <<<<<<<<<<<<<<
 *             else:
 *                 waiter.set_result(None)
*/
      __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_context->failure_handler)->__pyx_vtab)->handle(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_v_context->failure_handler), __pyx_v_waiter); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":57
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():
 *             if success == 0:             # <<<<<<<<<<<<<<
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
*/
      goto __pyx_L4;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":60
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
 *             else:
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
*/
    /*else*/ {
      __pyx_t_2 = __pyx_v_waiter;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, Py_None};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_result, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 60, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":56
 *         cdef CallbackContext *context = <CallbackContext *>functor
 *         cdef object waiter = <object>context.waiter
 *         if not waiter.cancelled():             # <<<<<<<<<<<<<<
 *             if success == 0:
 *                 (<CallbackFailureHandler>context.failure_handler).handle(waiter)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":61
 *             else:
 *                 waiter.set_result(None)
 *         cpython.Py_DECREF(<object>context.callback_wrapper)             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_context->callback_wrapper);
  __Pyx_INCREF(__pyx_t_1);
  Py_DECREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":50
 *         cpython.Py_INCREF(self)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef void functor_run(
 *             grpc_completion_queue_functor* functor,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.CallbackWrapper.functor_run", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":63
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):             # <<<<<<<<<<<<<<
 *         return &self.context.functor
 * 
*/

static grpc_completion_queue_functor *__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self) {
  grpc_completion_queue_functor *__pyx_r;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":64
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):
 *         return &self.context.functor             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = (&__pyx_v_self->context.functor);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":63
 *         cpython.Py_DECREF(<object>context.callback_wrapper)
 * 
 *     cdef grpc_completion_queue_functor *c_functor(self):             # <<<<<<<<<<<<<<
 *         return &self.context.functor
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_15CallbackWrapper_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.CallbackWrapper.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_130generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_129execute_batch(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_128execute_batch, "The callback version of start batch operations.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_129execute_batch = {"execute_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_129execute_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_128execute_batch};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_129execute_batch(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_operations = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("execute_batch (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_operations,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 77, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 77, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 77, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 77, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "execute_batch", 0) < 0) __PYX_ERR(32, 77, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("execute_batch", 1, 3, 3, i); __PYX_ERR(32, 77, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 77, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 77, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 77, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_operations = ((PyObject*)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("execute_batch", 1, 3, 3, __pyx_nargs); __PYX_ERR(32, 77, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 77, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_operations), (&PyTuple_Type), 1, "operations", 1))) __PYX_ERR(32, 78, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_128execute_batch(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_operations, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_128execute_batch(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_operations, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("execute_batch", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 77, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_operations = __pyx_v_operations;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_operations);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_operations);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_130generator2, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_execute_batch, __pyx_mstate_global->__pyx_n_u_execute_batch, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 77, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_130generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  grpc_completion_queue_functor *__pyx_t_9;
  int __pyx_t_10;
  char const *__pyx_t_11;
  Py_ssize_t __pyx_t_12;
  __Pyx_PySendResult __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("execute_batch", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 77, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":81
 *                                object loop):
 *     """The callback version of start batch operations."""
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(None, operations, None)             # <<<<<<<<<<<<<<
 *     batch_operation_tag.prepare()
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, Py_None, __pyx_cur_scope->__pyx_v_operations, Py_None};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 81, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_batch_operation_tag = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":82
 *     """The callback version of start batch operations."""
 *     cdef _BatchOperationTag batch_operation_tag = _BatchOperationTag(None, operations, None)
 *     batch_operation_tag.prepare()             # <<<<<<<<<<<<<<
 * 
 *     cdef object future = loop.create_future()
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_cur_scope->__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->prepare(__pyx_cur_scope->__pyx_v_batch_operation_tag); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 82, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":84
 *     batch_operation_tag.prepare()
 * 
 *     cdef object future = loop.create_future()             # <<<<<<<<<<<<<<
 *     cdef CallbackWrapper wrapper = CallbackWrapper(
 *         future,
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_loop;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":85
 * 
 *     cdef object future = loop.create_future()
 *     cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *         future,
 *         loop,
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":88
 *         future,
 *         loop,
 *         CallbackFailureHandler('execute_batch', operations, ExecuteBatchError))             # <<<<<<<<<<<<<<
 *     cdef grpc_call_error error = grpc_call_start_batch(
 *         grpc_call_wrapper.call,
*/
  __pyx_t_6 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  __pyx_t_7 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler); 
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_mstate_global->__pyx_n_u_execute_batch, __pyx_cur_scope->__pyx_v_operations, __pyx_t_8};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 88, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_5);
  }
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_future, __pyx_cur_scope->__pyx_v_loop, ((PyObject *)__pyx_t_5)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF((PyObject *)__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 85, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":93
 *         batch_operation_tag.c_ops,
 *         batch_operation_tag.c_nops,
 *         wrapper.c_functor(), NULL)             # <<<<<<<<<<<<<<
 * 
 *     if error != GRPC_CALL_OK:
*/
  __pyx_t_9 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":89
 *         loop,
 *         CallbackFailureHandler('execute_batch', operations, ExecuteBatchError))
 *     cdef grpc_call_error error = grpc_call_start_batch(             # <<<<<<<<<<<<<<
 *         grpc_call_wrapper.call,
 *         batch_operation_tag.c_ops,
*/
  __pyx_cur_scope->__pyx_v_error = grpc_call_start_batch(__pyx_cur_scope->__pyx_v_grpc_call_wrapper->call, __pyx_cur_scope->__pyx_v_batch_operation_tag->c_ops, __pyx_cur_scope->__pyx_v_batch_operation_tag->c_nops, __pyx_t_9, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":95
 *         wrapper.c_functor(), NULL)
 * 
 *     if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
*/
  __pyx_t_10 = (__pyx_cur_scope->__pyx_v_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_10)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":96
 * 
 *     if error != GRPC_CALL_OK:
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()             # <<<<<<<<<<<<<<
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 * 
*/
    __pyx_t_11 = grpc_call_error_to_string(__pyx_cur_scope->__pyx_v_error);
    __pyx_t_12 = __Pyx_ssize_strlen(__pyx_t_11); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(32, 96, __pyx_L1_error)
    __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_11, 0, __pyx_t_12, NULL, NULL, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_grpc_call_error_string = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":97
 *     if error != GRPC_CALL_OK:
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))             # <<<<<<<<<<<<<<
 * 
 *     await future
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __pyx_mstate_global->__pyx_kp_u_Failed_grpc_call_start_batch_wit;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyLong_From_grpc_call_error(__pyx_cur_scope->__pyx_v_error); if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_grpc_call_error_string};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 97, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 97, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(32, 97, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":95
 *         wrapper.c_functor(), NULL)
 * 
 *     if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *         grpc_call_error_string = grpc_call_error_to_string(error).decode()
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":99
 *         raise ExecuteBatchError("Failed grpc_call_start_batch: {} with grpc_call_error value: '{}'".format(error, grpc_call_error_string))
 * 
 *     await future             # <<<<<<<<<<<<<<
 * 
 *     cdef grpc_event c_event
*/
  __pyx_t_13 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
  if (likely(__pyx_t_13 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 99, __pyx_L1_error)
  } else if (likely(__pyx_t_13 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(32, 99, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":103
 *     cdef grpc_event c_event
 *     # Tag.event must be called, otherwise messages won't be parsed from C
 *     batch_operation_tag.event(c_event)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag *)__pyx_cur_scope->__pyx_v_batch_operation_tag->__pyx_base.__pyx_vtab)->event(__pyx_cur_scope->__pyx_v_batch_operation_tag, __pyx_cur_scope->__pyx_v_c_event)); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("execute_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":106
 * 
 * 
 * cdef prepend_send_initial_metadata_op(tuple ops, tuple metadata):             # <<<<<<<<<<<<<<
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(PyObject *__pyx_v_ops, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("prepend_send_initial_metadata_op", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":109
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 *     return (SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         _EMPTY_FLAG
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":111
 *     return (SendInitialMetadataOperation(
 *         metadata,
 *         _EMPTY_FLAG             # <<<<<<<<<<<<<<
 *     ),) + ops
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_metadata, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 109, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":109
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
 *     return (SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         _EMPTY_FLAG
*/
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1)) != (0)) __PYX_ERR(32, 109, __pyx_L1_error);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":112
 *         metadata,
 *         _EMPTY_FLAG
 *     ),) + ops             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_v_ops); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":106
 * 
 * 
 * cdef prepend_send_initial_metadata_op(tuple ops, tuple metadata):             # <<<<<<<<<<<<<<
 *     # Eventually, this function should be the only function that produces
 *     # SendInitialMetadataOperation. So we have more control over the flag.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.prepend_send_initial_metadata_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_133generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrieves parsed messages from Core.
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_132_receive_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_131_receive_message, "Retrieves parsed messages from Core.\n\n    The messages maybe already in Core's buffer, so there isn't a 1-to-1\n    mapping between this and the underlying \"socket.read()\". Also, eventually,\n    this function will end with an EOF, which reads empty message.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_132_receive_message = {"_receive_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_132_receive_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_131_receive_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_132_receive_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 115, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 115, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_receive_message", 0) < 0) __PYX_ERR(32, 115, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_receive_message", 1, 2, 2, i); __PYX_ERR(32, 115, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 115, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 115, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_receive_message", 1, 2, 2, __pyx_nargs); __PYX_ERR(32, 115, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 115, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_131_receive_message(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_131_receive_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_receive_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 115, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_133generator3, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_receive_message, __pyx_mstate_global->__pyx_n_u_receive_message, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 115, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_133generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_PySendResult __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  char const *__pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 115, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":123
 *     this function will end with an EOF, which reads empty message.
 *     """
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (receive_op,)
 *     try:
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation); 
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 123, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":124
 *     """
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)             # <<<<<<<<<<<<<<
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_op)) != (0)) __PYX_ERR(32, 124, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":126
 *     cdef tuple ops = (receive_op,)
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 *     except ExecuteBatchError as e:
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
*/
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 126, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 126, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(__pyx_t_9 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_6);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_6;
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_6 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_6);
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 126, __pyx_L4_error)
      } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(32, 126, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
*/
    }
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":127
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
 *         # finish state : 1) returns empty message due to EOF; 2) fails inside
*/
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_4, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 127, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_4, __pyx_t_3);
    __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0;
    if (__pyx_t_10) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_1) < 0) __PYX_ERR(32, 127, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_cur_scope->__pyx_v_e = __pyx_t_4;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":133
 *         #
 *         # Since they all indicates finish, they are better be merged.
 *         _LOGGER.debug('Failed to receive any message from Core')             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) The returned message might be an empty bytes (aka. b'').
 *     # Please explicitly check if it is None or falsey string object!
*/
        __pyx_t_11 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(32, 133, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_13)) __PYX_ERR(32, 133, __pyx_L16_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_13);
          assert(__pyx_t_11);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_mstate_global->__pyx_kp_u_Failed_to_receive_any_message_fr};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 133, __pyx_L16_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":127
 *     try:
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) The receive message operation has two ways to indicate
 *         # finish state : 1) returns empty message due to EOF; 2) fails inside
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          goto __pyx_L17;
        }
        __pyx_L16_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_10 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
          goto __pyx_L6_except_error;
        }
        __pyx_L17:;
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":125
 *     cdef ReceiveMessageOperation receive_op = ReceiveMessageOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (receive_op,)
 *     try:             # <<<<<<<<<<<<<<
 *         await execute_batch(grpc_call_wrapper, ops, loop)
 *     except ExecuteBatchError as e:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    __pyx_L9_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":136
 *     # NOTE(lidiz) The returned message might be an empty bytes (aka. b'').
 *     # Please explicitly check if it is None or falsey string object!
 *     return receive_op.message()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_op);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_message, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 136, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrieves parsed messages from Core.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_receive_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_136generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_135_send_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_135_send_message = {"_send_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_135_send_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_135_send_message(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_message = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op = 0;
  int __pyx_v_write_flag;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_message,&__pyx_mstate_global->__pyx_n_u_send_initial_metadata_op,&__pyx_mstate_global->__pyx_n_u_write_flag,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 139, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(32, 139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_send_message", 0) < 0) __PYX_ERR(32, 139, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, i); __PYX_ERR(32, 139, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 139, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 139, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 139, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 139, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(32, 139, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_message = ((PyObject*)values[1]);
    __pyx_v_send_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)values[2]);
    __pyx_v_write_flag = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_write_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 142, __pyx_L3_error)
    __pyx_v_loop = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_message", 1, 5, 5, __pyx_nargs); __PYX_ERR(32, 139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 139, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(32, 140, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_send_initial_metadata_op), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, 1, "send_initial_metadata_op", 0))) __PYX_ERR(32, 141, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_134_send_message(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_message, __pyx_v_send_initial_metadata_op, __pyx_v_write_flag, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_134_send_message(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_message, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, int __pyx_v_write_flag, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 139, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  __pyx_cur_scope->__pyx_v_send_initial_metadata_op = __pyx_v_send_initial_metadata_op;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __pyx_cur_scope->__pyx_v_write_flag = __pyx_v_write_flag;
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_136generator4, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_message, __pyx_mstate_global->__pyx_n_u_send_message, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 139, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_136generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 139, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":144
 *                         int write_flag,
 *                         object loop):
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation); 
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_write_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_message, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 144, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":145
 *                         object loop):
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(32, 145, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":146
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  __pyx_t_6 = (((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op) != Py_None);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":147
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 * 
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op)) != (0)) __PYX_ERR(32, 147, __pyx_L1_error);
    __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_cur_scope->__pyx_v_ops); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_ops, ((PyObject*)__pyx_t_3));
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":146
 *     cdef SendMessageOperation op = SendMessageOperation(message, write_flag)
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":148
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 148, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(32, 148, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_139generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_138_send_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_138_send_initial_metadata = {"_send_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_138_send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_138_send_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_metadata = 0;
  int __pyx_v_flags;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_metadata,&__pyx_mstate_global->__pyx_n_u_flags,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 151, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 151, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 151, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 151, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 151, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_send_initial_metadata", 0) < 0) __PYX_ERR(32, 151, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, i); __PYX_ERR(32, 151, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 151, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 151, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 151, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 151, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_metadata = ((PyObject*)values[1]);
    __pyx_v_flags = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 153, __pyx_L3_error)
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_initial_metadata", 1, 4, 4, __pyx_nargs); __PYX_ERR(32, 151, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metadata), (&PyTuple_Type), 1, "metadata", 1))) __PYX_ERR(32, 152, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_137_send_initial_metadata(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_metadata, __pyx_v_flags, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_137_send_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_metadata, int __pyx_v_flags, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 151, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  __pyx_cur_scope->__pyx_v_flags = __pyx_v_flags;
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_139generator5, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_initial_metadata, __pyx_mstate_global->__pyx_n_u_send_initial_metadata, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 151, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_139generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 151, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":155
 *                                  int flags,
 *                                  object loop):
 *     cdef SendInitialMetadataOperation op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *         metadata,
 *         flags)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":157
 *     cdef SendInitialMetadataOperation op = SendInitialMetadataOperation(
 *         metadata,
 *         flags)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_metadata, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 155, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":158
 *         metadata,
 *         flags)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 * 
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(32, 158, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":159
 *         flags)
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 159, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(32, 159, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_142generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_141_receive_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_141_receive_initial_metadata = {"_receive_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_141_receive_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_141_receive_initial_metadata(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 162, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 162, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 162, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_receive_initial_metadata", 0) < 0) __PYX_ERR(32, 162, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_receive_initial_metadata", 1, 2, 2, i); __PYX_ERR(32, 162, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 162, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 162, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_loop = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_receive_initial_metadata", 1, 2, 2, __pyx_nargs); __PYX_ERR(32, 162, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 162, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_140_receive_initial_metadata(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_140_receive_initial_metadata(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_receive_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 162, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_142generator6, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 162, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_142generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_receive_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 162, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":164
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 164, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":165
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 *     return op.initial_metadata()
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(32, 165, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":166
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
 *     return op.initial_metadata()
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 166, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(32, 166, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":167
 *     cdef tuple ops = (op,)
 *     await execute_batch(grpc_call_wrapper, ops, loop)
 *     return op.initial_metadata()             # <<<<<<<<<<<<<<
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_initial_metadata, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_receive_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_145generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_144_send_error_status_from_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_144_send_error_status_from_server = {"_send_error_status_from_server", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_144_send_error_status_from_server, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_144_send_error_status_from_server(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper = 0;
  grpc_status_code __pyx_v_code;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_error_status_from_server (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grpc_call_wrapper,&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,&__pyx_mstate_global->__pyx_n_u_trailing_metadata,&__pyx_mstate_global->__pyx_n_u_send_initial_metadata_op,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(32, 169, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 169, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_send_error_status_from_server", 0) < 0) __PYX_ERR(32, 169, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, i); __PYX_ERR(32, 169, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(32, 169, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(32, 169, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(32, 169, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(32, 169, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(32, 169, __pyx_L3_error)
      values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(32, 169, __pyx_L3_error)
    }
    __pyx_v_grpc_call_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *)values[0]);
    __pyx_v_code = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 170, __pyx_L3_error)
    __pyx_v_details = ((PyObject*)values[2]);
    __pyx_v_trailing_metadata = ((PyObject*)values[3]);
    __pyx_v_send_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)values[4]);
    __pyx_v_loop = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_send_error_status_from_server", 1, 6, 6, __pyx_nargs); __PYX_ERR(32, 169, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_grpc_call_wrapper), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, 1, "grpc_call_wrapper", 0))) __PYX_ERR(32, 169, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(32, 171, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(32, 172, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_send_initial_metadata_op), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, 1, "send_initial_metadata_op", 0))) __PYX_ERR(32, 173, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_143_send_error_status_from_server(__pyx_self, __pyx_v_grpc_call_wrapper, __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata, __pyx_v_send_initial_metadata_op, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_143_send_error_status_from_server(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper *__pyx_v_grpc_call_wrapper, grpc_status_code __pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata, struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_v_send_initial_metadata_op, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_send_error_status_from_server", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(32, 169, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_grpc_call_wrapper = __pyx_v_grpc_call_wrapper;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper);
  __pyx_cur_scope->__pyx_v_code = __pyx_v_code;
  __pyx_cur_scope->__pyx_v_details = __pyx_v_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
  __pyx_cur_scope->__pyx_v_trailing_metadata = __pyx_v_trailing_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __pyx_cur_scope->__pyx_v_send_initial_metadata_op = __pyx_v_send_initial_metadata_op;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_145generator7, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(32, 169, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_145generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  __Pyx_PySendResult __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_send_error_status_from_server", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(32, 169, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":175
 *                                          Operation send_initial_metadata_op,
 *                                          object loop):
 *     assert code != StatusCode.ok, 'Expecting non-ok status code.'             # <<<<<<<<<<<<<<
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         trailing_metadata,
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(32, 175, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_mstate_global->__pyx_kp_u_Expecting_non_ok_status_code, 0, 0);
      __PYX_ERR(32, 175, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(32, 175, __pyx_L1_error)
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":176
 *                                          object loop):
 *     assert code != StatusCode.ok, 'Expecting non-ok status code.'
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *         trailing_metadata,
 *         code,
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  __pyx_t_1 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":178
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         trailing_metadata,
 *         code,             # <<<<<<<<<<<<<<
 *         details,
 *         _EMPTY_FLAGS,
*/
  __pyx_t_5 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":180
 *         code,
 *         details,
 *         _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *     )
 *     cdef tuple ops = (op,)
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_trailing_metadata, __pyx_t_5, __pyx_cur_scope->__pyx_v_details, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_7, (5-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 176, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_2);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_2);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":182
 *         _EMPTY_FLAGS,
 *     )
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
*/
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(32, 182, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":183
 *     )
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  __pyx_t_4 = (((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op) != Py_None);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":184
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops             # <<<<<<<<<<<<<<
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_send_initial_metadata_op)) != (0)) __PYX_ERR(32, 184, __pyx_L1_error);
    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_cur_scope->__pyx_v_ops); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_ops, ((PyObject*)__pyx_t_1));
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":183
 *     )
 *     cdef tuple ops = (op,)
 *     if send_initial_metadata_op is not None:             # <<<<<<<<<<<<<<
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":185
 *     if send_initial_metadata_op is not None:
 *         ops = (send_initial_metadata_op,) + ops
 *     await execute_batch(grpc_call_wrapper, ops, loop)             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_grpc_call_wrapper), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 185, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_8 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(32, 185, __pyx_L1_error)
  } else if (likely(__pyx_t_8 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(32, 185, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_send_error_status_from_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":28
 * 
 * 
 * cdef _default_asyncio_engine():             # <<<<<<<<<<<<<<
 *     return AsyncIOEngine.POLLER
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_default_asyncio_engine", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":29
 * 
 * cdef _default_asyncio_engine():
 *     return AsyncIOEngine.POLLER             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":28
 * 
 * 
 * cdef _default_asyncio_engine():             # <<<<<<<<<<<<<<
 *     return AsyncIOEngine.POLLER
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._default_asyncio_engine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":32
 * 
 * 
 * cdef grpc_completion_queue *global_completion_queue():             # <<<<<<<<<<<<<<
 *     return _global_aio_state.cq.c_ptr()
 * 
*/

static grpc_completion_queue *__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(void) {
  grpc_completion_queue *__pyx_r;
  grpc_completion_queue *__pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":33
 * 
 * cdef grpc_completion_queue *global_completion_queue():
 *     return _global_aio_state.cq.c_ptr()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq->__pyx_vtab)->c_ptr(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq); if (unlikely(PyErr_Occurred())) __PYX_ERR(33, 33, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":32
 * 
 * 
 * cdef grpc_completion_queue *global_completion_queue():             # <<<<<<<<<<<<<<
 *     return _global_aio_state.cq.c_ptr()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.global_completion_queue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":38
 * cdef class _AioState:
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.lock = threading.RLock()
 *         self.refcount = 0
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":39
 * 
 *     def __cinit__(self):
 *         self.lock = threading.RLock()             # <<<<<<<<<<<<<<
 *         self.refcount = 0
 *         self.engine = None
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RLock); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 39, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lock);
  __Pyx_DECREF(__pyx_v_self->lock);
  __pyx_v_self->lock = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":40
 *     def __cinit__(self):
 *         self.lock = threading.RLock()
 *         self.refcount = 0             # <<<<<<<<<<<<<<
 *         self.engine = None
 *         self.cq = None
*/
  __pyx_v_self->refcount = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":41
 *         self.lock = threading.RLock()
 *         self.refcount = 0
 *         self.engine = None             # <<<<<<<<<<<<<<
 *         self.cq = None
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->engine);
  __Pyx_DECREF(__pyx_v_self->engine);
  __pyx_v_self->engine = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":42
 *         self.refcount = 0
 *         self.engine = None
 *         self.cq = None             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->cq);
  __Pyx_DECREF((PyObject *)__pyx_v_self->cq);
  __pyx_v_self->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":38
 * cdef class _AioState:
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.lock = threading.RLock()
 *         self.refcount = 0
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9_AioState_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":45
 * 
 * 
 * cdef _initialize_poller():             # <<<<<<<<<<<<<<
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_initialize_poller", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":47
 * cdef _initialize_poller():
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()             # <<<<<<<<<<<<<<
 * 
 *     # Creates the only completion queue
*/
  grpc_init();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":50
 * 
 *     # Creates the only completion queue
 *     _global_aio_state.cq = PollerCompletionQueue()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 50, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq);
  __Pyx_DECREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":45
 * 
 * 
 * cdef _initialize_poller():             # <<<<<<<<<<<<<<
 *     # Initializes gRPC Core, must be called before other Core API
 *     grpc_init()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._initialize_poller", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":53
 * 
 * 
 * cdef _actual_aio_initialization():             # <<<<<<<<<<<<<<
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_actual_aio_initialization", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":55
 * cdef _actual_aio_initialization():
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(             # <<<<<<<<<<<<<<
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),
*/
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_members); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":57
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),             # <<<<<<<<<<<<<<
 *     )
 *     _LOGGER.debug('Using %s as I/O engine', _global_aio_state.engine)
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__default_asyncio_engine(); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":55
 * cdef _actual_aio_initialization():
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(             # <<<<<<<<<<<<<<
 *         _GRPC_ASYNCIO_ENGINE,
 *         _default_asyncio_engine(),
*/
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine);
  __Pyx_DECREF(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":59
 *         _default_asyncio_engine(),
 *     )
 *     _LOGGER.debug('Using %s as I/O engine', _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 *     # Initializes the process-level state accordingly
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Using_s_as_I_O_engine, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":62
 * 
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _initialize_poller()
 *     else:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(__pyx_t_6)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":63
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _initialize_poller()             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)
*/
    __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__initialize_poller(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 63, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":62
 * 
 *     # Initializes the process-level state accordingly
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _initialize_poller()
 *     else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":65
 *         _initialize_poller()
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Unsupported_engine_type_s, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(33, 65, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":53
 * 
 * 
 * cdef _actual_aio_initialization():             # <<<<<<<<<<<<<<
 *     # Picks the engine for gRPC AsyncIO Stack
 *     _global_aio_state.engine = AsyncIOEngine.__members__.get(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._actual_aio_initialization", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_147_grpc_shutdown_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_146_grpc_shutdown_wrapper, "A thin Python wrapper of Core's shutdown function.\n\n    Define functions are not allowed in \"cdef\" functions, and Cython complains\n    about a simple lambda with a C function.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_147_grpc_shutdown_wrapper = {"_grpc_shutdown_wrapper", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_147_grpc_shutdown_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_146_grpc_shutdown_wrapper};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_147_grpc_shutdown_wrapper(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v__ = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_grpc_shutdown_wrapper (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u__5,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(33, 68, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(33, 68, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_grpc_shutdown_wrapper", 0) < 0) __PYX_ERR(33, 68, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_grpc_shutdown_wrapper", 1, 1, 1, i); __PYX_ERR(33, 68, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(33, 68, __pyx_L3_error)
    }
    __pyx_v__ = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_grpc_shutdown_wrapper", 1, 1, 1, __pyx_nargs); __PYX_ERR(33, 68, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._grpc_shutdown_wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_146_grpc_shutdown_wrapper(__pyx_self, __pyx_v__);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_146_grpc_shutdown_wrapper(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_grpc_shutdown_wrapper", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":74
 *     about a simple lambda with a C function.
 *     """
 *     grpc_shutdown()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  grpc_shutdown();

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":77
 * 
 * 
 * cdef _actual_aio_shutdown():             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_actual_aio_shutdown", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":78
 * 
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLLER); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(__pyx_t_3)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":79
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()             # <<<<<<<<<<<<<<
 *         grpc_shutdown()
 *     else:
*/
    __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq)->__pyx_base.__pyx_vtab)->shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq)); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":80
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)
*/
    grpc_shutdown();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":78
 * 
 * cdef _actual_aio_shutdown():
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
 *         grpc_shutdown()
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":82
 *         grpc_shutdown()
 *     else:
 *         raise ValueError('Unsupported engine type [%s]' % _global_aio_state.engine)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __pyx_t_1 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_Unsupported_engine_type_s, __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 82, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(33, 82, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":77
 * 
 * 
 * cdef _actual_aio_shutdown():             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         (<PollerCompletionQueue>_global_aio_state.cq).shutdown()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._actual_aio_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":85
 * 
 * 
 * cdef _initialize_per_loop():             # <<<<<<<<<<<<<<
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(void) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_initialize_per_loop", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":86
 * 
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()             # <<<<<<<<<<<<<<
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _global_aio_state.cq.bind_loop(loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_working_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":87
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _global_aio_state.cq.bind_loop(loop)
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLLER); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->engine == __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":88
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
 *         _global_aio_state.cq.bind_loop(loop)             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_1 = ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->cq);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_loop};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_bind_loop, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 88, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":87
 * cdef _initialize_per_loop():
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:             # <<<<<<<<<<<<<<
 *         _global_aio_state.cq.bind_loop(loop)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":85
 * 
 * 
 * cdef _initialize_per_loop():             # <<<<<<<<<<<<<<
 *     cdef object loop = get_working_loop()
 *     if _global_aio_state.engine is AsyncIOEngine.POLLER:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._initialize_per_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_loop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_aio", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":97
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 97, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 97, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 97, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":98
 *     """
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1             # <<<<<<<<<<<<<<
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()
*/
          __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount + 1);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":99
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:             # <<<<<<<<<<<<<<
 *             _actual_aio_initialization()
 *         _initialize_per_loop()
*/
          __pyx_t_9 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount == 1);
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":100
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()             # <<<<<<<<<<<<<<
 *         _initialize_per_loop()
 * 
*/
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__actual_aio_initialization(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 100, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":99
 *     with _global_aio_state.lock:
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:             # <<<<<<<<<<<<<<
 *             _actual_aio_initialization()
 *         _initialize_per_loop()
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":101
 *         if _global_aio_state.refcount == 1:
 *             _actual_aio_initialization()
 *         _initialize_per_loop()             # <<<<<<<<<<<<<<
 * 
 * 
*/
          __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__initialize_per_loop(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 101, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":97
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount += 1
 *         if _global_aio_state.refcount == 1:
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(33, 97, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_3);
            __pyx_t_2 = 0;  __pyx_t_4 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(33, 97, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 97, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_148init_grpc_aio, "Initializes the gRPC AsyncIO module.\n\n    Expected to be invoked on critical class constructors.\n    E.g., AioChannel, AioServer.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_149init_grpc_aio = {"init_grpc_aio", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_149init_grpc_aio, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_148init_grpc_aio};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_149init_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_grpc_aio (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_148init_grpc_aio(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_148init_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init_grpc_aio", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.init_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
*/

static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown_grpc_aio", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":110
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_mstate_global->__pyx_n_u_exit); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->lock, __pyx_mstate_global->__pyx_n_u_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 110, __pyx_L3_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 110, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":111
 *     """
 *     with _global_aio_state.lock:
 *         assert _global_aio_state.refcount > 0             # <<<<<<<<<<<<<<
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:
*/
          #ifndef CYTHON_WITHOUT_ASSERTIONS
          if (unlikely(__pyx_assertions_enabled())) {
            __pyx_t_9 = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount > 0);
            if (unlikely(!__pyx_t_9)) {
              __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
              __PYX_ERR(33, 111, __pyx_L7_error)
            }
          }
          #else
          if ((1)); else __PYX_ERR(33, 111, __pyx_L7_error)
          #endif

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":112
 *     with _global_aio_state.lock:
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1             # <<<<<<<<<<<<<<
 *         if not _global_aio_state.refcount:
 *             _actual_aio_shutdown()
*/
          __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount = (__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount - 1);

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":113
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:             # <<<<<<<<<<<<<<
 *             _actual_aio_shutdown()
*/
          __pyx_t_9 = (!(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state->refcount != 0));
          if (__pyx_t_9) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":114
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:
 *             _actual_aio_shutdown()             # <<<<<<<<<<<<<<
*/
            __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__actual_aio_shutdown(); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 114, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":113
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
 *         if not _global_aio_state.refcount:             # <<<<<<<<<<<<<<
 *             _actual_aio_shutdown()
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":110
 *     E.g., AioChannel, AioServer.
 *     """
 *     with _global_aio_state.lock:             # <<<<<<<<<<<<<<
 *         assert _global_aio_state.refcount > 0
 *         _global_aio_state.refcount -= 1
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L12_try_end;
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_9 < 0) __PYX_ERR(33, 110, __pyx_L9_except_error)
          __pyx_t_12 = (!__pyx_t_9);
          if (unlikely(__pyx_t_12)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_3);
            __pyx_t_2 = 0;  __pyx_t_4 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(33, 110, __pyx_L9_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L8_exception_handled;
        }
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        __pyx_L12_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 110, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        goto __pyx_L6;
      }
      __pyx_L6:;
    }
    goto __pyx_L17;
    __pyx_L3_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L17:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_150shutdown_grpc_aio, "Shuts down the gRPC AsyncIO module.\n\n    Expected to be invoked on critical class destructors.\n    E.g., AioChannel, AioServer.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio = {"shutdown_grpc_aio", (PyCFunction)__pyx_pw_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio, METH_NOARGS, __pyx_doc_4grpc_7_cython_6cygrpc_150shutdown_grpc_aio};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown_grpc_aio (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_150shutdown_grpc_aio(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_150shutdown_grpc_aio(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown_grpc_aio", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.shutdown_grpc_aio", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":33
 * 
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:             # <<<<<<<<<<<<<<
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
*/

static int __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(PyObject *__pyx_v_wait_for_ready) {
  int __pyx_v_flags;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_get_send_initial_metadata_flags", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":34
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:
 *     cdef int flags = 0             # <<<<<<<<<<<<<<
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:
*/
  __pyx_v_flags = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":36
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:             # <<<<<<<<<<<<<<
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
*/
  __pyx_t_1 = (__pyx_v_wait_for_ready != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":37
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set             # <<<<<<<<<<<<<<
 *         if wait_for_ready:
 *             flags |= InitialMetadataFlags.wait_for_ready
*/
    __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_wait_for_ready_explicitly_set); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_InPlaceOr(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 37, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_flags = __pyx_t_5;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":38
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:             # <<<<<<<<<<<<<<
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
*/
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_wait_for_ready); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 38, __pyx_L1_error)
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":39
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
 *             flags |= InitialMetadataFlags.wait_for_ready             # <<<<<<<<<<<<<<
 * 
 *     flags &= InitialMetadataFlags.used_mask
*/
      __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_wait_for_ready); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceOr(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 39, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_flags = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":38
 *     if wait_for_ready is not None:
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:             # <<<<<<<<<<<<<<
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":36
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
 *     if wait_for_ready is not None:             # <<<<<<<<<<<<<<
 *         flags |= InitialMetadataFlags.wait_for_ready_explicitly_set
 *         if wait_for_ready:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":41
 *             flags |= InitialMetadataFlags.wait_for_ready
 * 
 *     flags &= InitialMetadataFlags.used_mask             # <<<<<<<<<<<<<<
 *     return flags
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_used_mask); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_InPlaceAnd(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(34, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_flags = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":42
 * 
 *     flags &= InitialMetadataFlags.used_mask
 *     return flags             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_flags;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":33
 * 
 * 
 * cdef int _get_send_initial_metadata_flags(object wait_for_ready) except *:             # <<<<<<<<<<<<<<
 *     cdef int flags = 0
 *     # Wait-for-ready can be None, which means using default value in Core.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._get_send_initial_metadata_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":47
 * cdef class _AioCall(GrpcCallWrapper):
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,             # <<<<<<<<<<<<<<
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_method = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials = 0;
  PyObject *__pyx_v_wait_for_ready = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_channel,&__pyx_mstate_global->__pyx_n_u_deadline,&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_call_credentials,&__pyx_mstate_global->__pyx_n_u_wait_for_ready,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 47, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(34, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(34, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(34, 47, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, i); __PYX_ERR(34, 47, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 47, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 47, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 47, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(34, 47, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(34, 47, __pyx_L3_error)
    }
    __pyx_v_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)values[0]);
    __pyx_v_deadline = values[1];
    __pyx_v_method = ((PyObject*)values[2]);
    __pyx_v_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)values[3]);
    __pyx_v_wait_for_ready = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 5, 5, __pyx_nargs); __PYX_ERR(34, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_channel), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, 1, "channel", 0))) __PYX_ERR(34, 47, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(34, 48, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_call_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, 1, "call_credentials", 0))) __PYX_ERR(34, 48, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_channel, __pyx_v_deadline, __pyx_v_method, __pyx_v_call_credentials, __pyx_v_wait_for_ready);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_channel, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_call_credentials, PyObject *__pyx_v_wait_for_ready) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":49
 *     def __cinit__(self, AioChannel channel, object deadline,
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         self.call = NULL
 *         self._channel = channel
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":50
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
 *         self.call = NULL             # <<<<<<<<<<<<<<
 *         self._channel = channel
 *         self._loop = channel.loop
*/
  __pyx_v_self->__pyx_base.call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":51
 *         init_grpc_aio()
 *         self.call = NULL
 *         self._channel = channel             # <<<<<<<<<<<<<<
 *         self._loop = channel.loop
 *         self._references = []
*/
  __Pyx_INCREF((PyObject *)__pyx_v_channel);
  __Pyx_GIVEREF((PyObject *)__pyx_v_channel);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_channel);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_channel);
  __pyx_v_self->_channel = __pyx_v_channel;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":52
 *         self.call = NULL
 *         self._channel = channel
 *         self._loop = channel.loop             # <<<<<<<<<<<<<<
 *         self._references = []
 *         self._status = None
*/
  __pyx_t_1 = __pyx_v_channel->loop;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":53
 *         self._channel = channel
 *         self._loop = channel.loop
 *         self._references = []             # <<<<<<<<<<<<<<
 *         self._status = None
 *         self._initial_metadata = None
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_references);
  __Pyx_DECREF(__pyx_v_self->_references);
  __pyx_v_self->_references = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":54
 *         self._loop = channel.loop
 *         self._references = []
 *         self._status = None             # <<<<<<<<<<<<<<
 *         self._initial_metadata = None
 *         self._waiters_status = []
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_status);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_status);
  __pyx_v_self->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":55
 *         self._references = []
 *         self._status = None
 *         self._initial_metadata = None             # <<<<<<<<<<<<<<
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = ((PyObject*)Py_None);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":56
 *         self._status = None
 *         self._initial_metadata = None
 *         self._waiters_status = []             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_waiters_status);
  __Pyx_DECREF(__pyx_v_self->_waiters_status);
  __pyx_v_self->_waiters_status = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":57
 *         self._initial_metadata = None
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []             # <<<<<<<<<<<<<<
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_waiters_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_waiters_initial_metadata);
  __pyx_v_self->_waiters_initial_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":58
 *         self._waiters_status = []
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []             # <<<<<<<<<<<<<<
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_done_callbacks);
  __Pyx_DECREF(__pyx_v_self->_done_callbacks);
  __pyx_v_self->_done_callbacks = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":59
 *         self._waiters_initial_metadata = []
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False             # <<<<<<<<<<<<<<
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
*/
  __pyx_v_self->_is_locally_cancelled = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":60
 *         self._done_callbacks = []
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline             # <<<<<<<<<<<<<<
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
 *         self._create_grpc_call(deadline, method, call_credentials)
*/
  __Pyx_INCREF(__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_v_deadline);
  __Pyx_GOTREF(__pyx_v_self->_deadline);
  __Pyx_DECREF(__pyx_v_self->_deadline);
  __pyx_v_self->_deadline = __pyx_v_deadline;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":61
 *         self._is_locally_cancelled = False
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)             # <<<<<<<<<<<<<<
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc__get_send_initial_metadata_flags(__pyx_v_wait_for_ready); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(34, 61, __pyx_L1_error)
  __pyx_v_self->_send_initial_metadata_flags = __pyx_t_2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":62
 *         self._deadline = deadline
 *         self._send_initial_metadata_flags = _get_send_initial_metadata_flags(wait_for_ready)
 *         self._create_grpc_call(deadline, method, call_credentials)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_create_grpc_call(__pyx_v_self, __pyx_v_deadline, __pyx_v_method, __pyx_v_call_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 62, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":47
 * cdef class _AioCall(GrpcCallWrapper):
 * 
 *     def __cinit__(self, AioChannel channel, object deadline,             # <<<<<<<<<<<<<<
 *                   bytes method, CallCredentials call_credentials, object wait_for_ready):
 *         init_grpc_aio()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":64
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":65
 * 
 *     def __dealloc__(self):
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
*/
  __pyx_t_1 = (__pyx_v_self->__pyx_base.call != 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":66
 *     def __dealloc__(self):
 *         if self.call:
 *             grpc_call_unref(self.call)             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
*/
    grpc_call_unref(__pyx_v_self->__pyx_base.call);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":65
 * 
 *     def __dealloc__(self):
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":67
 *         if self.call:
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     def _repr(self) -> str:
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":64
 *         self._create_grpc_call(deadline, method, call_credentials)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc._AioCall.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr, "Assembles the RPC representation string.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_5_repr = {"_repr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_repr (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_repr", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_repr", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_4_repr(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_v__common = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  grpc_status_code __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_repr", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":73
 *         # This needs to be loaded at run time once everything
 *         # has been loaded.
 *         from grpc import _common             # <<<<<<<<<<<<<<
 * 
 *         if not self.done():
*/
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_common);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_common);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_common) != (0)) __PYX_ERR(34, 73, __pyx_L1_error);
  __pyx_t_2 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_grpc, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_common); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v__common = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":75
 *         from grpc import _common
 * 
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(34, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":76
 * 
 *         if not self.done():
 *             return '<{} object>'.format(self.__class__.__name__)             # <<<<<<<<<<<<<<
 * 
 *         if self._status.code() is StatusCode.ok:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_mstate_global->__pyx_kp_u_object_2;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_r = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":75
 *         from grpc import _common
 * 
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":78
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 *         if self._status.code() is StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
*/
  __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 78, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = (__pyx_t_2 == __pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":79
 * 
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_OK_CALL_REPRESENTATION); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":80
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,             # <<<<<<<<<<<<<<
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.details())
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":81
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],             # <<<<<<<<<<<<<<
 *                 self._status.details())
 *         else:
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v__common, __pyx_mstate_global->__pyx_n_u_CYGRPC_STATUS_CODE_TO_STATUS_COD); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 81, __pyx_L1_error)
    __pyx_t_10 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":82
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.details())             # <<<<<<<<<<<<<<
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(
*/
    __pyx_t_10 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->details(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_9, __pyx_t_11, __pyx_t_10};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 79, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":79
 * 
 *         if self._status.code() is StatusCode.ok:
 *             return _OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
*/
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(34, 79, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":78
 *             return '<{} object>'.format(self.__class__.__name__)
 * 
 *         if self._status.code() is StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return _OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":84
 *                 self._status.details())
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 self._status.details(),
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_NON_OK_CALL_REPRESENTATION); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_format); if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":85
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,             # <<<<<<<<<<<<<<
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
*/
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":86
 *             return _NON_OK_CALL_REPRESENTATION.format(
 *                 self.__class__.__name__,
 *                 self._status.details(),             # <<<<<<<<<<<<<<
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.debug_error_string())
*/
    __pyx_t_10 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->details(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":87
 *                 self.__class__.__name__,
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],             # <<<<<<<<<<<<<<
 *                 self._status.debug_error_string())
 * 
*/
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v__common, __pyx_mstate_global->__pyx_n_u_CYGRPC_STATUS_CODE_TO_STATUS_COD); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 87, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(34, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":88
 *                 self._status.details(),
 *                 _common.CYGRPC_STATUS_CODE_TO_STATUS_CODE[self._status.code()],
 *                 self._status.debug_error_string())             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self) -> str:
*/
    __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->debug_error_string(__pyx_v_self->_status, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 88, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_t_9, __pyx_t_10, __pyx_t_12, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_3, (5-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":84
 *                 self._status.details())
 *         else:
 *             return _NON_OK_CALL_REPRESENTATION.format(             # <<<<<<<<<<<<<<
 *                 self.__class__.__name__,
 *                 self._status.details(),
*/
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(34, 84, __pyx_L1_error)
    __pyx_r = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._repr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__common);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":90
 *                 self._status.debug_error_string())
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_6__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":91
 * 
 *     def __repr__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self) -> str:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_repr, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":90
 *                 self._status.debug_error_string())
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":93
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8__str__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":94
 * 
 *     def __str__(self) -> str:
 *         return self._repr()             # <<<<<<<<<<<<<<
 * 
 *     cdef void _create_grpc_call(self,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_repr, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":93
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":96
 *         return self._repr()
 * 
 *     cdef void _create_grpc_call(self,             # <<<<<<<<<<<<<<
 *                                 object deadline,
 *                                 bytes method,
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_deadline, PyObject *__pyx_v_method, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_credentials) {
  grpc_slice __pyx_v_method_slice;
  gpr_timespec __pyx_v_c_deadline;
  grpc_call_error __pyx_v_set_credentials_error;
  __Pyx_RefNannyDeclarations
  gpr_timespec __pyx_t_1;
  char const *__pyx_t_2;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_4grpc_7_cython_6cygrpc_uint32_t __pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  int __pyx_t_7;
  grpc_call_credentials *__pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  size_t __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_grpc_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":109
 *         """
 *         cdef grpc_slice method_slice
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error set_credentials_error
 * 
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 109, __pyx_L1_error)
  __pyx_v_c_deadline = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":113
 * 
 *         method_slice = grpc_slice_from_copied_buffer(
 *             <const char *> method,             # <<<<<<<<<<<<<<
 *             <size_t> len(method)
 *         )
*/
  if (unlikely(__pyx_v_method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(34, 113, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_method); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(34, 113, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":114
 *         method_slice = grpc_slice_from_copied_buffer(
 *             <const char *> method,
 *             <size_t> len(method)             # <<<<<<<<<<<<<<
 *         )
 *         self.call = grpc_channel_create_call(
*/
  if (unlikely(__pyx_v_method == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(34, 114, __pyx_L1_error)
  }
  __pyx_t_3 = __Pyx_PyBytes_GET_SIZE(__pyx_v_method); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(34, 114, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":112
 *         cdef grpc_call_error set_credentials_error
 * 
 *         method_slice = grpc_slice_from_copied_buffer(             # <<<<<<<<<<<<<<
 *             <const char *> method,
 *             <size_t> len(method)
*/
  __pyx_v_method_slice = grpc_slice_from_copied_buffer(((char const *)__pyx_t_2), ((size_t)__pyx_t_3));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":119
 *             self._channel.channel,
 *             NULL,
 *             _EMPTY_MASK,             # <<<<<<<<<<<<<<
 *             global_completion_queue(),
 *             method_slice,
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMPTY_MASK); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyLong_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(34, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":120
 *             NULL,
 *             _EMPTY_MASK,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             method_slice,
 *             NULL,
*/
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(34, 120, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":116
 *             <size_t> len(method)
 *         )
 *         self.call = grpc_channel_create_call(             # <<<<<<<<<<<<<<
 *             self._channel.channel,
 *             NULL,
*/
  __pyx_v_self->__pyx_base.call = grpc_channel_create_call(__pyx_v_self->_channel->channel, NULL, __pyx_t_5, __pyx_t_6, __pyx_v_method_slice, NULL, __pyx_v_c_deadline, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":127
 *         )
 * 
 *         if credentials is not None:             # <<<<<<<<<<<<<<
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
*/
  __pyx_t_7 = (((PyObject *)__pyx_v_credentials) != Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":128
 * 
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())             # <<<<<<<<<<<<<<
 *             if set_credentials_error != GRPC_CALL_OK:
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
*/
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 128, __pyx_L1_error)
    __pyx_v_set_credentials_error = grpc_call_set_credentials(__pyx_v_self->__pyx_base.call, __pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":129
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
*/
    __pyx_t_7 = (__pyx_v_set_credentials_error != GRPC_CALL_OK);
    if (unlikely(__pyx_t_7)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":130
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))             # <<<<<<<<<<<<<<
 * 
 *         grpc_slice_unref(method_slice)
*/
      __pyx_t_9 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_12 = __pyx_mstate_global->__pyx_kp_u_Credentials_couldn_t_have_been_s;
      __Pyx_INCREF(__pyx_t_12);
      __pyx_t_13 = __Pyx_PyLong_From_grpc_call_error(__pyx_v_set_credentials_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(34, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_13};
        __pyx_t_11 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
      }
      __pyx_t_14 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
        assert(__pyx_t_9);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
        __pyx_t_14 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_11};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(34, 130, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":129
 *         if credentials is not None:
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":127
 *         )
 * 
 *         if credentials is not None:             # <<<<<<<<<<<<<<
 *             set_credentials_error = grpc_call_set_credentials(self.call, credentials.c())
 *             if set_credentials_error != GRPC_CALL_OK:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":132
 *                 raise InternalError("Credentials couldn't have been set: {0}".format(set_credentials_error))
 * 
 *         grpc_slice_unref(method_slice)             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:
*/
  grpc_slice_unref(__pyx_v_method_slice);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":96
 *         return self._repr()
 * 
 *     cdef void _create_grpc_call(self,             # <<<<<<<<<<<<<<
 *                                 object deadline,
 *                                 bytes method,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._create_grpc_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":134
 *         grpc_slice_unref(method_slice)
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:             # <<<<<<<<<<<<<<
 *         cdef list waiters
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *__pyx_v_status) {
  PyObject *__pyx_v_waiter = NULL;
  PyObject *__pyx_v_callback = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_status", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":138
 * 
 *         # No more waiters should be expected since status has been set.
 *         self._status = status             # <<<<<<<<<<<<<<
 * 
 *         if self._initial_metadata is None:
*/
  __Pyx_INCREF((PyObject *)__pyx_v_status);
  __Pyx_GIVEREF((PyObject *)__pyx_v_status);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_status);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_status);
  __pyx_v_self->_status = __pyx_v_status;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":140
 *         self._status = status
 * 
 *         if self._initial_metadata is None:             # <<<<<<<<<<<<<<
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_initial_metadata == ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":141
 * 
 *         if self._initial_metadata is None:
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)             # <<<<<<<<<<<<<<
 * 
 *         for waiter in self._waiters_status:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(34, 141, __pyx_L1_error)
    ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_v_self, ((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 141, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":140
 *         self._status = status
 * 
 *         if self._initial_metadata is None:             # <<<<<<<<<<<<<<
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":143
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 *         for waiter in self._waiters_status:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
*/
  if (unlikely(__pyx_v_self->_waiters_status == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 143, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_waiters_status; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 143, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_2, __pyx_t_3);
    ++__pyx_t_3;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_waiter, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":144
 * 
 *         for waiter in self._waiters_status:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_status = []
*/
    __pyx_t_5 = __pyx_v_waiter;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = (!__pyx_t_1);
    if (__pyx_t_7) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":145
 *         for waiter in self._waiters_status:
 *             if not waiter.done():
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         self._waiters_status = []
 * 
*/
      __pyx_t_5 = __pyx_v_waiter;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, Py_None};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_result, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 145, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":144
 * 
 *         for waiter in self._waiters_status:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_status = []
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":143
 *             self._set_initial_metadata(_IMMUTABLE_EMPTY_METADATA)
 * 
 *         for waiter in self._waiters_status:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":146
 *             if not waiter.done():
 *                 waiter.set_result(None)
 *         self._waiters_status = []             # <<<<<<<<<<<<<<
 * 
 *         for callback in self._done_callbacks:
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_waiters_status);
  __Pyx_DECREF(__pyx_v_self->_waiters_status);
  __pyx_v_self->_waiters_status = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":148
 *         self._waiters_status = []
 * 
 *         for callback in self._done_callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
*/
  if (unlikely(__pyx_v_self->_done_callbacks == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 148, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_done_callbacks; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 148, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_2, __pyx_t_3);
    ++__pyx_t_3;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_callback, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":149
 * 
 *         for callback in self._done_callbacks:
 *             callback()             # <<<<<<<<<<<<<<
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_v_callback);
    __pyx_t_8 = __pyx_v_callback; 
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":148
 *         self._waiters_status = []
 * 
 *         for callback in self._done_callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":134
 *         grpc_slice_unref(method_slice)
 * 
 *     cdef void _set_status(self, AioRpcStatus status) except *:             # <<<<<<<<<<<<<<
 *         cdef list waiters
 * 
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._set_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":151
 *             callback()
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:             # <<<<<<<<<<<<<<
 *         if self._initial_metadata is not None:
 *             # Some gRPC calls might end before the initial metadata arrived in
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_initial_metadata) {
  PyObject *__pyx_v_waiter = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_initial_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":152
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             # Some gRPC calls might end before the initial metadata arrived in
 *             # the Call object. That causes this method to be invoked twice: 1.
*/
  __pyx_t_1 = (__pyx_v_self->_initial_metadata != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":157
 *             # filled with an empty metadata; 2. updated with the actual user
 *             # provided metadata.
 *             return             # <<<<<<<<<<<<<<
 * 
 *         cdef list waiters
*/
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":152
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             # Some gRPC calls might end before the initial metadata arrived in
 *             # the Call object. That causes this method to be invoked twice: 1.
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":163
 *         # No more waiters should be expected since initial metadata has been
 *         # set.
 *         self._initial_metadata = initial_metadata             # <<<<<<<<<<<<<<
 * 
 *         for waiter in self._waiters_initial_metadata:
*/
  __Pyx_INCREF(__pyx_v_initial_metadata);
  __Pyx_GIVEREF(__pyx_v_initial_metadata);
  __Pyx_GOTREF(__pyx_v_self->_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_initial_metadata);
  __pyx_v_self->_initial_metadata = __pyx_v_initial_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":165
 *         self._initial_metadata = initial_metadata
 * 
 *         for waiter in self._waiters_initial_metadata:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
*/
  if (unlikely(__pyx_v_self->_waiters_initial_metadata == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(34, 165, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_v_self->_waiters_initial_metadata; __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(34, 165, __pyx_L1_error)
      #endif
      if (__pyx_t_3 >= __pyx_temp) break;
    }
    __pyx_t_4 = __Pyx_PyList_GetItemRef(__pyx_t_2, __pyx_t_3);
    ++__pyx_t_3;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_waiter, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":166
 * 
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []
*/
    __pyx_t_5 = __pyx_v_waiter;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = (!__pyx_t_1);
    if (__pyx_t_7) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":167
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():
 *                 waiter.set_result(None)             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata = []
 * 
*/
      __pyx_t_5 = __pyx_v_waiter;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, Py_None};
        __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_result, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 167, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":166
 * 
 *         for waiter in self._waiters_initial_metadata:
 *             if not waiter.done():             # <<<<<<<<<<<<<<
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":165
 *         self._initial_metadata = initial_metadata
 * 
 *         for waiter in self._waiters_initial_metadata:             # <<<<<<<<<<<<<<
 *             if not waiter.done():
 *                 waiter.set_result(None)
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":168
 *             if not waiter.done():
 *                 waiter.set_result(None)
 *         self._waiters_initial_metadata = []             # <<<<<<<<<<<<<<
 * 
 *     def add_done_callback(self, callback):
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->_waiters_initial_metadata);
  __Pyx_DECREF(__pyx_v_self->_waiters_initial_metadata);
  __pyx_v_self->_waiters_initial_metadata = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":151
 *             callback()
 * 
 *     cdef void _set_initial_metadata(self, tuple initial_metadata) except *:             # <<<<<<<<<<<<<<
 *         if self._initial_metadata is not None:
 *             # Some gRPC calls might end before the initial metadata arrived in
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._set_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_waiter);
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback = {"add_done_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_done_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 170, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 170, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_done_callback", 0) < 0) __PYX_ERR(34, 170, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, i); __PYX_ERR(34, 170, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 170, __pyx_L3_error)
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_10add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_done_callback", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":171
 * 
 *     def add_done_callback(self, callback):
 *         if self.done():             # <<<<<<<<<<<<<<
 *             callback()
 *         else:
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(34, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":172
 *     def add_done_callback(self, callback):
 *         if self.done():
 *             callback()             # <<<<<<<<<<<<<<
 *         else:
 *             self._done_callbacks.append(callback)
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_v_callback);
    __pyx_t_5 = __pyx_v_callback; 
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":171
 * 
 *     def add_done_callback(self, callback):
 *         if self.done():             # <<<<<<<<<<<<<<
 *             callback()
 *         else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":174
 *             callback()
 *         else:
 *             self._done_callbacks.append(callback)             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
*/
  /*else*/ {
    if (unlikely(__pyx_v_self->_done_callbacks == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
      __PYX_ERR(34, 174, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_done_callbacks, __pyx_v_callback); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(34, 174, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining = {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("time_remaining", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_12time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  long __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":177
 * 
 *     def time_remaining(self):
 *         if self._deadline is None:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->_deadline == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":178
 *     def time_remaining(self):
 *         if self._deadline is None:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             return max(0, self._deadline - time.time())
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":177
 * 
 *     def time_remaining(self):
 *         if self._deadline is None:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":180
 *             return None
 *         else:
 *             return max(0, self._deadline - time.time())             # <<<<<<<<<<<<<<
 * 
 *     def cancel(self, str details):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_5 = PyNumber_Subtract(__pyx_v_self->_deadline, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = 0;
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(34, 180, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_2 = __pyx_t_5;
    } else {
      __pyx_t_4 = __Pyx_PyLong_From_long(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
      __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel, "Cancels the RPC in Core with given RPC status.\n\n        Above abstractions must invoke this method to set Core objects into\n        proper state.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_15cancel = {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 182, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 182, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "cancel", 0) < 0) __PYX_ERR(34, 182, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("cancel", 1, 1, 1, i); __PYX_ERR(34, 182, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 182, __pyx_L3_error)
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cancel", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 182, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(34, 182, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_14cancel(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_v_details_bytes = 0;
  char *__pyx_v_c_details;
  grpc_call_error __pyx_v_error;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  char *__pyx_t_8;
  grpc_status_code __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancel", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":188
 *         proper state.
 *         """
 *         self._is_locally_cancelled = True             # <<<<<<<<<<<<<<
 * 
 *         cdef object details_bytes
*/
  __pyx_v_self->_is_locally_cancelled = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":194
 *         cdef grpc_call_error error
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.cancelled,
 *             details,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":195
 * 
 *         self._set_status(AioRpcStatus(
 *             StatusCode.cancelled,             # <<<<<<<<<<<<<<
 *             details,
 *             None,
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_cancelled); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":198
 *             details,
 *             None,
 *             None,             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_5, __pyx_v_details, Py_None, Py_None};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 194, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":194
 *         cdef grpc_call_error error
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.cancelled,
 *             details,
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_status(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 194, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":201
 *         ))
 * 
 *         details_bytes = str_to_bytes(details)             # <<<<<<<<<<<<<<
 *         self._references.append(details_bytes)
 *         c_details = <char *>details_bytes
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_str_to_bytes(__pyx_v_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_details_bytes = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":202
 * 
 *         details_bytes = str_to_bytes(details)
 *         self._references.append(details_bytes)             # <<<<<<<<<<<<<<
 *         c_details = <char *>details_bytes
 *         # By implementation, grpc_call_cancel_with_status always return OK
*/
  if (unlikely(__pyx_v_self->_references == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 202, __pyx_L1_error)
  }
  __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_self->_references, __pyx_v_details_bytes); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(34, 202, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":203
 *         details_bytes = str_to_bytes(details)
 *         self._references.append(details_bytes)
 *         c_details = <char *>details_bytes             # <<<<<<<<<<<<<<
 *         # By implementation, grpc_call_cancel_with_status always return OK
 *         error = grpc_call_cancel_with_status(
*/
  __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_details_bytes); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(34, 203, __pyx_L1_error)
  __pyx_v_c_details = ((char *)__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":207
 *         error = grpc_call_cancel_with_status(
 *             self.call,
 *             StatusCode.cancelled,             # <<<<<<<<<<<<<<
 *             c_details,
 *             NULL,
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_cancelled); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":205
 *         c_details = <char *>details_bytes
 *         # By implementation, grpc_call_cancel_with_status always return OK
 *         error = grpc_call_cancel_with_status(             # <<<<<<<<<<<<<<
 *             self.call,
 *             StatusCode.cancelled,
*/
  __pyx_v_error = grpc_call_cancel_with_status(__pyx_v_self->__pyx_base.call, __pyx_t_9, __pyx_v_c_details, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":211
 *             NULL,
 *         )
 *         assert error == GRPC_CALL_OK             # <<<<<<<<<<<<<<
 * 
 *     def done(self):
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_10 = (__pyx_v_error == GRPC_CALL_OK);
    if (unlikely(!__pyx_t_10)) {
      __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
      __PYX_ERR(34, 211, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(34, 211, __pyx_L1_error)
  #endif

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_details_bytes);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done, "Returns if the RPC call has finished.\n\n        Checks if the status has been provided, either\n        because the RPC finished or because was cancelled.\n\n        Returns:\n            True if the RPC can be considered finished.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_17done = {"done", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("done (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("done", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("done", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_16done(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("done", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":222
 *             True if the RPC can be considered finished.
 *         """
 *         return self._status is not None             # <<<<<<<<<<<<<<
 * 
 *     def cancelled(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_status) != Py_None);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.done", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled, "Returns if the RPC was cancelled.\n\n        Returns:\n            True if the RPC was cancelled.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled = {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("cancelled", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  grpc_status_code __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancelled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":230
 *             True if the RPC was cancelled.
 *         """
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return False
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(34, 230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_5 = (!__pyx_t_4);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":231
 *         """
 *         if not self.done():
 *             return False             # <<<<<<<<<<<<<<
 * 
 *         return self._status.code() == StatusCode.cancelled
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":230
 *             True if the RPC was cancelled.
 *         """
 *         if not self.done():             # <<<<<<<<<<<<<<
 *             return False
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":233
 *             return False
 * 
 *         return self._status.code() == StatusCode.cancelled             # <<<<<<<<<<<<<<
 * 
 *     async def status(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_6 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 233, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_cancelled); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status, "Returns the status of the RPC call.\n\n        It returns the finished status of the RPC. If the RPC\n        has not finished yet this function will wait until the RPC\n        gets finished.\n\n        Returns:\n            Finished status of the RPC as an AioRpcStatus object.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_21status = {"status", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("status (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("status", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("status", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_20status(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("status", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 235, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_status, __pyx_mstate_global->__pyx_n_u_AioCall_status, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 235, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_22generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("status", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 235, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":245
 *             Finished status of the RPC as an AioRpcStatus object.
 *         """
 *         if self._status is not None:             # <<<<<<<<<<<<<<
 *             return self._status
 * 
*/
  __pyx_t_1 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_status) != Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":246
 *         """
 *         if self._status is not None:
 *             return self._status             # <<<<<<<<<<<<<<
 * 
 *         future = self._loop.create_future()
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self->_status);
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_status);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":245
 *             Finished status of the RPC as an AioRpcStatus object.
 *         """
 *         if self._status is not None:             # <<<<<<<<<<<<<<
 *             return self._status
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":248
 *             return self._status
 * 
 *         future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._waiters_status.append(future)
 *         await future
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":249
 * 
 *         future = self._loop.create_future()
 *         self._waiters_status.append(future)             # <<<<<<<<<<<<<<
 *         await future
 * 
*/
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_waiters_status == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 249, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_self->_waiters_status, __pyx_cur_scope->__pyx_v_future); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(34, 249, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":250
 *         future = self._loop.create_future()
 *         self._waiters_status.append(future)
 *         await future             # <<<<<<<<<<<<<<
 * 
 *         return self._status
*/
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 250, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 250, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":252
 *         await future
 * 
 *         return self._status             # <<<<<<<<<<<<<<
 * 
 *     def is_ok(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self->_status);
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_status);
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok, "Returns if the RPC is ended with ok.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok = {"is_ok", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ok (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_ok", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_ok", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  grpc_status_code __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ok", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":256
 *     def is_ok(self):
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok             # <<<<<<<<<<<<<<
 * 
 *     async def initial_metadata(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(34, 256, __pyx_L1_error)
  if (__pyx_t_5) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_6 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_v_self->_status->__pyx_vtab)->code(__pyx_v_self->_status, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 256, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.is_ok", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata, "Returns the initial metadata of the RPC call.\n\n        If the initial metadata has not been received yet this function will\n        wait until the RPC gets finished.\n\n        Returns:\n            The tuple object with the initial metadata.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata = {"initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("initial_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("initial_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 258, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_initial_metadata, __pyx_mstate_global->__pyx_n_u_AioCall_initial_metadata, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_27generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 258, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":267
 *             The tuple object with the initial metadata.
 *         """
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             return self._initial_metadata
 * 
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_initial_metadata != ((PyObject*)Py_None));
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":268
 *         """
 *         if self._initial_metadata is not None:
 *             return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 *         future = self._loop.create_future()
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->_initial_metadata);
    __pyx_r = __pyx_cur_scope->__pyx_v_self->_initial_metadata;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":267
 *             The tuple object with the initial metadata.
 *         """
 *         if self._initial_metadata is not None:             # <<<<<<<<<<<<<<
 *             return self._initial_metadata
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":270
 *             return self._initial_metadata
 * 
 *         future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._waiters_initial_metadata.append(future)
 *         await future
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":271
 * 
 *         future = self._loop.create_future()
 *         self._waiters_initial_metadata.append(future)             # <<<<<<<<<<<<<<
 *         await future
 * 
*/
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_waiters_initial_metadata == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(34, 271, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_self->_waiters_initial_metadata, __pyx_cur_scope->__pyx_v_future); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(34, 271, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":272
 *         future = self._loop.create_future()
 *         self._waiters_initial_metadata.append(future)
 *         await future             # <<<<<<<<<<<<<<
 * 
 *         return self._initial_metadata
*/
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 272, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 272, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":274
 *         await future
 * 
 *         return self._initial_metadata             # <<<<<<<<<<<<<<
 * 
 *     def is_locally_cancelled(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_cur_scope->__pyx_v_self->_initial_metadata;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled, "Returns if the RPC was cancelled locally.\n\n        Returns:\n            True when was cancelled locally, False when was cancelled remotely or\n            is still ongoing.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled = {"is_locally_cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_locally_cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_locally_cancelled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_locally_cancelled", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_locally_cancelled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":283
 *             is still ongoing.
 *         """
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return True
 * 
*/
  if (__pyx_v_self->_is_locally_cancelled) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":284
 *         """
 *         if self._is_locally_cancelled:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         return False
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":283
 *             is still ongoing.
 *         """
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return True
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":286
 *             return True
 * 
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def set_internal_error(self, str error_str):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error = {"set_internal_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_error_str = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_internal_error (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_error_str,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 288, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 288, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_internal_error", 0) < 0) __PYX_ERR(34, 288, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_internal_error", 1, 1, 1, i); __PYX_ERR(34, 288, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 288, __pyx_L3_error)
    }
    __pyx_v_error_str = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_internal_error", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 288, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.set_internal_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_error_str), (&PyUnicode_Type), 1, "error_str", 1))) __PYX_ERR(34, 288, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_error_str);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_30set_internal_error(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_error_str) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_internal_error", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":289
 * 
 *     def set_internal_error(self, str error_str):
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.internal,
 *             'Internal error from Core',
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":290
 *     def set_internal_error(self, str error_str):
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,             # <<<<<<<<<<<<<<
 *             'Internal error from Core',
 *             (),
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_internal); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":293
 *             'Internal error from Core',
 *             (),
 *             error_str,             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Internal_error_from_Core, __pyx_mstate_global->__pyx_empty_tuple, __pyx_v_error_str};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 289, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":289
 * 
 *     def set_internal_error(self, str error_str):
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             StatusCode.internal,
 *             'Internal error from Core',
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self->__pyx_vtab)->_set_status(__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 289, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.set_internal_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary, "Performs a unary unary RPC.\n\n        Args:\n          request: the serialized requests in bytes.\n          outbound_initial_metadata: optional outbound metadata.\n          context: instrumentation context.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary = {"unary_unary", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_request = 0;
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unary_unary (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_request,&__pyx_mstate_global->__pyx_n_u_outbound_initial_metadata,&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 296, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "unary_unary", 0) < 0) __PYX_ERR(34, 296, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":299
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
 *                           object context = None):             # <<<<<<<<<<<<<<
 *         """Performs a unary unary RPC.
 * 
*/
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("unary_unary", 0, 2, 3, i); __PYX_ERR(34, 296, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 296, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 296, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_request = ((PyObject*)values[0]);
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[1]);
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unary_unary", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 296, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), (&PyBytes_Type), 1, "request", 1))) __PYX_ERR(34, 297, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 298, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_request, __pyx_v_outbound_initial_metadata, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unary_unary", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 296, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_unary_unary, __pyx_mstate_global->__pyx_n_u_AioCall_unary_unary, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 296, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_34generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  grpc_status_code __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unary_unary", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 296, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":309
 *         cdef tuple ops
 * 
 *         cdef SendInitialMetadataOperation initial_metadata_op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":311
 *         cdef SendInitialMetadataOperation initial_metadata_op = SendInitialMetadataOperation(
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)             # <<<<<<<<<<<<<<
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 309, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":312
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_request, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 312, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":313
 *             self._send_initial_metadata_flags)
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 313, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_close_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":314
 *         cdef SendMessageOperation send_message_op = SendMessageOperation(request, _EMPTY_FLAGS)
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 314, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":315
 *         cdef SendCloseFromClientOperation send_close_op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 315, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":316
 *         cdef ReceiveInitialMetadataOperation receive_initial_metadata_op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 316, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_receive_status_on_client_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":318
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":319
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
 *                receive_initial_metadata_op, receive_message_op,
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":318
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":320
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)
 *         ops = (initial_metadata_op, send_message_op, send_close_op,             # <<<<<<<<<<<<<<
 *                receive_initial_metadata_op, receive_message_op,
 *                receive_status_on_client_op)
*/
  __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op)) != (0)) __PYX_ERR(34, 320, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":326
 *         # Executes all operations in one batch.
 *         # Might raise CancelledError, handling it in Python UnaryUnaryCall.
 *         await execute_batch(self,             # <<<<<<<<<<<<<<
 *                             ops,
 *                             self._loop)
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":328
 *         await execute_batch(self,
 *                             ops,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *         self._set_initial_metadata(receive_initial_metadata_op.initial_metadata())
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 326, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 326, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":330
 *                             self._loop)
 * 
 *         self._set_initial_metadata(receive_initial_metadata_op.initial_metadata())             # <<<<<<<<<<<<<<
 * 
 *         cdef grpc_status_code code
*/
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_initial_metadata_op);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_initial_metadata, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(34, 330, __pyx_L1_error)
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":333
 * 
 *         cdef grpc_status_code code
 *         code = receive_status_on_client_op.code()             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
*/
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_code, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_8 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 333, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_cur_scope->__pyx_v_code = __pyx_t_8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":335
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":336
 * 
 *         self._set_status(AioRpcStatus(
 *             code,             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
*/
  __pyx_t_4 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":337
 *         self._set_status(AioRpcStatus(
 *             code,
 *             receive_status_on_client_op.details(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),
*/
  __pyx_t_10 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_10);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
    __pyx_t_9 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_details, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":338
 *             code,
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.error_string(),
 *         ))
*/
  __pyx_t_11 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_11);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
    __pyx_t_10 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(34, 338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":339
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_12 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_12);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
    __pyx_t_11 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_error_string, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
  }
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_4, __pyx_t_9, __pyx_t_10, __pyx_t_11};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 335, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":335
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 335, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":342
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_11, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(34, 342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":343
 * 
 *         if code == StatusCode.ok:
 *             return receive_message_op.message()             # <<<<<<<<<<<<<<
 *         else:
 *             return None
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_11 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_message, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":342
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":345
 *             return receive_message_op.message()
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     async def _handle_status_once_received(self):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("unary_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received, "Handles the status sent by peer once received.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received = {"_handle_status_once_received", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_status_once_received (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_handle_status_once_received", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_handle_status_once_received", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_status_once_received", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 347, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_status_once_received, __pyx_mstate_global->__pyx_n_u_AioCall__handle_status_once_rec, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 347, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall._handle_status_once_received", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_37generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_status_once_received", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 347, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":349
 *     async def _handle_status_once_received(self):
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 349, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":350
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *         await execute_batch(self, ops, self._loop)
 * 
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(34, 350, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":351
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)             # <<<<<<<<<<<<<<
 * 
 *         # Halts if the RPC is locally cancelled
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 351, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 351, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":354
 * 
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return
 * 
*/
  if (__pyx_cur_scope->__pyx_v_self->_is_locally_cancelled) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":355
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":354
 * 
 *         # Halts if the RPC is locally cancelled
 *         if self._is_locally_cancelled:             # <<<<<<<<<<<<<<
 *             return
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":357
 *             return
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             op.code(),
 *             op.details(),
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":358
 * 
 *         self._set_status(AioRpcStatus(
 *             op.code(),             # <<<<<<<<<<<<<<
 *             op.details(),
 *             op.trailing_metadata(),
*/
  __pyx_t_7 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_code, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":359
 *         self._set_status(AioRpcStatus(
 *             op.code(),
 *             op.details(),             # <<<<<<<<<<<<<<
 *             op.trailing_metadata(),
 *             op.error_string(),
*/
  __pyx_t_8 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_8);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_7 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_details, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":360
 *             op.code(),
 *             op.details(),
 *             op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             op.error_string(),
 *         ))
*/
  __pyx_t_9 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_9);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(34, 360, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":361
 *             op.details(),
 *             op.trailing_metadata(),
 *             op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_10 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_10);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
    __pyx_t_9 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_error_string, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(34, 361, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_4, __pyx_t_2, __pyx_t_7, __pyx_t_8, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 357, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":357
 *             return
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             op.code(),
 *             op.details(),
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 357, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_status_once_received", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message, "Receives one single raw message in bytes.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message = {"receive_serialized_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("receive_serialized_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("receive_serialized_message", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("receive_serialized_message", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("receive_serialized_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 364, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_receive_serialized_message, __pyx_mstate_global->__pyx_n_u_AioCall_receive_serialized_mess, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 364, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.receive_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_40generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  __Pyx_PySendResult __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("receive_serialized_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 364, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":372
 *         # * The client application cancels;
 *         # * The server sends final status.
 *         received_message = await _receive_message(             # <<<<<<<<<<<<<<
 *             self,
 *             self._loop
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_receive_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":374
 *         received_message = await _receive_message(
 *             self,
 *             self._loop             # <<<<<<<<<<<<<<
 *         )
 *         if received_message is not None:
*/
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 372, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 372, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":372
 *         # * The client application cancels;
 *         # * The server sends final status.
 *         received_message = await _receive_message(             # <<<<<<<<<<<<<<
 *             self,
 *             self._loop
*/
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(34, 372, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_received_message = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":376
 *             self._loop
 *         )
 *         if received_message is not None:             # <<<<<<<<<<<<<<
 *             return received_message
 *         else:
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_received_message != ((PyObject*)Py_None));
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":377
 *         )
 *         if received_message is not None:
 *             return received_message             # <<<<<<<<<<<<<<
 *         else:
 *             return EOF
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_received_message);
    __pyx_r = __pyx_cur_scope->__pyx_v_received_message;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":376
 *             self._loop
 *         )
 *         if received_message is not None:             # <<<<<<<<<<<<<<
 *             return received_message
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":379
 *             return received_message
 *         else:
 *             return EOF             # <<<<<<<<<<<<<<
 * 
 *     async def send_serialized_message(self, bytes message):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("receive_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message, "Sends one single raw message in bytes.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message = {"send_serialized_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_message = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_serialized_message (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_message,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 381, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 381, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "send_serialized_message", 0) < 0) __PYX_ERR(34, 381, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("send_serialized_message", 1, 1, 1, i); __PYX_ERR(34, 381, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 381, __pyx_L3_error)
    }
    __pyx_v_message = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_serialized_message", 1, 1, 1, __pyx_nargs); __PYX_ERR(34, 381, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_message), (&PyBytes_Type), 1, "message", 1))) __PYX_ERR(34, 381, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_message);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_message) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_serialized_message", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 381, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_serialized_message, __pyx_mstate_global->__pyx_n_u_AioCall_send_serialized_message, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_43generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  __Pyx_PySendResult __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_serialized_message", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 381, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":383
 *     async def send_serialized_message(self, bytes message):
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,             # <<<<<<<<<<<<<<
 *                             message,
 *                             None,
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_send_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":387
 *                             None,
 *                             False,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *     async def send_receive_close(self):
*/
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_message, Py_None, Py_False, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (6-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 383, __pyx_L1_error)
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 383, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("send_serialized_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close, "Half close the RPC on the client-side.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close = {"send_receive_close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_receive_close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("send_receive_close", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("send_receive_close", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_receive_close", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 389, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_receive_close, __pyx_mstate_global->__pyx_n_u_AioCall_send_receive_close, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 389, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.send_receive_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_46generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_receive_close", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 389, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":391
 *     async def send_receive_close(self):
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 391, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":392
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 *         await execute_batch(self, ops, self._loop)
 * 
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(34, 392, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":393
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
 *         cdef tuple ops = (op,)
 *         await execute_batch(self, ops, self._loop)             # <<<<<<<<<<<<<<
 * 
 *     async def initiate_unary_stream(self,
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 393, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 393, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("send_receive_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream, "Implementation of the start of a unary-stream call.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream = {"initiate_unary_stream", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_request = 0;
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_unary_stream (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_request,&__pyx_mstate_global->__pyx_n_u_outbound_initial_metadata,&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 395, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 395, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 395, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 395, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "initiate_unary_stream", 0) < 0) __PYX_ERR(34, 395, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":398
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Implementation of the start of a unary-stream call."""
 *         # Peer may prematurely end this RPC at any point. We need a coroutine
*/
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("initiate_unary_stream", 0, 2, 3, i); __PYX_ERR(34, 395, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 395, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 395, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 395, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_request = ((PyObject*)values[0]);
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[1]);
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initiate_unary_stream", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 395, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_request), (&PyBytes_Type), 1, "request", 1))) __PYX_ERR(34, 396, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 397, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_request, __pyx_v_outbound_initial_metadata, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_request, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initiate_unary_stream", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 395, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_initiate_unary_stream, __pyx_mstate_global->__pyx_n_u_AioCall_initiate_unary_stream, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 395, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_49generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_PySendResult __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  char const *__pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_unary_stream", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 395, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":402
 *         # Peer may prematurely end this RPC at any point. We need a coroutine
 *         # that watches if the server sends the final status.
 *         status_task = self._loop.create_task(self._handle_status_once_received())             # <<<<<<<<<<<<<<
 * 
 *         cdef tuple outbound_ops
*/
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_handle_status_once_received, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_status_task = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":405
 * 
 *         cdef tuple outbound_ops
 *         cdef Operation initial_metadata_op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":407
 *         cdef Operation initial_metadata_op = SendInitialMetadataOperation(
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)             # <<<<<<<<<<<<<<
 *         cdef Operation send_message_op = SendMessageOperation(
 *             request,
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 405, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_initial_metadata_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":408
 *             outbound_initial_metadata,
 *             self._send_initial_metadata_flags)
 *         cdef Operation send_message_op = SendMessageOperation(             # <<<<<<<<<<<<<<
 *             request,
 *             _EMPTY_FLAGS)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":410
 *         cdef Operation send_message_op = SendMessageOperation(
 *             request,
 *             _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef Operation send_close_op = SendCloseFromClientOperation(
 *             _EMPTY_FLAGS)
*/
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_request, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 408, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":411
 *             request,
 *             _EMPTY_FLAGS)
 *         cdef Operation send_close_op = SendCloseFromClientOperation(             # <<<<<<<<<<<<<<
 *             _EMPTY_FLAGS)
 * 
*/
  __pyx_t_4 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":412
 *             _EMPTY_FLAGS)
 *         cdef Operation send_close_op = SendCloseFromClientOperation(
 *             _EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 412, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 411, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_send_close_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":414
 *             _EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":415
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         outbound_ops = (
 *             initial_metadata_op,
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 415, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":414
 *             _EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":417
 *             set_instrumentation_context_on_call_aio(self, context)
 *         outbound_ops = (
 *             initial_metadata_op,             # <<<<<<<<<<<<<<
 *             send_message_op,
 *             send_close_op,
*/
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_initial_metadata_op)) != (0)) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_send_message_op)) != (0)) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_cur_scope->__pyx_v_send_close_op)) != (0)) __PYX_ERR(34, 417, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_outbound_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":424
 *         try:
 *             # Sends out the request message.
 *             await execute_batch(self,             # <<<<<<<<<<<<<<
 *                                 outbound_ops,
 *                                 self._loop)
*/
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 424, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":426
 *             await execute_batch(self,
 *                                 outbound_ops,
 *                                 self._loop)             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
*/
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_ops, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 424, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(__pyx_t_10 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 424, __pyx_L5_error)
      } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 424, __pyx_L5_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":430
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                                 self._loop),
 *             )
*/
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 430, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":431
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,
 *                                                 self._loop),             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError as batch_error:
*/
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 430, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(__pyx_t_10 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L12_resume_from_await:;
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 430, __pyx_L5_error)
        __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
      } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __pyx_t_1 = __pyx_r; __pyx_r = NULL;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 430, __pyx_L5_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":430
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                                 self._loop),
 *             )
*/
      if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(34, 430, __pyx_L5_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":429
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self,
 *                                                 self._loop),
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 429, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
*/
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":433
 *                                                 self._loop),
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
*/
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 433, __pyx_L7_except_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
    if (__pyx_t_11) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(34, 433, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_v_batch_error = __pyx_t_2;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":435
 *         except ExecuteBatchError as batch_error:
 *             # Core should explain why this batch failed
 *             await status_task             # <<<<<<<<<<<<<<
 * 
 *     async def stream_unary(self,
*/
        __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_status_task, &__pyx_r);
        if (likely(__pyx_t_10 == PYGEN_NEXT)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_7);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 3;
          return __pyx_r;
          __pyx_L20_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 435, __pyx_L18_error)
        } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_DECREF(__pyx_r); __pyx_r = 0;
        } else {
          __Pyx_XGOTREF(__pyx_r);
          __PYX_ERR(34, 435, __pyx_L18_error)
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":433
 *                                                 self._loop),
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          goto __pyx_L19;
        }
        __pyx_L18_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          if ( unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_14);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
          __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
          goto __pyx_L7_except_error;
        }
        __pyx_L19:;
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L6_exception_handled;
    }
    goto __pyx_L7_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":422
 *         )
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out the request message.
 *             await execute_batch(self,
*/
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("initiate_unary_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary, "Actual implementation of the complete unary-stream call.\n\n        Needs to pay extra attention to the raise mechanism. If we want to\n        propagate the final status exception, then we have to raise it.\n        Othersize, it would end normally and raise `StopAsyncIteration()`.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary = {"stream_unary", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_metadata_sent_observer = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_unary (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_outbound_initial_metadata,&__pyx_mstate_global->__pyx_n_u_metadata_sent_observer,&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 437, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 437, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 437, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 437, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_unary", 0) < 0) __PYX_ERR(34, 437, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":440
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Actual implementation of the complete unary-stream call.
 * 
*/
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_unary", 0, 2, 3, i); __PYX_ERR(34, 437, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 437, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 437, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 437, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[0]);
    __pyx_v_metadata_sent_observer = values[1];
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stream_unary", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 437, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 438, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_outbound_initial_metadata, __pyx_v_metadata_sent_observer, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stream_unary", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 437, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_metadata_sent_observer = __pyx_v_metadata_sent_observer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_stream_unary, __pyx_mstate_global->__pyx_n_u_AioCall_stream_unary, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 437, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_52generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  __Pyx_PySendResult __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  grpc_status_code __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stream_unary", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    case 2: goto __pyx_L11_resume_from_await;
    case 3: goto __pyx_L14_resume_from_await;
    case 4: goto __pyx_L16_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 437, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":449
 *         try:
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
*/
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_send_initial_metadata); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 449, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":451
 *             await _send_initial_metadata(self,
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,             # <<<<<<<<<<<<<<
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
*/
      __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 451, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":452
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 *                                         self._loop)             # <<<<<<<<<<<<<<
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()
*/
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_7, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (5-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 449, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(__pyx_t_9 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 449, __pyx_L4_error)
      } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 449, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":454
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
*/
      __pyx_t_6 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_7 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; 
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 454, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":458
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self, self._loop)             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError:
*/
      __pyx_t_7 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 458, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_7);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 458, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(__pyx_t_9 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 458, __pyx_L4_error)
        __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4);
      } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __pyx_t_4 = __pyx_r; __pyx_r = NULL;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 458, __pyx_L4_error)
      }
      if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(34, 458, __pyx_L4_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":457
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 457, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":460
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await self._handle_status_once_received()
*/
    __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 460, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_7);
    __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0;
    if (__pyx_t_10) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(34, 460, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":462
 *         except ExecuteBatchError:
 *             # Core should explain why this batch failed
 *             await self._handle_status_once_received()             # <<<<<<<<<<<<<<
 * 
 *             # Allow upper layer to proceed only if the status is set
*/
      __pyx_t_11 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_8 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
        __pyx_t_5 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_handle_status_once_received, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 462, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_5);
      }
      __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5, &__pyx_r);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(__pyx_t_9 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_t_2);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_t_4);
        __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
        __Pyx_XGIVEREF(__pyx_t_6);
        __pyx_cur_scope->__pyx_t_4 = __pyx_t_6;
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_5 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_SwapException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 3;
        return __pyx_r;
        __pyx_L14_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_2);
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
        __pyx_cur_scope->__pyx_t_3 = 0;
        __Pyx_XGOTREF(__pyx_t_4);
        __pyx_t_6 = __pyx_cur_scope->__pyx_t_4;
        __pyx_cur_scope->__pyx_t_4 = 0;
        __Pyx_XGOTREF(__pyx_t_6);
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_5;
        __pyx_cur_scope->__pyx_t_5 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 462, __pyx_L6_except_error)
      } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 462, __pyx_L6_except_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":465
 * 
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 *             return None
 * 
*/
      __pyx_t_11 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_12 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; 
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
        assert(__pyx_t_11);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
        __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 465, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":466
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()
 *             return None             # <<<<<<<<<<<<<<
 * 
 *         cdef tuple inbound_ops
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":447
 *         Othersize, it would end normally and raise `StopAsyncIteration()`.
 *         """
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L9_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":469
 * 
 *         cdef tuple inbound_ops
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation);
  __pyx_t_7 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 469, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_4);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_4);
  __pyx_cur_scope->__pyx_v_receive_message_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":470
 *         cdef tuple inbound_ops
 *         cdef ReceiveMessageOperation receive_message_op = ReceiveMessageOperation(_EMPTY_FLAGS)
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
*/
  __pyx_t_7 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation); 
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 470, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_4);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_4);
  __pyx_cur_scope->__pyx_v_receive_status_on_client_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":472
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
*/
  __pyx_t_13 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_13) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":473
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
 * 
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_8 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 473, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":472
 *         cdef ReceiveStatusOnClientOperation receive_status_on_client_op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":474
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)
 *         inbound_ops = (receive_message_op, receive_status_on_client_op)             # <<<<<<<<<<<<<<
 * 
 *         # Executes all operations in one batch.
*/
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op)) != (0)) __PYX_ERR(34, 474, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op)) != (0)) __PYX_ERR(34, 474, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_cur_scope->__pyx_v_inbound_ops = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":477
 * 
 *         # Executes all operations in one batch.
 *         await execute_batch(self,             # <<<<<<<<<<<<<<
 *                             inbound_ops,
 *                             self._loop)
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_5)) __PYX_ERR(34, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":479
 *         await execute_batch(self,
 *                             inbound_ops,
 *                             self._loop)             # <<<<<<<<<<<<<<
 * 
 *         cdef grpc_status_code code
*/
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_6);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_6, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_inbound_ops, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4, &__pyx_r);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (likely(__pyx_t_9 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 4;
    return __pyx_r;
    __pyx_L16_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 477, __pyx_L1_error)
  } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(34, 477, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":482
 * 
 *         cdef grpc_status_code code
 *         code = receive_status_on_client_op.code()             # <<<<<<<<<<<<<<
 * 
 *         self._set_status(AioRpcStatus(
*/
  __pyx_t_5 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_code, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __pyx_t_14 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 482, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_cur_scope->__pyx_v_code = __pyx_t_14;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":484
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
*/
  __pyx_t_5 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus);
  __pyx_t_6 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":485
 * 
 *         self._set_status(AioRpcStatus(
 *             code,             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
*/
  __pyx_t_7 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":486
 *         self._set_status(AioRpcStatus(
 *             code,
 *             receive_status_on_client_op.details(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),
*/
  __pyx_t_11 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_11);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
    __pyx_t_12 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_details, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(34, 486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":487
 *             code,
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),             # <<<<<<<<<<<<<<
 *             receive_status_on_client_op.error_string(),
 *         ))
*/
  __pyx_t_15 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_15);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL};
    __pyx_t_11 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(34, 487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":488
 *             receive_status_on_client_op.details(),
 *             receive_status_on_client_op.trailing_metadata(),
 *             receive_status_on_client_op.error_string(),             # <<<<<<<<<<<<<<
 *         ))
 * 
*/
  __pyx_t_16 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_status_on_client_op);
  __Pyx_INCREF(__pyx_t_16);
  __pyx_t_8 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_16, NULL};
    __pyx_t_15 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_error_string, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (unlikely(!__pyx_t_15)) __PYX_ERR(34, 488, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
  }
  __pyx_t_8 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_7, __pyx_t_12, __pyx_t_11, __pyx_t_15};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_8, (5-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 484, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_4);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":484
 *         code = receive_status_on_client_op.code()
 * 
 *         self._set_status(AioRpcStatus(             # <<<<<<<<<<<<<<
 *             code,
 *             receive_status_on_client_op.details(),
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_status(__pyx_cur_scope->__pyx_v_self, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 484, __pyx_L1_error)
  __Pyx_DECREF((PyObject *)__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":491
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
*/
  __pyx_t_4 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_15)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_15, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(34, 491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_13) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":492
 * 
 *         if code == StatusCode.ok:
 *             return receive_message_op.message()             # <<<<<<<<<<<<<<
 *         else:
 *             return None
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_15 = ((PyObject *)__pyx_cur_scope->__pyx_v_receive_message_op);
    __Pyx_INCREF(__pyx_t_15);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_message, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
    }
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":491
 *         ))
 * 
 *         if code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *             return receive_message_op.message()
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":494
 *             return receive_message_op.message()
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     async def initiate_stream_stream(self,
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("stream_unary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream, "Actual implementation of the complete stream-stream call.\n\n        Needs to pay extra attention to the raise mechanism. If we want to\n        propagate the final status exception, then we have to raise it.\n        Othersize, it would end normally and raise `StopAsyncIteration()`.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream = {"initiate_stream_stream", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_outbound_initial_metadata = 0;
  PyObject *__pyx_v_metadata_sent_observer = 0;
  PyObject *__pyx_v_context = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_stream_stream (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_outbound_initial_metadata,&__pyx_mstate_global->__pyx_n_u_metadata_sent_observer,&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(34, 496, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 496, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 496, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 496, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "initiate_stream_stream", 0) < 0) __PYX_ERR(34, 496, __pyx_L3_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":499
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
 *                            object context = None):             # <<<<<<<<<<<<<<
 *         """Actual implementation of the complete stream-stream call.
 * 
*/
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("initiate_stream_stream", 0, 2, 3, i); __PYX_ERR(34, 496, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(34, 496, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(34, 496, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(34, 496, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_outbound_initial_metadata = ((PyObject*)values[0]);
    __pyx_v_metadata_sent_observer = values[1];
    __pyx_v_context = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initiate_stream_stream", 0, 2, 3, __pyx_nargs); __PYX_ERR(34, 496, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outbound_initial_metadata), (&PyTuple_Type), 1, "outbound_initial_metadata", 1))) __PYX_ERR(34, 497, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v_outbound_initial_metadata, __pyx_v_metadata_sent_observer, __pyx_v_context);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, PyObject *__pyx_v_outbound_initial_metadata, PyObject *__pyx_v_metadata_sent_observer, PyObject *__pyx_v_context) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initiate_stream_stream", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(34, 496, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_outbound_initial_metadata = __pyx_v_outbound_initial_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_outbound_initial_metadata);
  __pyx_cur_scope->__pyx_v_metadata_sent_observer = __pyx_v_metadata_sent_observer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
  __pyx_cur_scope->__pyx_v_context = __pyx_v_context;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_context);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_context);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_initiate_stream_stream, __pyx_mstate_global->__pyx_n_u_AioCall_initiate_stream_stream, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(34, 496, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_8_AioCall_55generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_PySendResult __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  char const *__pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initiate_stream_stream", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(34, 496, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":508
 *         # Peer may prematurely end this RPC at any point. We need a coroutine
 *         # that watches if the server sends the final status.
 *         status_task = self._loop.create_task(self._handle_status_once_received())             # <<<<<<<<<<<<<<
 * 
 *         if context is not None:
*/
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_handle_status_once_received, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_status_task = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":510
 *         status_task = self._loop.create_task(self._handle_status_once_received())
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_context != Py_None);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":511
 * 
 *         if context is not None:
 *             set_instrumentation_context_on_call_aio(self, context)             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 511, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_context};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 511, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":510
 *         status_task = self._loop.create_task(self._handle_status_once_received())
 * 
 *         if context is not None:             # <<<<<<<<<<<<<<
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":515
 *         try:
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,             # <<<<<<<<<<<<<<
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
*/
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_send_initial_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 515, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":517
 *             await _send_initial_metadata(self,
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,             # <<<<<<<<<<<<<<
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
*/
      __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_cur_scope->__pyx_v_self->_send_initial_metadata_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 517, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":518
 *                                         outbound_initial_metadata,
 *                                         self._send_initial_metadata_flags,
 *                                         self._loop)             # <<<<<<<<<<<<<<
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()
*/
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[5] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_outbound_initial_metadata, __pyx_t_4, __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 515, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(__pyx_t_10 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 515, __pyx_L5_error)
      } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 515, __pyx_L5_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":520
 *                                         self._loop)
 *             # Notify upper level that sending messages are allowed now.
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
 * 
 *             # Receives initial metadata.
*/
      __pyx_t_3 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
      __pyx_t_4 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; 
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 520, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":524
 *             # Receives initial metadata.
 *             self._set_initial_metadata(
 *                 await _receive_initial_metadata(self, self._loop)             # <<<<<<<<<<<<<<
 *             )
 *         except ExecuteBatchError as batch_error:
*/
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 524, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_cur_scope->__pyx_v_self->_loop};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 524, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(__pyx_t_10 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_7);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L12_resume_from_await:;
        __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_7);
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 524, __pyx_L5_error)
        __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
      } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __pyx_t_1 = __pyx_r; __pyx_r = NULL;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(34, 524, __pyx_L5_error)
      }
      if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(34, 524, __pyx_L5_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":523
 * 
 *             # Receives initial metadata.
 *             self._set_initial_metadata(             # <<<<<<<<<<<<<<
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->_set_initial_metadata(__pyx_cur_scope->__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(34, 523, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":526
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
*/
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 526, __pyx_L7_except_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_3, __pyx_t_4);
    __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0;
    if (__pyx_t_11) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(34, 526, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_cur_scope->__pyx_v_batch_error = __pyx_t_3;
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":528
 *         except ExecuteBatchError as batch_error:
 *             # Core should explain why this batch failed
 *             await status_task             # <<<<<<<<<<<<<<
 * 
 *             # Allow upper layer to proceed only if the status is set
*/
        __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_status_task, &__pyx_r);
        if (likely(__pyx_t_10 == PYGEN_NEXT)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_4);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
          __Pyx_XGIVEREF(__pyx_t_7);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 3;
          return __pyx_r;
          __pyx_L20_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_7);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(34, 528, __pyx_L18_error)
        } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_DECREF(__pyx_r); __pyx_r = 0;
        } else {
          __Pyx_XGOTREF(__pyx_r);
          __PYX_ERR(34, 528, __pyx_L18_error)
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":531
 * 
 *             # Allow upper layer to proceed only if the status is set
 *             metadata_sent_observer()             # <<<<<<<<<<<<<<
*/
        __pyx_t_12 = NULL;
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata_sent_observer);
        __pyx_t_13 = __pyx_cur_scope->__pyx_v_metadata_sent_observer; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
          assert(__pyx_t_12);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 531, __pyx_L18_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":526
 *                 await _receive_initial_metadata(self, self._loop)
 *             )
 *         except ExecuteBatchError as batch_error:             # <<<<<<<<<<<<<<
 *             # Core should explain why this batch failed
 *             await status_task
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          goto __pyx_L19;
        }
        __pyx_L18_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_11 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_batch_error);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_batch_error); __pyx_cur_scope->__pyx_v_batch_error = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
          goto __pyx_L7_except_error;
        }
        __pyx_L19:;
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L6_exception_handled;
    }
    goto __pyx_L7_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":513
 *             set_instrumentation_context_on_call_aio(self, context)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             # Sends out initial_metadata ASAP.
 *             await _send_initial_metadata(self,
*/
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("initiate_stream_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":18
 * cdef class _AioCall(GrpcCallWrapper):
 *     cdef:
 *         readonly AioChannel _channel             # <<<<<<<<<<<<<<
 *         list _references
 *         object _deadline
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_8_channel___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_channel);
  __pyx_r = ((PyObject *)__pyx_v_self->_channel);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":38
 *         # tasks that are asking for one of the field when they are not yet
 *         # available.
 *         readonly AioRpcStatus _status             # <<<<<<<<<<<<<<
 *         readonly tuple _initial_metadata
 *         list _waiters_status
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_7_status___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_status);
  __pyx_r = ((PyObject *)__pyx_v_self->_status);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pxd.pxi":39
 *         # available.
 *         readonly AioRpcStatus _status
 *         readonly tuple _initial_metadata             # <<<<<<<<<<<<<<
 *         list _waiters_status
 *         list _waiters_initial_metadata
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_initial_metadata);
  __pyx_r = __pyx_v_self->_initial_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_56__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8_AioCall_58__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._AioCall.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":29
 * 
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         if options is None:
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_target = 0;
  PyObject *__pyx_v_options = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials = 0;
  PyObject *__pyx_v_loop = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target,&__pyx_mstate_global->__pyx_n_u_options,&__pyx_mstate_global->__pyx_n_u_credentials,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(8, 29, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(8, 29, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(8, 29, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 29, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 29, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(8, 29, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, i); __PYX_ERR(8, 29, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 29, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 29, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(8, 29, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(8, 29, __pyx_L3_error)
    }
    __pyx_v_target = ((PyObject*)values[0]);
    __pyx_v_options = ((PyObject*)values[1]);
    __pyx_v_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)values[2]);
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(8, 29, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), (&PyBytes_Type), 1, "target", 1))) __PYX_ERR(8, 29, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_options), (&PyTuple_Type), 1, "options", 1))) __PYX_ERR(8, 29, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_credentials), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, 1, "credentials", 0))) __PYX_ERR(8, 29, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_target, __pyx_v_options, __pyx_v_credentials, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_options, struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v_credentials, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *__pyx_v_channel_args = 0;
  grpc_channel_credentials *__pyx_v_creds;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  char *__pyx_t_6;
  grpc_channel_args *__pyx_t_7;
  grpc_channel_credentials *__pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_options);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":30
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         if options is None:
 *             options = ()
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":31
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()
 *         if options is None:             # <<<<<<<<<<<<<<
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
*/
  __pyx_t_2 = (__pyx_v_options == ((PyObject*)Py_None));
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":32
 *         init_grpc_aio()
 *         if options is None:
 *             options = ()             # <<<<<<<<<<<<<<
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
    __Pyx_DECREF_SET(__pyx_v_options, __pyx_mstate_global->__pyx_empty_tuple);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":31
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):
 *         init_grpc_aio()
 *         if options is None:             # <<<<<<<<<<<<<<
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":33
 *         if options is None:
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)             # <<<<<<<<<<<<<<
 *         self._target = target
 *         self.loop = loop
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs); 
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_options};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 33, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_channel_args = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":34
 *             options = ()
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target             # <<<<<<<<<<<<<<
 *         self.loop = loop
 *         self._status = AIO_CHANNEL_STATUS_READY
*/
  __Pyx_INCREF(__pyx_v_target);
  __Pyx_GIVEREF(__pyx_v_target);
  __Pyx_GOTREF(__pyx_v_self->_target);
  __Pyx_DECREF(__pyx_v_self->_target);
  __pyx_v_self->_target = __pyx_v_target;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":35
 *         cdef _ChannelArgs channel_args = _ChannelArgs(options)
 *         self._target = target
 *         self.loop = loop             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
*/
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->loop);
  __Pyx_DECREF(__pyx_v_self->loop);
  __pyx_v_self->loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":36
 *         self._target = target
 *         self.loop = loop
 *         self._status = AIO_CHANNEL_STATUS_READY             # <<<<<<<<<<<<<<
 * 
 *         if credentials is None:
*/
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_READY;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":38
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
 *         if credentials is None:             # <<<<<<<<<<<<<<
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
*/
  __pyx_t_2 = (((PyObject *)__pyx_v_credentials) == Py_None);
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":39
 * 
 *         if credentials is None:
 *             self._is_secure = False             # <<<<<<<<<<<<<<
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,
*/
    __pyx_v_self->_is_secure = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":40
 *         if credentials is None:
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();             # <<<<<<<<<<<<<<
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
*/
    __pyx_v_creds = grpc_insecure_credentials_create();

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":41
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
*/
    if (unlikely(__pyx_v_target == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(8, 41, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(8, 41, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":43
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 *                 channel_args.c_args())             # <<<<<<<<<<<<<<
 *             grpc_channel_credentials_release(creds)
 *         else:
*/
    __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 43, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":41
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
*/
    __pyx_v_self->channel = grpc_channel_create(((char *)__pyx_t_6), __pyx_v_creds, __pyx_t_7);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":44
 *                 creds,
 *                 channel_args.c_args())
 *             grpc_channel_credentials_release(creds)             # <<<<<<<<<<<<<<
 *         else:
 *             self._is_secure = True
*/
    grpc_channel_credentials_release(__pyx_v_creds);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":38
 *         self._status = AIO_CHANNEL_STATUS_READY
 * 
 *         if credentials is None:             # <<<<<<<<<<<<<<
 *             self._is_secure = False
 *             creds = grpc_insecure_credentials_create();
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":46
 *             grpc_channel_credentials_release(creds)
 *         else:
 *             self._is_secure = True             # <<<<<<<<<<<<<<
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,
*/
  /*else*/ {
    __pyx_v_self->_is_secure = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":47
 *         else:
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()             # <<<<<<<<<<<<<<
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
*/
    __pyx_t_8 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v_credentials->__pyx_vtab)->c(__pyx_v_credentials); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 47, __pyx_L1_error)
    __pyx_v_creds = ((grpc_channel_credentials *)__pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":48
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
*/
    if (unlikely(__pyx_v_target == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(8, 48, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyBytes_AsWritableString(__pyx_v_target); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(8, 48, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":50
 *             self.channel = grpc_channel_create(<char *>target,
 *                 creds,
 *                 channel_args.c_args())             # <<<<<<<<<<<<<<
 *             grpc_channel_credentials_release(creds)
 * 
*/
    __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs *)__pyx_v_channel_args->__pyx_vtab)->c_args(__pyx_v_channel_args); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 50, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":48
 *             self._is_secure = True
 *             creds = <grpc_channel_credentials *> credentials.c()
 *             self.channel = grpc_channel_create(<char *>target,             # <<<<<<<<<<<<<<
 *                 creds,
 *                 channel_args.c_args())
*/
    __pyx_v_self->channel = grpc_channel_create(((char *)__pyx_t_6), __pyx_v_creds, __pyx_t_7);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":51
 *                 creds,
 *                 channel_args.c_args())
 *             grpc_channel_credentials_release(creds)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
    grpc_channel_credentials_release(__pyx_v_creds);
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":29
 * 
 * cdef class AioChannel:
 *     def __cinit__(self, bytes target, tuple options, ChannelCredentials credentials, object loop):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         if options is None:
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_channel_args);
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":53
 *             grpc_channel_credentials_release(creds)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":54
 * 
 *     def __dealloc__(self):
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":53
 *             grpc_channel_credentials_release(creds)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.AioChannel.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":56
 *         shutdown_grpc_aio()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_4__repr__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_v_class_name = NULL;
  PyObject *__pyx_v_id_ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5[5];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":57
 * 
 *     def __repr__(self):
 *         class_name = self.__class__.__name__             # <<<<<<<<<<<<<<
 *         id_ = id(self)
 *         return f"<{class_name} {id_}>"
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_class_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":58
 *     def __repr__(self):
 *         class_name = self.__class__.__name__
 *         id_ = id(self)             # <<<<<<<<<<<<<<
 *         return f"<{class_name} {id_}>"
 * 
*/
  __pyx_t_1 = NULL;
  __Pyx_INCREF(__pyx_builtin_id);
  __pyx_t_3 = __pyx_builtin_id; 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_self)};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v_id_ = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":59
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
 *         return f"<{class_name} {id_}>"             # <<<<<<<<<<<<<<
 * 
 *     def check_connectivity_state(self, bint try_to_connect):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_class_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_id_, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u__7;
  __pyx_t_5[1] = __pyx_t_2;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__8;
  __pyx_t_5[3] = __pyx_t_3;
  __pyx_t_5[4] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":56
 *         shutdown_grpc_aio()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         class_name = self.__class__.__name__
 *         id_ = id(self)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_class_name);
  __Pyx_XDECREF(__pyx_v_id_);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state, "A Cython wrapper for Core's check connectivity state API.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state = {"check_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_try_to_connect;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_try_to_connect,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(8, 61, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 61, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "check_connectivity_state", 0) < 0) __PYX_ERR(8, 61, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, i); __PYX_ERR(8, 61, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 61, __pyx_L3_error)
    }
    __pyx_v_try_to_connect = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_try_to_connect == (int)-1) && PyErr_Occurred())) __PYX_ERR(8, 61, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("check_connectivity_state", 1, 1, 1, __pyx_nargs); __PYX_ERR(8, 61, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_try_to_connect);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, int __pyx_v_try_to_connect) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("check_connectivity_state", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":63
 *     def check_connectivity_state(self, bint try_to_connect):
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:             # <<<<<<<<<<<<<<
 *             return ConnectivityState.shutdown
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":64
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
 *             return ConnectivityState.shutdown             # <<<<<<<<<<<<<<
 *         else:
 *             return grpc_channel_check_connectivity_state(
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ConnectivityState); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_shutdown); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":63
 *     def check_connectivity_state(self, bint try_to_connect):
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:             # <<<<<<<<<<<<<<
 *             return ConnectivityState.shutdown
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":66
 *             return ConnectivityState.shutdown
 *         else:
 *             return grpc_channel_check_connectivity_state(             # <<<<<<<<<<<<<<
 *                 self.channel,
 *                 try_to_connect,
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":68
 *             return grpc_channel_check_connectivity_state(
 *                 self.channel,
 *                 try_to_connect,             # <<<<<<<<<<<<<<
 *             )
 * 
*/
    __pyx_t_3 = __Pyx_PyLong_From_grpc_connectivity_state(grpc_channel_check_connectivity_state(__pyx_v_self->channel, __pyx_v_try_to_connect)); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.check_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state, "Watch for one connectivity state change.\n\n        Keeps mirroring the behavior from Core, so we can easily switch to\n        other design of API if necessary.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state = {"watch_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  grpc_connectivity_state __pyx_v_last_observed_state;
  PyObject *__pyx_v_deadline = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_last_observed_state,&__pyx_mstate_global->__pyx_n_u_deadline,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(8, 71, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 71, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 71, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "watch_connectivity_state", 0) < 0) __PYX_ERR(8, 71, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, i); __PYX_ERR(8, 71, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 71, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 71, __pyx_L3_error)
    }
    __pyx_v_last_observed_state = ((grpc_connectivity_state)__Pyx_PyLong_As_grpc_connectivity_state(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 72, __pyx_L3_error)
    __pyx_v_deadline = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("watch_connectivity_state", 1, 2, 2, __pyx_nargs); __PYX_ERR(8, 71, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_last_observed_state, __pyx_v_deadline);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, grpc_connectivity_state __pyx_v_last_observed_state, PyObject *__pyx_v_deadline) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("watch_connectivity_state", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(8, 71, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_last_observed_state = __pyx_v_last_observed_state;
  __pyx_cur_scope->__pyx_v_deadline = __pyx_v_deadline;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_deadline);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_deadline);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_watch_connectivity_state, __pyx_mstate_global->__pyx_n_u_AioChannel_watch_connectivity_st, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(8, 71, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_10AioChannel_10generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  gpr_timespec __pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  grpc_completion_queue_functor *__pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_PySendResult __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("watch_connectivity_state", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(8, 71, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":79
 *         other design of API if necessary.
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
*/
  switch (__pyx_cur_scope->__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":80
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):
 *             raise UsageError('Channel is closed.')             # <<<<<<<<<<<<<<
 * 
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Channel_is_closed};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 80, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(8, 80, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":79
 *         other design of API if necessary.
 *         """
 *         if self._status in (AIO_CHANNEL_STATUS_DESTROYED, AIO_CHANNEL_STATUS_CLOSING):             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
*/
    break;
    default: break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":82
 *             raise UsageError('Channel is closed.')
 * 
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)             # <<<<<<<<<<<<<<
 * 
 *         cdef object future = self.loop.create_future()
*/
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time(__pyx_cur_scope->__pyx_v_deadline); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 82, __pyx_L1_error)
  __pyx_cur_scope->__pyx_v_c_deadline = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":84
 *         cdef gpr_timespec c_deadline = _timespec_from_time(deadline)
 * 
 *         cdef object future = self.loop.create_future()             # <<<<<<<<<<<<<<
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
 *             future,
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->loop;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":85
 * 
 *         cdef object future = self.loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             future,
 *             self.loop,
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":88
 *             future,
 *             self.loop,
 *             _WATCH_CONNECTIVITY_FAILURE_HANDLER)             # <<<<<<<<<<<<<<
 *         grpc_channel_watch_connectivity_state(
 *             self.channel,
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_future, __pyx_cur_scope->__pyx_v_self->loop, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 85, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":93
 *             last_observed_state,
 *             c_deadline,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             wrapper.c_functor())
 * 
*/
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(8, 93, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":94
 *             c_deadline,
 *             global_completion_queue(),
 *             wrapper.c_functor())             # <<<<<<<<<<<<<<
 * 
 *         try:
*/
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(8, 94, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":89
 *             self.loop,
 *             _WATCH_CONNECTIVITY_FAILURE_HANDLER)
 *         grpc_channel_watch_connectivity_state(             # <<<<<<<<<<<<<<
 *             self.channel,
 *             last_observed_state,
*/
  grpc_channel_watch_connectivity_state(__pyx_cur_scope->__pyx_v_self->channel, __pyx_cur_scope->__pyx_v_last_observed_state, __pyx_cur_scope->__pyx_v_c_deadline, __pyx_t_6, __pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":97
 * 
 *         try:
 *             await future             # <<<<<<<<<<<<<<
 *         except _WatchConnectivityFailed:
 *             return False
*/
      __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
      if (likely(__pyx_t_11 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(8, 97, __pyx_L4_error)
      } else if (likely(__pyx_t_11 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(8, 97, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":101
 *             return False
 *         else:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *     def closing(self):
*/
    /*else:*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_True);
      __pyx_r = Py_True;
      goto __pyx_L7_except_return;
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":98
 *         try:
 *             await future
 *         except _WatchConnectivityFailed:             # <<<<<<<<<<<<<<
 *             return False
 *         else:
*/
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed); if (unlikely(!__pyx_t_12)) __PYX_ERR(8, 98, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_13 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
    if (__pyx_t_13) {
      __Pyx_ErrRestore(0,0,0);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":99
 *             await future
 *         except _WatchConnectivityFailed:
 *             return False             # <<<<<<<<<<<<<<
 *         else:
 *             return True
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(Py_False);
      __pyx_r = Py_False;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":96
 *             wrapper.c_functor())
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             await future
 *         except _WatchConnectivityFailed:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_12);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("watch_connectivity_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_12closing = {"closing", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closing (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("closing", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("closing", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_11closing(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closing", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":104
 * 
 *     def closing(self):
 *         self._status = AIO_CHANNEL_STATUS_CLOSING             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
*/
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_14close = {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("close", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("close", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_13close(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":107
 * 
 *     def close(self):
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED             # <<<<<<<<<<<<<<
 *         grpc_channel_destroy(self.channel)
 * 
*/
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":108
 *     def close(self):
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)             # <<<<<<<<<<<<<<
 * 
 *     def closed(self):
*/
  grpc_channel_destroy(__pyx_v_self->channel);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_16closed = {"closed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("closed (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("closed", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("closed", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_15closed(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("closed", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":111
 * 
 *     def closed(self):
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)             # <<<<<<<<<<<<<<
 * 
 *     def call(self,
*/
  __Pyx_XDECREF(__pyx_r);
  switch (__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_CLOSING:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_CHANNEL_STATUS_DESTROYED:
    __pyx_t_1 = 1;
    break;
    default:
    __pyx_t_1 = 0;
    break;
  }
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.closed", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call, "Assembles a Cython Call object.\n\n        Returns:\n          An _AioCall object.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_18call = {"call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_deadline = 0;
  PyObject *__pyx_v_python_call_credentials = 0;
  PyObject *__pyx_v_wait_for_ready = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_deadline,&__pyx_mstate_global->__pyx_n_u_python_call_credentials,&__pyx_mstate_global->__pyx_n_u_wait_for_ready,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(8, 113, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(8, 113, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(8, 113, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 113, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 113, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "call", 0) < 0) __PYX_ERR(8, 113, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, i); __PYX_ERR(8, 113, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(8, 113, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(8, 113, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(8, 113, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(8, 113, __pyx_L3_error)
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_deadline = values[1];
    __pyx_v_python_call_credentials = values[2];
    __pyx_v_wait_for_ready = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call", 1, 4, 4, __pyx_nargs); __PYX_ERR(8, 113, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyBytes_Type), 1, "method", 1))) __PYX_ERR(8, 114, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v_method, __pyx_v_deadline, __pyx_v_python_call_credentials, __pyx_v_wait_for_ready);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_17call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_deadline, PyObject *__pyx_v_python_call_credentials, PyObject *__pyx_v_wait_for_ready) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *__pyx_v_cython_call_credentials = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":123
 *           An _AioCall object.
 *         """
 *         if self.closed():             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_closed, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 123, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(8, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_4)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":124
 *         """
 *         if self.closed():
 *             raise UsageError('Channel is closed.')             # <<<<<<<<<<<<<<
 * 
 *         cdef CallCredentials cython_call_credentials
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Channel_is_closed};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 124, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(8, 124, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":123
 *           An _AioCall object.
 *         """
 *         if self.closed():             # <<<<<<<<<<<<<<
 *             raise UsageError('Channel is closed.')
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":127
 * 
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:             # <<<<<<<<<<<<<<
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")
*/
  __pyx_t_4 = (__pyx_v_python_call_credentials != Py_None);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":128
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:
 *             if not self._is_secure:             # <<<<<<<<<<<<<<
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
*/
    __pyx_t_4 = (!__pyx_v_self->_is_secure);
    if (unlikely(__pyx_t_4)) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":129
 *         if python_call_credentials is not None:
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")             # <<<<<<<<<<<<<<
 * 
 *             cython_call_credentials = python_call_credentials._credentials
*/
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
        __pyx_t_3 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Call_credentials_are_only_valid};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_Raise(__pyx_t_1, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __PYX_ERR(8, 129, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":128
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:
 *             if not self._is_secure:             # <<<<<<<<<<<<<<
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":131
 *                 raise UsageError("Call credentials are only valid on secure channels")
 * 
 *             cython_call_credentials = python_call_credentials._credentials             # <<<<<<<<<<<<<<
 *         else:
 *             cython_call_credentials = None
*/
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_python_call_credentials, __pyx_mstate_global->__pyx_n_u_credentials_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials))))) __PYX_ERR(8, 131, __pyx_L1_error)
    __pyx_v_cython_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":127
 * 
 *         cdef CallCredentials cython_call_credentials
 *         if python_call_credentials is not None:             # <<<<<<<<<<<<<<
 *             if not self._is_secure:
 *                 raise UsageError("Call credentials are only valid on secure channels")
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":133
 *             cython_call_credentials = python_call_credentials._credentials
 *         else:
 *             cython_call_credentials = None             # <<<<<<<<<<<<<<
 * 
 *         return _AioCall(self, deadline, method, cython_call_credentials, wait_for_ready)
*/
  /*else*/ {
    __Pyx_INCREF(Py_None);
    __pyx_v_cython_call_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)Py_None);
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":135
 *             cython_call_credentials = None
 * 
 *         return _AioCall(self, deadline, method, cython_call_credentials, wait_for_ready)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall); 
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_v_deadline, __pyx_v_method, ((PyObject *)__pyx_v_cython_call_credentials), __pyx_v_wait_for_ready};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_3, (6-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 135, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cython_call_credentials);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_19__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_10AioChannel_21__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioChannel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":25
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
 * cdef _augment_metadata(tuple metadata, object compression):             # <<<<<<<<<<<<<<
 *     if compression is None:
 *         return metadata
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(PyObject *__pyx_v_metadata, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_augment_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":26
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:             # <<<<<<<<<<<<<<
 *         return metadata
 *     else:
*/
  __pyx_t_1 = (__pyx_v_compression == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":27
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:
 *         return metadata             # <<<<<<<<<<<<<<
 *     else:
 *         return ((
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_metadata);
    __pyx_r = __pyx_v_metadata;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":26
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
 *     if compression is None:             # <<<<<<<<<<<<<<
 *         return metadata
 *     else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":29
 *         return metadata
 *     else:
 *         return ((             # <<<<<<<<<<<<<<
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":30
 *     else:
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,             # <<<<<<<<<<<<<<
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_GRPC_COMPRESSION_REQUEST_ALGORIT); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":31
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]             # <<<<<<<<<<<<<<
 *         ),) + metadata
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_COMPRESSION_METADATA_STRING_MAP); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_compression); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 31, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":30
 *     else:
 *         return ((
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,             # <<<<<<<<<<<<<<
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata
*/
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 30, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(9, 30, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4) != (0)) __PYX_ERR(9, 30, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":29
 *         return metadata
 *     else:
 *         return ((             # <<<<<<<<<<<<<<
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
*/
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 29, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3) != (0)) __PYX_ERR(9, 29, __pyx_L1_error);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":32
 *             GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY,
 *             _COMPRESSION_METADATA_STRING_MAPPING[compression]
 *         ),) + metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_v_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 32, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":25
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
 * cdef _augment_metadata(tuple metadata, object compression):             # <<<<<<<<<<<<<<
 *     if compression is None:
 *         return metadata
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._augment_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":36
 * 
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):             # <<<<<<<<<<<<<<
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_invocation_metadata = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_invocation_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 36, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 36, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 36, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 36, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, i); __PYX_ERR(9, 36, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 36, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 36, __pyx_L3_error)
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_invocation_metadata = ((PyObject*)values[1]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, __pyx_nargs); __PYX_ERR(9, 36, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyUnicode_Type), 1, "method", 1))) __PYX_ERR(9, 36, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_invocation_metadata), (&PyTuple_Type), 1, "invocation_metadata", 1))) __PYX_ERR(9, 36, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self), __pyx_v_method, __pyx_v_invocation_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, PyObject *__pyx_v_method, PyObject *__pyx_v_invocation_metadata) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":37
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):
 *         self.method = method             # <<<<<<<<<<<<<<
 *         self.invocation_metadata = invocation_metadata
 * 
*/
  __Pyx_INCREF(__pyx_v_method);
  __Pyx_GIVEREF(__pyx_v_method);
  __Pyx_GOTREF(__pyx_v_self->method);
  __Pyx_DECREF(__pyx_v_self->method);
  __pyx_v_self->method = __pyx_v_method;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":38
 *     def __cinit__(self, str method, tuple invocation_metadata):
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_INCREF(__pyx_v_invocation_metadata);
  __Pyx_GIVEREF(__pyx_v_invocation_metadata);
  __Pyx_GOTREF(__pyx_v_self->invocation_metadata);
  __Pyx_DECREF(__pyx_v_self->invocation_metadata);
  __pyx_v_self->invocation_metadata = __pyx_v_invocation_metadata;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":36
 * 
 * cdef class _HandlerCallDetails:
 *     def __cinit__(self, str method, tuple invocation_metadata):             # <<<<<<<<<<<<<<
 *         self.method = method
 *         self.invocation_metadata = invocation_metadata
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":16
 * 
 * cdef class _HandlerCallDetails:
 *     cdef readonly str method             # <<<<<<<<<<<<<<
 *     cdef readonly tuple invocation_metadata
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->method);
  __pyx_r = __pyx_v_self->method;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pxd.pxi":17
 * cdef class _HandlerCallDetails:
 *     cdef readonly str method
 *     cdef readonly tuple invocation_metadata             # <<<<<<<<<<<<<<
 * 
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata___get__(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->invocation_metadata);
  __pyx_r = __pyx_v_self->invocation_metadata;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._HandlerCallDetails.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":47
 * cdef class RPCState:
 * 
 *     def __cinit__(self, AioServer server):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         self.call = NULL
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_server,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 47, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 47, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 47, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(9, 47, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 47, __pyx_L3_error)
    }
    __pyx_v_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_server), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, 1, "server", 0))) __PYX_ERR(9, 47, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self), __pyx_v_server);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_server) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  grpc_status_code __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":48
 * 
 *     def __cinit__(self, AioServer server):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         self.call = NULL
 *         self.server = server
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":49
 *     def __cinit__(self, AioServer server):
 *         init_grpc_aio()
 *         self.call = NULL             # <<<<<<<<<<<<<<
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)
*/
  __pyx_v_self->__pyx_base.call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":50
 *         init_grpc_aio()
 *         self.call = NULL
 *         self.server = server             # <<<<<<<<<<<<<<
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)
*/
  __Pyx_INCREF((PyObject *)__pyx_v_server);
  __Pyx_GIVEREF((PyObject *)__pyx_v_server);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->server);
  __pyx_v_self->server = __pyx_v_server;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":51
 *         self.call = NULL
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)             # <<<<<<<<<<<<<<
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False
*/
  grpc_metadata_array_init((&__pyx_v_self->request_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":52
 *         self.server = server
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)             # <<<<<<<<<<<<<<
 *         self.client_closed = False
 *         self.abort_exception = None
*/
  grpc_call_details_init((&__pyx_v_self->details));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":53
 *         grpc_metadata_array_init(&self.request_metadata)
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False             # <<<<<<<<<<<<<<
 *         self.abort_exception = None
 *         self.metadata_sent = False
*/
  __pyx_v_self->client_closed = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":54
 *         grpc_call_details_init(&self.details)
 *         self.client_closed = False
 *         self.abort_exception = None             # <<<<<<<<<<<<<<
 *         self.metadata_sent = False
 *         self.status_sent = False
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->abort_exception);
  __Pyx_DECREF(__pyx_v_self->abort_exception);
  __pyx_v_self->abort_exception = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":55
 *         self.client_closed = False
 *         self.abort_exception = None
 *         self.metadata_sent = False             # <<<<<<<<<<<<<<
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok
*/
  __pyx_v_self->metadata_sent = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":56
 *         self.abort_exception = None
 *         self.metadata_sent = False
 *         self.status_sent = False             # <<<<<<<<<<<<<<
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None
*/
  __pyx_v_self->status_sent = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":57
 *         self.metadata_sent = False
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok             # <<<<<<<<<<<<<<
 *         self.py_status_code = None
 *         self.status_details = ''
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((grpc_status_code)__Pyx_PyLong_As_grpc_status_code(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->status_code = __pyx_t_3;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":58
 *         self.status_sent = False
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None             # <<<<<<<<<<<<<<
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->py_status_code);
  __Pyx_DECREF(__pyx_v_self->py_status_code);
  __pyx_v_self->py_status_code = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":59
 *         self.status_code = StatusCode.ok
 *         self.py_status_code = None
 *         self.status_details = ''             # <<<<<<<<<<<<<<
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_);
  __Pyx_GOTREF(__pyx_v_self->status_details);
  __Pyx_DECREF(__pyx_v_self->status_details);
  __pyx_v_self->status_details = __pyx_mstate_global->__pyx_kp_u_;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":60
 *         self.py_status_code = None
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA             # <<<<<<<<<<<<<<
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_2))) __PYX_ERR(9, 60, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->trailing_metadata);
  __pyx_v_self->trailing_metadata = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":61
 *         self.status_details = ''
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None             # <<<<<<<<<<<<<<
 *         self.disable_next_compression = False
 *         self.callbacks = []
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->compression_algorithm);
  __Pyx_DECREF(__pyx_v_self->compression_algorithm);
  __pyx_v_self->compression_algorithm = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":62
 *         self.trailing_metadata = _IMMUTABLE_EMPTY_METADATA
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False             # <<<<<<<<<<<<<<
 *         self.callbacks = []
 * 
*/
  __pyx_v_self->disable_next_compression = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":63
 *         self.compression_algorithm = None
 *         self.disable_next_compression = False
 *         self.callbacks = []             # <<<<<<<<<<<<<<
 * 
 *     cdef bytes method(self):
*/
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_self->callbacks);
  __Pyx_DECREF(__pyx_v_self->callbacks);
  __pyx_v_self->callbacks = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":47
 * cdef class RPCState:
 * 
 *     def __cinit__(self, AioServer server):             # <<<<<<<<<<<<<<
 *         init_grpc_aio()
 *         self.call = NULL
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":65
 *         self.callbacks = []
 * 
 *     cdef bytes method(self):             # <<<<<<<<<<<<<<
 *         return _slice_bytes(self.details.method)
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("method", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":66
 * 
 *     cdef bytes method(self):
 *         return _slice_bytes(self.details.method)             # <<<<<<<<<<<<<<
 * 
 *     cdef tuple invocation_metadata(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__slice_bytes(__pyx_v_self->details.method); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":65
 *         self.callbacks = []
 * 
 *     cdef bytes method(self):             # <<<<<<<<<<<<<<
 *         return _slice_bytes(self.details.method)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.method", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":68
 *         return _slice_bytes(self.details.method)
 * 
 *     cdef tuple invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return _metadata(&self.request_metadata)
 * 
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":69
 * 
 *     cdef tuple invocation_metadata(self):
 *         return _metadata(&self.request_metadata)             # <<<<<<<<<<<<<<
 * 
 *     cdef void raise_for_termination(self) except *:
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__metadata((&__pyx_v_self->request_metadata)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":68
 *         return _slice_bytes(self.details.method)
 * 
 *     cdef tuple invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return _metadata(&self.request_metadata)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":71
 *         return _metadata(&self.request_metadata)
 * 
 *     cdef void raise_for_termination(self) except *:             # <<<<<<<<<<<<<<
 *         """Raise exceptions if RPC is not running.
 * 
*/

static void __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("raise_for_termination", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":81
 *         into Core functions, otherwise, segfault.
 *         """
 *         if self.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self.abort_exception
 *         if self.status_sent:
*/
  __pyx_t_1 = (__pyx_v_self->abort_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":82
 *         """
 *         if self.abort_exception is not None:
 *             raise self.abort_exception             # <<<<<<<<<<<<<<
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
*/
    __Pyx_Raise(__pyx_v_self->abort_exception, 0, 0, 0);
    __PYX_ERR(9, 82, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":81
 *         into Core functions, otherwise, segfault.
 *         """
 *         if self.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self.abort_exception
 *         if self.status_sent:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":83
 *         if self.abort_exception is not None:
 *             raise self.abort_exception
 *         if self.status_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
*/
  if (unlikely(__pyx_v_self->status_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":84
 *             raise self.abort_exception
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)             # <<<<<<<<<<<<<<
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 84, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":83
 *         if self.abort_exception is not None:
 *             raise self.abort_exception
 *         if self.status_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":85
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
*/
  __pyx_t_1 = (__pyx_v_self->server->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":86
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)             # <<<<<<<<<<<<<<
 * 
 *     cdef int get_write_flag(self):
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ServerStoppedError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 86, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":85
 *         if self.status_sent:
 *             raise UsageError(_RPC_FINISHED_DETAILS)
 *         if self.server._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":71
 *         return _metadata(&self.request_metadata)
 * 
 *     cdef void raise_for_termination(self) except *:             # <<<<<<<<<<<<<<
 *         """Raise exceptions if RPC is not running.
 * 
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.raise_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":88
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 *     cdef int get_write_flag(self):             # <<<<<<<<<<<<<<
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
*/

static int __pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_write_flag", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":89
 * 
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:             # <<<<<<<<<<<<<<
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress
*/
  if (__pyx_v_self->disable_next_compression) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":90
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False             # <<<<<<<<<<<<<<
 *             return WriteFlag.no_compress
 *         else:
*/
    __pyx_v_self->disable_next_compression = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":91
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress             # <<<<<<<<<<<<<<
 *         else:
 *             return _EMPTY_FLAG
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_WriteFlag); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_no_compress); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 91, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":89
 * 
 *     cdef int get_write_flag(self):
 *         if self.disable_next_compression:             # <<<<<<<<<<<<<<
 *             self.disable_next_compression = False
 *             return WriteFlag.no_compress
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":93
 *             return WriteFlag.no_compress
 *         else:
 *             return _EMPTY_FLAG             # <<<<<<<<<<<<<<
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
*/
  /*else*/ {
    __pyx_r = __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":88
 *             raise _ServerStoppedError(_SERVER_STOPPED_DETAILS)
 * 
 *     cdef int get_write_flag(self):             # <<<<<<<<<<<<<<
 *         if self.disable_next_compression:
 *             self.disable_next_compression = False
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.get_write_flag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":95
 *             return _EMPTY_FLAG
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):             # <<<<<<<<<<<<<<
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
*/

static struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *__pyx_v_op = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("create_send_initial_metadata_op_if_not_sent", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":97
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  if (__pyx_v_self->metadata_sent) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":98
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             op = SendInitialMetadataOperation(
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)Py_None); __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":97
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":100
 *             return None
 *         else:
 *             op = SendInitialMetadataOperation(             # <<<<<<<<<<<<<<
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),
 *                 _EMPTY_FLAG
*/
  /*else*/ {
    __pyx_t_2 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation);
    __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":101
 *         else:
 *             op = SendInitialMetadataOperation(
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),             # <<<<<<<<<<<<<<
 *                 _EMPTY_FLAG
 *             )
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(9, 101, __pyx_L1_error)
    __pyx_t_5 = __pyx_v_self->compression_algorithm;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(((PyObject*)__pyx_t_4), __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 101, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":102
 *             op = SendInitialMetadataOperation(
 *                 _augment_metadata(_IMMUTABLE_EMPTY_METADATA, self.compression_algorithm),
 *                 _EMPTY_FLAG             # <<<<<<<<<<<<<<
 *             )
 *             return op
*/
    __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_6, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 100, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":104
 *                 _EMPTY_FLAG
 *             )
 *             return op             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)__pyx_v_op);
    __pyx_r = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)__pyx_v_op);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":95
 *             return _EMPTY_FLAG
 * 
 *     cdef Operation create_send_initial_metadata_op_if_not_sent(self):             # <<<<<<<<<<<<<<
 *         cdef SendInitialMetadataOperation op
 *         if self.metadata_sent:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.create_send_initial_metadata_op_if_not_sent", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_op);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":106
 *             return op
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_2__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":108
 *     def __dealloc__(self):
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)             # <<<<<<<<<<<<<<
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:
*/
  grpc_call_details_destroy((&__pyx_v_self->details));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":109
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)             # <<<<<<<<<<<<<<
 *         if self.call:
 *             grpc_call_unref(self.call)
*/
  grpc_metadata_array_destroy((&__pyx_v_self->request_metadata));

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":110
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
*/
  __pyx_t_1 = (__pyx_v_self->__pyx_base.call != 0);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":111
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:
 *             grpc_call_unref(self.call)             # <<<<<<<<<<<<<<
 *         shutdown_grpc_aio()
 * 
*/
    grpc_call_unref(__pyx_v_self->__pyx_base.call);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":110
 *         grpc_call_details_destroy(&self.details)
 *         grpc_metadata_array_destroy(&self.request_metadata)
 *         if self.call:             # <<<<<<<<<<<<<<
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":112
 *         if self.call:
 *             grpc_call_unref(self.call)
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":106
 *             return op
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Cleans the Core objects."""
 *         grpc_call_details_destroy(&self.details)
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.RPCState.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_8RPCState_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.RPCState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":117
 * cdef class _ServicerContext:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   RPCState rpc_state,
 *                   object request_deserializer,
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_request_deserializer = 0;
  PyObject *__pyx_v_response_serializer = 0;
  PyObject *__pyx_v_loop = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_request_deserializer,&__pyx_mstate_global->__pyx_n_u_response_serializer,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 117, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 117, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, i); __PYX_ERR(9, 117, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 117, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 117, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 117, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 117, __pyx_L3_error)
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_request_deserializer = values[1];
    __pyx_v_response_serializer = values[2];
    __pyx_v_loop = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 4, 4, __pyx_nargs); __PYX_ERR(9, 117, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 118, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_rpc_state, __pyx_v_request_deserializer, __pyx_v_response_serializer, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_request_deserializer, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":122
 *                   object response_serializer,
 *                   object loop):
 *         self._rpc_state = rpc_state             # <<<<<<<<<<<<<<
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer
*/
  __Pyx_INCREF((PyObject *)__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rpc_state);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_rpc_state);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_rpc_state);
  __pyx_v_self->_rpc_state = __pyx_v_rpc_state;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":123
 *                   object loop):
 *         self._rpc_state = rpc_state
 *         self._request_deserializer = request_deserializer             # <<<<<<<<<<<<<<
 *         self._response_serializer = response_serializer
 *         self._loop = loop
*/
  __Pyx_INCREF(__pyx_v_request_deserializer);
  __Pyx_GIVEREF(__pyx_v_request_deserializer);
  __Pyx_GOTREF(__pyx_v_self->_request_deserializer);
  __Pyx_DECREF(__pyx_v_self->_request_deserializer);
  __pyx_v_self->_request_deserializer = __pyx_v_request_deserializer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":124
 *         self._rpc_state = rpc_state
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer             # <<<<<<<<<<<<<<
 *         self._loop = loop
 * 
*/
  __Pyx_INCREF(__pyx_v_response_serializer);
  __Pyx_GIVEREF(__pyx_v_response_serializer);
  __Pyx_GOTREF(__pyx_v_self->_response_serializer);
  __Pyx_DECREF(__pyx_v_self->_response_serializer);
  __pyx_v_self->_response_serializer = __pyx_v_response_serializer;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":125
 *         self._request_deserializer = request_deserializer
 *         self._response_serializer = response_serializer
 *         self._loop = loop             # <<<<<<<<<<<<<<
 * 
 *     async def read(self):
*/
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":117
 * cdef class _ServicerContext:
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   RPCState rpc_state,
 *                   object request_deserializer,
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_3read = {"read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("read", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("read", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_2read(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("read", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 127, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_read, __pyx_mstate_global->__pyx_n_u_ServicerContext_read, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 127, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_4generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  __Pyx_PySendResult __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 127, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":129
 *     async def read(self):
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 129, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":131
 *         self._rpc_state.raise_for_termination()
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_receive_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 131, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 131, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 131, __pyx_L1_error)
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 131, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_raw_message = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":132
 * 
 *         raw_message = await _receive_message(self._rpc_state, self._loop)
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         if raw_message is None:
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 132, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":134
 *         self._rpc_state.raise_for_termination()
 * 
 *         if raw_message is None:             # <<<<<<<<<<<<<<
 *             return EOF
 *         else:
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_raw_message == ((PyObject*)Py_None));
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":135
 * 
 *         if raw_message is None:
 *             return EOF             # <<<<<<<<<<<<<<
 *         else:
 *             return deserialize(self._request_deserializer,
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":134
 *         self._rpc_state.raise_for_termination()
 * 
 *         if raw_message is None:             # <<<<<<<<<<<<<<
 *             return EOF
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":137
 *             return EOF
 *         else:
 *             return deserialize(self._request_deserializer,             # <<<<<<<<<<<<<<
 *                             raw_message)
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->_request_deserializer;
    __Pyx_INCREF(__pyx_t_1);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":138
 *         else:
 *             return deserialize(self._request_deserializer,
 *                             raw_message)             # <<<<<<<<<<<<<<
 * 
 *     async def write(self, object message):
*/
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_raw_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("read", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_6write = {"write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_message = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("write (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_message,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 140, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 140, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "write", 0) < 0) __PYX_ERR(9, 140, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, i); __PYX_ERR(9, 140, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 140, __pyx_L3_error)
    }
    __pyx_v_message = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 140, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_message);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_5write(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_message) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("write", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 140, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_message = __pyx_v_message;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_message);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_write, __pyx_mstate_global->__pyx_n_u_ServicerContext_write, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 140, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_7generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  __Pyx_PySendResult __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("write", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 140, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":141
 * 
 *     async def write(self, object message):
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         await _send_message(self._rpc_state,
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 141, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":143
 *         self._rpc_state.raise_for_termination()
 * 
 *         await _send_message(self._rpc_state,             # <<<<<<<<<<<<<<
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_send_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":144
 * 
 *         await _send_message(self._rpc_state,
 *                             serialize(self._response_serializer, message),             # <<<<<<<<<<<<<<
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),
*/
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_self->_response_serializer;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc_serialize(__pyx_t_4, __pyx_cur_scope->__pyx_v_message); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":145
 *         await _send_message(self._rpc_state,
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)
*/
  __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_self->_rpc_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":146
 *                             serialize(self._response_serializer, message),
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),             # <<<<<<<<<<<<<<
 *                             self._loop)
 *         self._rpc_state.metadata_sent = True
*/
  __pyx_t_6 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->get_write_flag(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 146, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":147
 *                             self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)             # <<<<<<<<<<<<<<
 *         self._rpc_state.metadata_sent = True
 * 
*/
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_5, __pyx_t_4, __pyx_t_7, __pyx_cur_scope->__pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_8, (6-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_9 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 143, __pyx_L1_error)
  } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 143, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":148
 *                             self._rpc_state.get_write_flag(),
 *                             self._loop)
 *         self._rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 * 
 *     async def send_initial_metadata(self, object metadata):
*/
  __pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent = 1;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("write", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata = {"send_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 150, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 150, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "send_initial_metadata", 0) < 0) __PYX_ERR(9, 150, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, i); __PYX_ERR(9, 150, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 150, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 150, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_8send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_initial_metadata", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 150, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_send_initial_metadata_2, __pyx_mstate_global->__pyx_n_u_ServicerContext_send_initial_me, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 150, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_10generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_PySendResult __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 150, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":151
 * 
 *     async def send_initial_metadata(self, object metadata):
 *         self._rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *         if self._rpc_state.metadata_sent:
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_self->_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 151, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":153
 *         self._rpc_state.raise_for_termination()
 * 
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
*/
  if (unlikely(__pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":154
 * 
 *         if self._rpc_state.metadata_sent:
 *             raise UsageError('Send initial metadata failed: already sent')             # <<<<<<<<<<<<<<
 *         else:
 *             await _send_initial_metadata(
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Send_initial_metadata_failed_alr};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 154, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":153
 *         self._rpc_state.raise_for_termination()
 * 
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":156
 *             raise UsageError('Send initial metadata failed: already sent')
 *         else:
 *             await _send_initial_metadata(             # <<<<<<<<<<<<<<
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_send_initial_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":158
 *             await _send_initial_metadata(
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),             # <<<<<<<<<<<<<<
 *                 _EMPTY_FLAG,
 *                 self._loop
*/
    __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_cur_scope->__pyx_v_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __pyx_cur_scope->__pyx_v_self->_rpc_state->compression_algorithm;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc__augment_metadata(((PyObject*)__pyx_t_5), __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":159
 *                 self._rpc_state,
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
 *                 _EMPTY_FLAG,             # <<<<<<<<<<<<<<
 *                 self._loop
 *             )
*/
    __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":160
 *                 _augment_metadata(tuple(metadata), self._rpc_state.compression_algorithm),
 *                 _EMPTY_FLAG,
 *                 self._loop             # <<<<<<<<<<<<<<
 *             )
 *             self._rpc_state.metadata_sent = True
*/
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_7, __pyx_t_6, __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_8 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_8 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 156, __pyx_L1_error)
    } else if (likely(__pyx_t_8 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 156, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":162
 *                 self._loop
 *             )
 *             self._rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 * 
 *     async def abort(self,
*/
    __pyx_cur_scope->__pyx_v_self->_rpc_state->metadata_sent = 1;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort = {"abort", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,&__pyx_mstate_global->__pyx_n_u_trailing_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 164, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 164, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 164, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 164, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "abort", 0) < 0) __PYX_ERR(9, 164, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)__pyx_mstate_global->__pyx_kp_u_));
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__10);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, i); __PYX_ERR(9, 164, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 164, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 164, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 164, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)__pyx_mstate_global->__pyx_kp_u_));
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__10);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, __pyx_nargs); __PYX_ERR(9, 164, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(9, 166, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(9, 167, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_11abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 164, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_code = __pyx_v_code;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_code);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_code);
  __pyx_cur_scope->__pyx_v_details = __pyx_v_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
  __pyx_cur_scope->__pyx_v_trailing_metadata = __pyx_v_trailing_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_abort, __pyx_mstate_global->__pyx_n_u_ServicerContext_abort, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_13generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  grpc_status_code __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_PySendResult __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L11_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 164, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":168
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise UsageError('Abort already called!')
 *         else:
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":169
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')             # <<<<<<<<<<<<<<
 *         else:
 *             # Keeps track of the exception object. After abort happen, the RPC
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 169, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Abort_already_called};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 169, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 169, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":168
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         if self._rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *             raise UsageError('Abort already called!')
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":174
 *             # should stop execution. However, if users decided to suppress it, it
 *             # could lead to undefined behavior.
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')             # <<<<<<<<<<<<<<
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_AbortError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Locally_aborted};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception);
    __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception);
    __pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":176
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:             # <<<<<<<<<<<<<<
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_trailing_metadata, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
    } else {
      __pyx_t_1 = __pyx_t_6;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata != Py_None)&&(__Pyx_PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata) != 0);
    if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_6 < 0))) __PYX_ERR(9, 176, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_6;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":177
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:
 *                 trailing_metadata = self._rpc_state.trailing_metadata             # <<<<<<<<<<<<<<
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)
*/
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_trailing_metadata, ((PyObject*)__pyx_t_3));
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":176
 *             self._rpc_state.abort_exception = AbortError('Locally aborted.')
 * 
 *             if trailing_metadata == _IMMUTABLE_EMPTY_METADATA and self._rpc_state.trailing_metadata:             # <<<<<<<<<<<<<<
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
*/
      goto __pyx_L5;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":179
 *                 trailing_metadata = self._rpc_state.trailing_metadata
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)             # <<<<<<<<<<<<<<
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
*/
    /*else*/ {
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_if_not_valid_trailing_meta); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_trailing_metadata};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 179, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":180
 *             else:
 *                 raise_if_not_valid_trailing_metadata(trailing_metadata)
 *                 self._rpc_state.trailing_metadata = trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *             if details == '' and self._rpc_state.status_details:
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_trailing_metadata);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata);
      __pyx_cur_scope->__pyx_v_self->_rpc_state->trailing_metadata = __pyx_cur_scope->__pyx_v_trailing_metadata;
    }
    __pyx_L5:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":182
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
 *             if details == '' and self._rpc_state.status_details:             # <<<<<<<<<<<<<<
 *                 details = self._rpc_state.status_details
 *             else:
*/
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_details, __pyx_mstate_global->__pyx_kp_u_, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 182, __pyx_L1_error)
    if (__pyx_t_6) {
    } else {
      __pyx_t_1 = __pyx_t_6;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details) != 0);
    if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_6 < 0))) __PYX_ERR(9, 182, __pyx_L1_error)
    __pyx_t_1 = __pyx_t_6;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_1) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":183
 * 
 *             if details == '' and self._rpc_state.status_details:
 *                 details = self._rpc_state.status_details             # <<<<<<<<<<<<<<
 *             else:
 *                 self._rpc_state.status_details = details
*/
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_rpc_state->status_details;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_details, ((PyObject*)__pyx_t_3));
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":182
 *                 self._rpc_state.trailing_metadata = trailing_metadata
 * 
 *             if details == '' and self._rpc_state.status_details:             # <<<<<<<<<<<<<<
 *                 details = self._rpc_state.status_details
 *             else:
*/
      goto __pyx_L8;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":185
 *                 details = self._rpc_state.status_details
 *             else:
 *                 self._rpc_state.status_details = details             # <<<<<<<<<<<<<<
 * 
 *             actual_code = get_status_code(code)
*/
    /*else*/ {
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_details);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->status_details);
      __pyx_cur_scope->__pyx_v_self->_rpc_state->status_details = __pyx_cur_scope->__pyx_v_details;
    }
    __pyx_L8:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":187
 *                 self._rpc_state.status_details = details
 * 
 *             actual_code = get_status_code(code)             # <<<<<<<<<<<<<<
 *             self._rpc_state.py_status_code = code
 *             self._rpc_state.status_code = actual_code
*/
    __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(__pyx_cur_scope->__pyx_v_code); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 187, __pyx_L1_error)
    __pyx_cur_scope->__pyx_v_actual_code = __pyx_t_7;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":188
 * 
 *             actual_code = get_status_code(code)
 *             self._rpc_state.py_status_code = code             # <<<<<<<<<<<<<<
 *             self._rpc_state.status_code = actual_code
 * 
*/
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_code);
    __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_code);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code);
    __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code);
    __pyx_cur_scope->__pyx_v_self->_rpc_state->py_status_code = __pyx_cur_scope->__pyx_v_code;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":189
 *             actual_code = get_status_code(code)
 *             self._rpc_state.py_status_code = code
 *             self._rpc_state.status_code = actual_code             # <<<<<<<<<<<<<<
 * 
 *             self._rpc_state.status_sent = True
*/
    __pyx_cur_scope->__pyx_v_self->_rpc_state->status_code = __pyx_cur_scope->__pyx_v_actual_code;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":191
 *             self._rpc_state.status_code = actual_code
 * 
 *             self._rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *             await _send_error_status_from_server(
 *                 self._rpc_state,
*/
    __pyx_cur_scope->__pyx_v_self->_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":192
 * 
 *             self._rpc_state.status_sent = True
 *             await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *                 self._rpc_state,
 *                 actual_code,
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 192, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":194
 *             await _send_error_status_from_server(
 *                 self._rpc_state,
 *                 actual_code,             # <<<<<<<<<<<<<<
 *                 details,
 *                 trailing_metadata,
*/
    __pyx_t_8 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_actual_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 194, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":197
 *                 details,
 *                 trailing_metadata,
 *                 self._rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                 self._loop
 *             )
*/
    __pyx_t_9 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_self->_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_self->_rpc_state)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":198
 *                 trailing_metadata,
 *                 self._rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                 self._loop             # <<<<<<<<<<<<<<
 *             )
 * 
*/
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self->_rpc_state), __pyx_t_8, __pyx_cur_scope->__pyx_v_details, __pyx_cur_scope->__pyx_v_trailing_metadata, __pyx_t_9, __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (7-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 192, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_10 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (likely(__pyx_t_10 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L11_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 192, __pyx_L1_error)
    } else if (likely(__pyx_t_10 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 192, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":201
 *             )
 * 
 *             raise self._rpc_state.abort_exception             # <<<<<<<<<<<<<<
 * 
 *     async def abort_with_status(self, object status):
*/
    __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_rpc_state->abort_exception, 0, 0, 0);
    __PYX_ERR(9, 201, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status = {"abort_with_status", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_status = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort_with_status (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_status,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 203, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 203, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "abort_with_status", 0) < 0) __PYX_ERR(9, 203, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("abort_with_status", 1, 1, 1, i); __PYX_ERR(9, 203, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 203, __pyx_L3_error)
    }
    __pyx_v_status = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort_with_status", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 203, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_status);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_14abort_with_status(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_status) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort_with_status", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 203, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_status = __pyx_v_status;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_status);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_status);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_abort_with_status, __pyx_mstate_global->__pyx_n_u_ServicerContext_abort_with_stat, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 203, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_ServicerContext_16generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort_with_status", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 203, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":204
 * 
 *     async def abort_with_status(self, object status):
 *         await self.abort(status.code, status.details, status.trailing_metadata)             # <<<<<<<<<<<<<<
 * 
 *     def set_trailing_metadata(self, object metadata):
*/
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_mstate_global->__pyx_n_u_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_mstate_global->__pyx_n_u_details); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_status, __pyx_mstate_global->__pyx_n_u_trailing_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_abort, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 204, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 204, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("abort_with_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata = {"set_trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 206, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 206, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_trailing_metadata", 0) < 0) __PYX_ERR(9, 206, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, i); __PYX_ERR(9, 206, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 206, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 206, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_17set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_trailing_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":207
 * 
 *     def set_trailing_metadata(self, object metadata):
 *         raise_if_not_valid_trailing_metadata(metadata)             # <<<<<<<<<<<<<<
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_raise_if_not_valid_trailing_meta); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":208
 *     def set_trailing_metadata(self, object metadata):
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)             # <<<<<<<<<<<<<<
 * 
 *     def trailing_metadata(self):
*/
  __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __pyx_v_self->_rpc_state->trailing_metadata = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata = {"trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("trailing_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("trailing_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_19trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trailing_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":211
 * 
 *     def trailing_metadata(self):
 *         return self._rpc_state.trailing_metadata             # <<<<<<<<<<<<<<
 * 
 *     def invocation_metadata(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->trailing_metadata);
  __pyx_r = __pyx_v_self->_rpc_state->trailing_metadata;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata = {"invocation_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invocation_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("invocation_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("invocation_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_21invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":214
 * 
 *     def invocation_metadata(self):
 *         return self._rpc_state.invocation_metadata()             # <<<<<<<<<<<<<<
 * 
 *     def set_code(self, object code):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_v_self->_rpc_state->__pyx_vtab)->invocation_metadata(__pyx_v_self->_rpc_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code = {"set_code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 216, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_code", 0) < 0) __PYX_ERR(9, 216, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, i); __PYX_ERR(9, 216, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 216, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 216, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_code);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_23set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_code) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  grpc_status_code __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_code", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":217
 * 
 *     def set_code(self, object code):
 *         self._rpc_state.status_code = get_status_code(code)             # <<<<<<<<<<<<<<
 *         self._rpc_state.py_status_code = code
 * 
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_get_status_code(__pyx_v_code); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 217, __pyx_L1_error)
  __pyx_v_self->_rpc_state->status_code = __pyx_t_1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":218
 *     def set_code(self, object code):
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code             # <<<<<<<<<<<<<<
 * 
 *     def code(self):
*/
  __Pyx_INCREF(__pyx_v_code);
  __Pyx_GIVEREF(__pyx_v_code);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->py_status_code);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->py_status_code);
  __pyx_v_self->_rpc_state->py_status_code = __pyx_v_code;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_26code = {"code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("code", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("code", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_25code(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("code", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":221
 * 
 *     def code(self):
 *         return self._rpc_state.py_status_code             # <<<<<<<<<<<<<<
 * 
 *     def set_details(self, str details):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->py_status_code);
  __pyx_r = __pyx_v_self->_rpc_state->py_status_code;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details = {"set_details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 223, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 223, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_details", 0) < 0) __PYX_ERR(9, 223, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, i); __PYX_ERR(9, 223, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 223, __pyx_L3_error)
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(9, 223, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_27set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":224
 * 
 *     def set_details(self, str details):
 *         self._rpc_state.status_details = details             # <<<<<<<<<<<<<<
 * 
 *     def details(self):
*/
  __Pyx_INCREF(__pyx_v_details);
  __Pyx_GIVEREF(__pyx_v_details);
  __Pyx_GOTREF(__pyx_v_self->_rpc_state->status_details);
  __Pyx_DECREF(__pyx_v_self->_rpc_state->status_details);
  __pyx_v_self->_rpc_state->status_details = __pyx_v_details;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_30details = {"details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("details", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("details", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_29details(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("details", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":227
 * 
 *     def details(self):
 *         return self._rpc_state.status_details             # <<<<<<<<<<<<<<
 * 
 *     def set_compression(self, object compression):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_rpc_state->status_details);
  __pyx_r = __pyx_v_self->_rpc_state->status_details;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression = {"set_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_compression = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_compression,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 229, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 229, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_compression", 0) < 0) __PYX_ERR(9, 229, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, i); __PYX_ERR(9, 229, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 229, __pyx_L3_error)
    }
    __pyx_v_compression = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 229, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_compression);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_31set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_compression", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":230
 * 
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
*/
  if (unlikely(__pyx_v_self->_rpc_state->metadata_sent)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":231
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')             # <<<<<<<<<<<<<<
 *         else:
 *             self._rpc_state.compression_algorithm = compression
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_builtin_RuntimeError);
    __pyx_t_3 = __pyx_builtin_RuntimeError; 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Compression_setting_must_be_spec};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 231, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":230
 * 
 *     def set_compression(self, object compression):
 *         if self._rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":233
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
 *         else:
 *             self._rpc_state.compression_algorithm = compression             # <<<<<<<<<<<<<<
 * 
 *     def disable_next_message_compression(self):
*/
  /*else*/ {
    __Pyx_INCREF(__pyx_v_compression);
    __Pyx_GIVEREF(__pyx_v_compression);
    __Pyx_GOTREF(__pyx_v_self->_rpc_state->compression_algorithm);
    __Pyx_DECREF(__pyx_v_self->_rpc_state->compression_algorithm);
    __pyx_v_self->_rpc_state->compression_algorithm = __pyx_v_compression;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression = {"disable_next_message_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("disable_next_message_compression", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("disable_next_message_compression", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_33disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":236
 * 
 *     def disable_next_message_compression(self):
 *         self._rpc_state.disable_next_compression = True             # <<<<<<<<<<<<<<
 * 
 *     def peer(self):
*/
  __pyx_v_self->_rpc_state->disable_next_compression = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer = {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_35peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  char *__pyx_v_c_peer;
  PyObject *__pyx_v_peer = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":239
 * 
 *     def peer(self):
 *         cdef char *c_peer = NULL             # <<<<<<<<<<<<<<
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')
*/
  __pyx_v_c_peer = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":240
 *     def peer(self):
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)             # <<<<<<<<<<<<<<
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)
*/
  __pyx_v_c_peer = grpc_call_get_peer(__pyx_v_self->_rpc_state->__pyx_base.call);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":241
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')             # <<<<<<<<<<<<<<
 *         gpr_free(c_peer)
 *         return peer
*/
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_c_peer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
    __PYX_ERR(9, 241, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_t_1), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_peer = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":242
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)             # <<<<<<<<<<<<<<
 *         return peer
 * 
*/
  gpr_free(__pyx_v_c_peer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":243
 *         peer = (<bytes>c_peer).decode('utf8')
 *         gpr_free(c_peer)
 *         return peer             # <<<<<<<<<<<<<<
 * 
 *     def peer_identities(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_peer);
  __pyx_r = __pyx_v_peer;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_peer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities = {"peer_identities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer_identities", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_37peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_identities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_call *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":246
 * 
 *     def peer_identities(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 246, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":247
 *     def peer_identities(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL
*/
  __pyx_t_5 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":248
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         return identities
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_peer_identities); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_identities = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":249
 *         query_call.c_call = self._rpc_state.call
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         return identities
 * 
*/
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":250
 *         identities = peer_identities(query_call)
 *         query_call.c_call = NULL
 *         return identities             # <<<<<<<<<<<<<<
 * 
 *     def peer_identity_key(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_identities);
  __pyx_r = __pyx_v_identities;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_identities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key = {"peer_identity_key", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer_identity_key", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_39peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_identity_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_call *__pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":253
 * 
 *     def peer_identity_key(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 253, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":254
 *     def peer_identity_key(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
*/
  __pyx_t_5 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":255
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         if identity_key:
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_peer_identity_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_identity_key = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":256
 *         query_call.c_call = self._rpc_state.call
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         if identity_key:
 *             return identity_key.decode('utf8')
*/
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":257
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
 *         if identity_key:             # <<<<<<<<<<<<<<
 *             return identity_key.decode('utf8')
 *         else:
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_identity_key); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 257, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":258
 *         query_call.c_call = NULL
 *         if identity_key:
 *             return identity_key.decode('utf8')             # <<<<<<<<<<<<<<
 *         else:
 *             return None
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_v_identity_key;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_utf8};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":257
 *         identity_key = peer_identity_key(query_call)
 *         query_call.c_call = NULL
 *         if identity_key:             # <<<<<<<<<<<<<<
 *             return identity_key.decode('utf8')
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":260
 *             return identity_key.decode('utf8')
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 * 
 *     def auth_context(self):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_identity_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context = {"auth_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("auth_context", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("auth_context", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_41auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *__pyx_v_query_call = 0;
  PyObject *__pyx_v_bytes_ctx = NULL;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_call *__pyx_t_5;
  int __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":263
 * 
 *     def auth_context(self):
 *         cdef Call query_call = Call()             # <<<<<<<<<<<<<<
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 263, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __pyx_v_query_call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":264
 *     def auth_context(self):
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call             # <<<<<<<<<<<<<<
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
*/
  __pyx_t_5 = __pyx_v_self->_rpc_state->__pyx_base.call;
  __pyx_v_query_call->c_call = __pyx_t_5;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":265
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)             # <<<<<<<<<<<<<<
 *         query_call.c_call = NULL
 *         if bytes_ctx:
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_auth_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_query_call)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 265, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_bytes_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":266
 *         query_call.c_call = self._rpc_state.call
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL             # <<<<<<<<<<<<<<
 *         if bytes_ctx:
 *             ctx = {}
*/
  __pyx_v_query_call->c_call = NULL;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":267
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
 *         if bytes_ctx:             # <<<<<<<<<<<<<<
 *             ctx = {}
 *             for key in bytes_ctx:
*/
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_bytes_ctx); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 267, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":268
 *         query_call.c_call = NULL
 *         if bytes_ctx:
 *             ctx = {}             # <<<<<<<<<<<<<<
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
*/
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_ctx = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":269
 *         if bytes_ctx:
 *             ctx = {}
 *             for key in bytes_ctx:             # <<<<<<<<<<<<<<
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx
*/
    if (likely(PyList_CheckExact(__pyx_v_bytes_ctx)) || PyTuple_CheckExact(__pyx_v_bytes_ctx)) {
      __pyx_t_1 = __pyx_v_bytes_ctx; __Pyx_INCREF(__pyx_t_1);
      __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_bytes_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 269, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
            #endif
            if (__pyx_t_7 >= __pyx_temp) break;
          }
          __pyx_t_2 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_7);
          ++__pyx_t_7;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 269, __pyx_L1_error)
            #endif
            if (__pyx_t_7 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7));
          #else
          __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7);
          #endif
          ++__pyx_t_7;
        }
        if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 269, __pyx_L1_error)
      } else {
        __pyx_t_2 = __pyx_t_8(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(9, 269, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":270
 *             ctx = {}
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]             # <<<<<<<<<<<<<<
 *             return ctx
 *         else:
*/
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_bytes_ctx, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __pyx_v_key;
      __Pyx_INCREF(__pyx_t_9);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_n_u_utf8};
        __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 270, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      if (unlikely((PyDict_SetItem(__pyx_v_ctx, __pyx_t_3, __pyx_t_2) < 0))) __PYX_ERR(9, 270, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":269
 *         if bytes_ctx:
 *             ctx = {}
 *             for key in bytes_ctx:             # <<<<<<<<<<<<<<
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx
*/
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":271
 *             for key in bytes_ctx:
 *                 ctx[key.decode('utf8')] = bytes_ctx[key]
 *             return ctx             # <<<<<<<<<<<<<<
 *         else:
 *             return {}
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_ctx);
    __pyx_r = __pyx_v_ctx;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":267
 *         bytes_ctx = auth_context(query_call)
 *         query_call.c_call = NULL
 *         if bytes_ctx:             # <<<<<<<<<<<<<<
 *             ctx = {}
 *             for key in bytes_ctx:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":273
 *             return ctx
 *         else:
 *             return {}             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_query_call);
  __Pyx_XDECREF(__pyx_v_bytes_ctx);
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining = {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("time_remaining", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_43time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  long __pyx_t_2;
  double __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":276
 * 
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->_rpc_state->details.deadline.tv_sec == __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE.tv_sec);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":277
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None             # <<<<<<<<<<<<<<
 *         else:
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":276
 * 
 *     def time_remaining(self):
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:             # <<<<<<<<<<<<<<
 *             return None
 *         else:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":279
 *             return None
 *         else:
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)             # <<<<<<<<<<<<<<
 * 
 *     def add_done_callback(self, callback):
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = 0;
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec(__pyx_v_self->_rpc_state->details.deadline); if (unlikely(__pyx_t_3 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(9, 279, __pyx_L1_error)
    __pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_6);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_9 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __pyx_t_8 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_4 = __Pyx_PyLong_From_long(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(9, 279, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
      __pyx_t_6 = __Pyx_PyLong_From_long(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __pyx_t_6;
      __pyx_t_6 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_8);
      __pyx_t_5 = __pyx_t_8;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_r = __pyx_t_5;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback = {"add_done_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_done_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 281, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 281, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_done_callback", 0) < 0) __PYX_ERR(9, 281, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, i); __PYX_ERR(9, 281, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 281, __pyx_L3_error)
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 281, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_45add_done_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_v_cb = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_done_callback", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":282
 * 
 *     def add_done_callback(self, callback):
 *         cb = functools.partial(callback, self)             # <<<<<<<<<<<<<<
 *         self._rpc_state.callbacks.append(cb)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_functools); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_partial); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_callback, ((PyObject *)__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_cb = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":283
 *     def add_done_callback(self, callback):
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)             # <<<<<<<<<<<<<<
 * 
 *     def done(self):
*/
  __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_self->_rpc_state->callbacks, __pyx_v_cb); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(9, 283, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.add_done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cb);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_48done = {"done", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("done (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("done", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("done", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_47done(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("done", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":286
 * 
 *     def done(self):
 *         return self._rpc_state.status_sent             # <<<<<<<<<<<<<<
 * 
 *     def cancelled(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_rpc_state->status_sent); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.done", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled = {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cancelled (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("cancelled", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("cancelled", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_49cancelled(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cancelled", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":289
 * 
 *     def cancelled(self):
 *         return self._rpc_state.status_code == StatusCode.cancelled             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_v_self->_rpc_state->status_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_cancelled); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.cancelled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_51__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_ServicerContext_53__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":295
 *     """Sync servicer context for sync handler compatibility."""
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   _ServicerContext context):
 *         self._context = context
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 295, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 295, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(9, 295, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 295, __pyx_L3_error)
    }
    __pyx_v_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 295, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "context", 0))) __PYX_ERR(9, 296, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_context) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":297
 *     def __cinit__(self,
 *                   _ServicerContext context):
 *         self._context = context             # <<<<<<<<<<<<<<
 *         self._callbacks = []
 *         self._loop = context._loop
*/
  __Pyx_INCREF((PyObject *)__pyx_v_context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_context);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_context);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_context);
  __pyx_v_self->_context = __pyx_v_context;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":298
 *                   _ServicerContext context):
 *         self._context = context
 *         self._callbacks = []             # <<<<<<<<<<<<<<
 *         self._loop = context._loop
 * 
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_callbacks);
  __Pyx_DECREF(__pyx_v_self->_callbacks);
  __pyx_v_self->_callbacks = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":299
 *         self._context = context
 *         self._callbacks = []
 *         self._loop = context._loop             # <<<<<<<<<<<<<<
 * 
 *     def abort(self,
*/
  __pyx_t_1 = __pyx_v_context->_loop;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":295
 *     """Sync servicer context for sync handler compatibility."""
 * 
 *     def __cinit__(self,             # <<<<<<<<<<<<<<
 *                   _ServicerContext context):
 *         self._context = context
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort = {"abort", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  PyObject *__pyx_v_details = 0;
  PyObject *__pyx_v_trailing_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abort (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,&__pyx_mstate_global->__pyx_n_u_details,&__pyx_mstate_global->__pyx_n_u_trailing_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 301, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 301, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 301, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 301, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "abort", 0) < 0) __PYX_ERR(9, 301, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)__pyx_mstate_global->__pyx_kp_u_));
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__11);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, i); __PYX_ERR(9, 301, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 301, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 301, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 301, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)__pyx_mstate_global->__pyx_kp_u_));
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_mstate_global->__pyx_k__11);
    }
    __pyx_v_code = values[0];
    __pyx_v_details = ((PyObject*)values[1]);
    __pyx_v_trailing_metadata = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abort", 0, 1, 3, __pyx_nargs); __PYX_ERR(9, 301, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(9, 303, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trailing_metadata), (&PyTuple_Type), 1, "trailing_metadata", 1))) __PYX_ERR(9, 304, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_2abort(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_details, PyObject *__pyx_v_trailing_metadata) {
  PyObject *__pyx_v_future = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abort", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":305
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *             self._context.abort(code, details, trailing_metadata),
 *             self._loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":306
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),             # <<<<<<<<<<<<<<
 *             self._loop)
 *         # Abort should raise an AbortError
*/
  __pyx_t_5 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_v_code, __pyx_v_details, __pyx_v_trailing_metadata};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_abort, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":307
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
 *             self._loop)             # <<<<<<<<<<<<<<
 *         # Abort should raise an AbortError
 *         future.exception()
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":309
 *             self._loop)
 *         # Abort should raise an AbortError
 *         future.exception()             # <<<<<<<<<<<<<<
 * 
 *     def send_initial_metadata(self, object metadata):
*/
  __pyx_t_4 = __pyx_v_future;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_exception, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.abort", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_future);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata = {"send_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("send_initial_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 311, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 311, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "send_initial_metadata", 0) < 0) __PYX_ERR(9, 311, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, i); __PYX_ERR(9, 311, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 311, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("send_initial_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 311, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_4send_initial_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_v_future = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("send_initial_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":312
 * 
 *     def send_initial_metadata(self, object metadata):
 *         future = asyncio.run_coroutine_threadsafe(             # <<<<<<<<<<<<<<
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_run_coroutine_threadsafe); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":313
 *     def send_initial_metadata(self, object metadata):
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),             # <<<<<<<<<<<<<<
 *             self._loop)
 *         future.result()
*/
  __pyx_t_5 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_metadata};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_send_initial_metadata_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":314
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)             # <<<<<<<<<<<<<<
 *         future.result()
 * 
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_3, __pyx_v_self->_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 312, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":315
 *             self._context.send_initial_metadata(metadata),
 *             self._loop)
 *         future.result()             # <<<<<<<<<<<<<<
 * 
 *     def set_trailing_metadata(self, object metadata):
*/
  __pyx_t_4 = __pyx_v_future;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_result, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.send_initial_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_future);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata = {"set_trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_trailing_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 317, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 317, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_trailing_metadata", 0) < 0) __PYX_ERR(9, 317, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, i); __PYX_ERR(9, 317, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 317, __pyx_L3_error)
    }
    __pyx_v_metadata = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_trailing_metadata", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 317, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_6set_trailing_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_trailing_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":318
 * 
 *     def set_trailing_metadata(self, object metadata):
 *         self._context.set_trailing_metadata(metadata)             # <<<<<<<<<<<<<<
 * 
 *     def invocation_metadata(self):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_trailing_metadata, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_trailing_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata = {"invocation_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invocation_metadata (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("invocation_metadata", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("invocation_metadata", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_8invocation_metadata(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invocation_metadata", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":321
 * 
 *     def invocation_metadata(self):
 *         return self._context.invocation_metadata()             # <<<<<<<<<<<<<<
 * 
 *     def set_code(self, object code):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_invocation_metadata, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.invocation_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code = {"set_code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_code = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_code (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_code,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 323, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 323, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_code", 0) < 0) __PYX_ERR(9, 323, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, i); __PYX_ERR(9, 323, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 323, __pyx_L3_error)
    }
    __pyx_v_code = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_code", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 323, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_code);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_10set_code(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_code) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_code", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":324
 * 
 *     def set_code(self, object code):
 *         self._context.set_code(code)             # <<<<<<<<<<<<<<
 * 
 *     def set_details(self, str details):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_code};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_code, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_code", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details = {"set_details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_details (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 326, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 326, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_details", 0) < 0) __PYX_ERR(9, 326, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, i); __PYX_ERR(9, 326, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 326, __pyx_L3_error)
    }
    __pyx_v_details = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_details", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_details), (&PyUnicode_Type), 1, "details", 1))) __PYX_ERR(9, 326, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_details);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_12set_details(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_details) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_details", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":327
 * 
 *     def set_details(self, str details):
 *         self._context.set_details(details)             # <<<<<<<<<<<<<<
 * 
 *     def set_compression(self, object compression):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_details};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_details, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_details", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression = {"set_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_compression = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_compression,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 329, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_compression", 0) < 0) __PYX_ERR(9, 329, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, i); __PYX_ERR(9, 329, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 329, __pyx_L3_error)
    }
    __pyx_v_compression = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_compression", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 329, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_compression);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_14set_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_compression) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("set_compression", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":330
 * 
 *     def set_compression(self, object compression):
 *         self._context.set_compression(compression)             # <<<<<<<<<<<<<<
 * 
 *     def disable_next_message_compression(self):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_compression};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_compression, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.set_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression = {"disable_next_message_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("disable_next_message_compression (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("disable_next_message_compression", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("disable_next_message_compression", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_16disable_next_message_compression(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("disable_next_message_compression", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":333
 * 
 *     def disable_next_message_compression(self):
 *         self._context.disable_next_message_compression()             # <<<<<<<<<<<<<<
 * 
 *     def add_callback(self, object callback):
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_disable_next_message_compression, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.disable_next_message_compression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback = {"add_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_callback = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_callback (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_callback,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 335, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 335, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_callback", 0) < 0) __PYX_ERR(9, 335, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_callback", 1, 1, 1, i); __PYX_ERR(9, 335, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 335, __pyx_L3_error)
    }
    __pyx_v_callback = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 335, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.add_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v_callback);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_18add_callback(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, PyObject *__pyx_v_callback) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_callback", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":336
 * 
 *     def add_callback(self, object callback):
 *         self._callbacks.append(callback)             # <<<<<<<<<<<<<<
 * 
 *     def peer(self):
*/
  if (unlikely(__pyx_v_self->_callbacks == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
    __PYX_ERR(9, 336, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_callbacks, __pyx_v_callback); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 336, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.add_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer = {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_20peer(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":339
 * 
 *     def peer(self):
 *         return self._context.peer()             # <<<<<<<<<<<<<<
 * 
 *     def peer_identities(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_peer, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities = {"peer_identities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identities (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer_identities", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer_identities", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_22peer_identities(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identities", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":342
 * 
 *     def peer_identities(self):
 *         return self._context.peer_identities()             # <<<<<<<<<<<<<<
 * 
 *     def peer_identity_key(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_peer_identities, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer_identities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key = {"peer_identity_key", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("peer_identity_key (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("peer_identity_key", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("peer_identity_key", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_24peer_identity_key(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("peer_identity_key", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":345
 * 
 *     def peer_identity_key(self):
 *         return self._context.peer_identity_key()             # <<<<<<<<<<<<<<
 * 
 *     def auth_context(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_peer_identity_key, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.peer_identity_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context = {"auth_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("auth_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("auth_context", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("auth_context", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_26auth_context(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("auth_context", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":348
 * 
 *     def auth_context(self):
 *         return self._context.auth_context()             # <<<<<<<<<<<<<<
 * 
 *     def time_remaining(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_auth_context, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.auth_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining = {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("time_remaining (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("time_remaining", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("time_remaining", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_28time_remaining(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_remaining", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":351
 * 
 *     def time_remaining(self):
 *         return self._context.time_remaining()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_time_remaining, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.time_remaining", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_30__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_SyncServicerContext_32__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._SyncServicerContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_154generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_153_run_interceptor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_153_run_interceptor = {"_run_interceptor", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_153_run_interceptor, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_153_run_interceptor(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_interceptors = 0;
  PyObject *__pyx_v_query_handler = 0;
  PyObject *__pyx_v_handler_call_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_interceptor (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_interceptors,&__pyx_mstate_global->__pyx_n_u_query_handler,&__pyx_mstate_global->__pyx_n_u_handler_call_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 354, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_run_interceptor", 0) < 0) __PYX_ERR(9, 354, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_run_interceptor", 1, 3, 3, i); __PYX_ERR(9, 354, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 354, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 354, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 354, __pyx_L3_error)
    }
    __pyx_v_interceptors = values[0];
    __pyx_v_query_handler = values[1];
    __pyx_v_handler_call_details = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_run_interceptor", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 354, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_152_run_interceptor(__pyx_self, __pyx_v_interceptors, __pyx_v_query_handler, __pyx_v_handler_call_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_152_run_interceptor(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_query_handler, PyObject *__pyx_v_handler_call_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_run_interceptor", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 354, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  __pyx_cur_scope->__pyx_v_query_handler = __pyx_v_query_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_query_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_query_handler);
  __pyx_cur_scope->__pyx_v_handler_call_details = __pyx_v_handler_call_details;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_handler_call_details);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_handler_call_details);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_154generator24, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_run_interceptor, __pyx_mstate_global->__pyx_n_u_run_interceptor, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 354, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_154generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_run_interceptor", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 354, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":356
 * async def _run_interceptor(object interceptors, object query_handler,
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)             # <<<<<<<<<<<<<<
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,
*/
  __pyx_t_1 = __Pyx_PyIter_Next2(__pyx_cur_scope->__pyx_v_interceptors, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_interceptor = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":357
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 *     if interceptor:             # <<<<<<<<<<<<<<
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_interceptor); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(9, 357, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":358
 *     interceptor = next(interceptors, None)
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,             # <<<<<<<<<<<<<<
 *                                          query_handler)
 *         return await interceptor.intercept_service(continuation, handler_call_details)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_functools); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_partial); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_run_interceptor); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":359
 *     if interceptor:
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)             # <<<<<<<<<<<<<<
 *         return await interceptor.intercept_service(continuation, handler_call_details)
 *     else:
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_4, __pyx_cur_scope->__pyx_v_interceptors, __pyx_cur_scope->__pyx_v_query_handler};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_continuation = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":360
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
 *         return await interceptor.intercept_service(continuation, handler_call_details)             # <<<<<<<<<<<<<<
 *     else:
 *         return query_handler(handler_call_details)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __pyx_cur_scope->__pyx_v_interceptor;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_continuation, __pyx_cur_scope->__pyx_v_handler_call_details};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_intercept_service, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 360, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 360, __pyx_L1_error)
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":357
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
 *     if interceptor:             # <<<<<<<<<<<<<<
 *         continuation = functools.partial(_run_interceptor, interceptors,
 *                                          query_handler)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":362
 *         return await interceptor.intercept_service(continuation, handler_call_details)
 *     else:
 *         return query_handler(handler_call_details)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_query_handler);
    __pyx_t_4 = __pyx_cur_scope->__pyx_v_query_handler; 
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_handler_call_details};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 362, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_run_interceptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_156_is_async_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_155_is_async_handler, "Inspect if a method handler is async or sync.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_156_is_async_handler = {"_is_async_handler", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_156_is_async_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_155_is_async_handler};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_156_is_async_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_handler = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_is_async_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_handler,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 365, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 365, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_is_async_handler", 0) < 0) __PYX_ERR(9, 365, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_is_async_handler", 1, 1, 1, i); __PYX_ERR(9, 365, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 365, __pyx_L3_error)
    }
    __pyx_v_handler = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_is_async_handler", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 365, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._is_async_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_155_is_async_handler(__pyx_self, __pyx_v_handler);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_155_is_async_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_handler) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_is_async_handler", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":367
 * def _is_async_handler(object handler):
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_isawaitable); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(9, 367, __pyx_L1_error)
  if (!__pyx_t_7) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_iscoroutinefunction); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(9, 367, __pyx_L1_error)
  if (!__pyx_t_7) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_isasyncgenfunction); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_handler};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc._is_async_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_159generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_158_find_method_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_158_find_method_handler = {"_find_method_handler", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_158_find_method_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_158_find_method_handler(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method = 0;
  PyObject *__pyx_v_metadata = 0;
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_find_method_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method,&__pyx_mstate_global->__pyx_n_u_metadata,&__pyx_mstate_global->__pyx_n_u_generic_handlers,&__pyx_mstate_global->__pyx_n_u_interceptors,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 370, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 370, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 370, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 370, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 370, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_find_method_handler", 0) < 0) __PYX_ERR(9, 370, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, i); __PYX_ERR(9, 370, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 370, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 370, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 370, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 370, __pyx_L3_error)
    }
    __pyx_v_method = ((PyObject*)values[0]);
    __pyx_v_metadata = ((PyObject*)values[1]);
    __pyx_v_generic_handlers = ((PyObject*)values[2]);
    __pyx_v_interceptors = ((PyObject*)values[3]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_find_method_handler", 1, 4, 4, __pyx_nargs); __PYX_ERR(9, 370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyUnicode_Type), 1, "method", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metadata), (&PyTuple_Type), 1, "metadata", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_generic_handlers), (&PyList_Type), 1, "generic_handlers", 1))) __PYX_ERR(9, 370, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interceptors), (&PyTuple_Type), 1, "interceptors", 1))) __PYX_ERR(9, 371, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_157_find_method_handler(__pyx_self, __pyx_v_method, __pyx_v_metadata, __pyx_v_generic_handlers, __pyx_v_interceptors);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_157_find_method_handler(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method, PyObject *__pyx_v_metadata, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_find_method_handler", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 370, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method = __pyx_v_method;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method);
  __pyx_cur_scope->__pyx_v_metadata = __pyx_v_metadata;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_metadata);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metadata);
  __pyx_cur_scope->__pyx_v_generic_handlers = __pyx_v_generic_handlers;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_159generator25, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_find_method_handler, __pyx_mstate_global->__pyx_n_u_find_method_handler, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers = {"query_handlers", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_handler_call_details = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("query_handlers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_handler_call_details,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 372, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 372, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "query_handlers", 0) < 0) __PYX_ERR(9, 372, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("query_handlers", 1, 1, 1, i); __PYX_ERR(9, 372, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 372, __pyx_L3_error)
    }
    __pyx_v_handler_call_details = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("query_handlers", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 372, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler.query_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(__pyx_self, __pyx_v_handler_call_details);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(PyObject *__pyx_self, PyObject *__pyx_v_handler_call_details) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_outer_scope;
  PyObject *__pyx_v_generic_handler = NULL;
  PyObject *__pyx_v_method_handler = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("query_handlers", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":373
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:             # <<<<<<<<<<<<<<
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
*/
  if (unlikely(!__pyx_cur_scope->__pyx_v_generic_handlers)) { __Pyx_RaiseClosureNameError("generic_handlers"); __PYX_ERR(9, 373, __pyx_L1_error) }
  if (unlikely(__pyx_cur_scope->__pyx_v_generic_handlers == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(9, 373, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_generic_handlers; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 373, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    __pyx_t_3 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_2);
    ++__pyx_t_2;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_generic_handler, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":374
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)             # <<<<<<<<<<<<<<
 *             if method_handler is not None:
 *                 return method_handler
*/
    __pyx_t_4 = __pyx_v_generic_handler;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_handler_call_details};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_service, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_method_handler, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":375
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:             # <<<<<<<<<<<<<<
 *                 return method_handler
 *         return None
*/
    __pyx_t_6 = (__pyx_v_method_handler != Py_None);
    if (__pyx_t_6) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":376
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
 *                 return method_handler             # <<<<<<<<<<<<<<
 *         return None
 * 
*/
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_method_handler);
      __pyx_r = __pyx_v_method_handler;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":375
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:             # <<<<<<<<<<<<<<
 *                 return method_handler
 *         return None
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":373
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
 *         for generic_handler in generic_handlers:             # <<<<<<<<<<<<<<
 *             method_handler = generic_handler.service(handler_call_details)
 *             if method_handler is not None:
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":377
 *             if method_handler is not None:
 *                 return method_handler
 *         return None             # <<<<<<<<<<<<<<
 * 
 *     cdef _HandlerCallDetails handler_call_details = _HandlerCallDetails(method,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._find_method_handler.query_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_generic_handler);
  __Pyx_XDECREF(__pyx_v_method_handler);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
*/

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_159generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_find_method_handler", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 370, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":372
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):             # <<<<<<<<<<<<<<
 *         for generic_handler in generic_handlers:
 *             method_handler = generic_handler.service(handler_call_details)
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_find_method_handler_1query_handlers, 0, __pyx_mstate_global->__pyx_n_u_find_method_handler_locals_quer, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_query_handlers = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":379
 *         return None
 * 
 *     cdef _HandlerCallDetails handler_call_details = _HandlerCallDetails(method,             # <<<<<<<<<<<<<<
 *                                                                         metadata)
 *     # interceptor
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":380
 * 
 *     cdef _HandlerCallDetails handler_call_details = _HandlerCallDetails(method,
 *                                                                         metadata)             # <<<<<<<<<<<<<<
 *     # interceptor
 *     if interceptors:
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_method, __pyx_cur_scope->__pyx_v_metadata};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 379, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_handler_call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":382
 *                                                                         metadata)
 *     # interceptor
 *     if interceptors:             # <<<<<<<<<<<<<<
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)
*/
  __pyx_t_5 = (__pyx_cur_scope->__pyx_v_interceptors != Py_None)&&(__Pyx_PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_interceptors) != 0);
  if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_5 < 0))) __PYX_ERR(9, 382, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":383
 *     # interceptor
 *     if interceptors:
 *         return await _run_interceptor(iter(interceptors), query_handlers,             # <<<<<<<<<<<<<<
 *                                       handler_call_details)
 *     else:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_run_interceptor); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_interceptors); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":384
 *     if interceptors:
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)             # <<<<<<<<<<<<<<
 *     else:
 *         return query_handlers(handler_call_details)
*/
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_6, __pyx_cur_scope->__pyx_v_query_handlers, ((PyObject *)__pyx_cur_scope->__pyx_v_handler_call_details)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 383, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 383, __pyx_L1_error)
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":382
 *                                                                         metadata)
 *     # interceptor
 *     if interceptors:             # <<<<<<<<<<<<<<
 *         return await _run_interceptor(iter(interceptors), query_handlers,
 *                                       handler_call_details)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":386
 *                                       handler_call_details)
 *     else:
 *         return query_handlers(handler_call_details)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_pf_4grpc_7_cython_6cygrpc_20_find_method_handler_query_handlers(__pyx_cur_scope->__pyx_v_query_handlers, ((PyObject *)__pyx_cur_scope->__pyx_v_handler_call_details)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_find_method_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_162generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_161_finish_handler_with_unary_response(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_160_finish_handler_with_unary_response, "Finishes server method handler with a single response.\n\n    This function executes the application handler, and handles response\n    sending, as well as errors. It is shared between unary-unary and\n    stream-unary handlers.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_161_finish_handler_with_unary_response = {"_finish_handler_with_unary_response", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_161_finish_handler_with_unary_response, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_160_finish_handler_with_unary_response};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_161_finish_handler_with_unary_response(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_unary_handler = 0;
  PyObject *__pyx_v_request = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  PyObject *__pyx_v_response_serializer = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_unary_handler,&__pyx_mstate_global->__pyx_n_u_request,&__pyx_mstate_global->__pyx_n_u_servicer_context,&__pyx_mstate_global->__pyx_n_u_response_serializer,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 389, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_finish_handler_with_unary_response", 0) < 0) __PYX_ERR(9, 389, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, i); __PYX_ERR(9, 389, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 389, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 389, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 389, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 389, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 389, __pyx_L3_error)
      values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(9, 389, __pyx_L3_error)
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_unary_handler = values[1];
    __pyx_v_request = values[2];
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[3]);
    __pyx_v_response_serializer = values[4];
    __pyx_v_loop = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_finish_handler_with_unary_response", 1, 6, 6, __pyx_nargs); __PYX_ERR(9, 389, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 389, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 392, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_160_finish_handler_with_unary_response(__pyx_self, __pyx_v_rpc_state, __pyx_v_unary_handler, __pyx_v_request, __pyx_v_servicer_context, __pyx_v_response_serializer, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_160_finish_handler_with_unary_response(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_unary_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_response_serializer, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 389, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_unary_handler = __pyx_v_unary_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unary_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_unary_handler);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_servicer_context = __pyx_v_servicer_context;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __pyx_cur_scope->__pyx_v_response_serializer = __pyx_v_response_serializer;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_response_serializer);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_response_serializer);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_162generator26, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 389, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_162generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_unary_response", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    case 3: goto __pyx_L12_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 389, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":404
 *     cdef object response_message
 *     cdef _SyncServicerContext sync_servicer_context
 *     install_context_from_request_call_event_aio(rpc_state)             # <<<<<<<<<<<<<<
 * 
 *     if _is_async_handler(unary_handler):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":406
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if _is_async_handler(unary_handler):             # <<<<<<<<<<<<<<
 *         # Run async method handlers in this coroutine
 *         response_message = await unary_handler(
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_is_async_handler); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_unary_handler};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":408
 *     if _is_async_handler(unary_handler):
 *         # Run async method handlers in this coroutine
 *         response_message = await unary_handler(             # <<<<<<<<<<<<<<
 *             request,
 *             servicer_context,
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unary_handler);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_unary_handler; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":410
 *         response_message = await unary_handler(
 *             request,
 *             servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *     else:
*/
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 408, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 408, __pyx_L1_error)
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_response_message = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":406
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if _is_async_handler(unary_handler):             # <<<<<<<<<<<<<<
 *         # Run async method handlers in this coroutine
 *         response_message = await unary_handler(
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":414
 *     else:
 *         # Run sync method handlers in the thread pool
 *         sync_servicer_context = _SyncServicerContext(servicer_context)             # <<<<<<<<<<<<<<
 *         response_message = await loop.run_in_executor(
 *             rpc_state.server.thread_pool(),
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
    __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext); 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 414, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    __pyx_cur_scope->__pyx_v_sync_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":415
 *         # Run sync method handlers in the thread pool
 *         sync_servicer_context = _SyncServicerContext(servicer_context)
 *         response_message = await loop.run_in_executor(             # <<<<<<<<<<<<<<
 *             rpc_state.server.thread_pool(),
 *             unary_handler,
*/
    __pyx_t_2 = __pyx_cur_scope->__pyx_v_loop;
    __Pyx_INCREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":416
 *         sync_servicer_context = _SyncServicerContext(servicer_context)
 *         response_message = await loop.run_in_executor(
 *             rpc_state.server.thread_pool(),             # <<<<<<<<<<<<<<
 *             unary_handler,
 *             request,
*/
    __pyx_t_3 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *)__pyx_cur_scope->__pyx_v_rpc_state->server->__pyx_vtab)->thread_pool(__pyx_cur_scope->__pyx_v_rpc_state->server); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":419
 *             unary_handler,
 *             request,
 *             sync_servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *         # Support sync-stack callback
*/
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_unary_handler, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_sync_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_run_in_executor, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 415, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 415, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 415, __pyx_L1_error)
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_response_message = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":422
 *         )
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
*/
    if (unlikely(__pyx_cur_scope->__pyx_v_sync_servicer_context->_callbacks == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(9, 422, __pyx_L1_error)
    }
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_sync_servicer_context->_callbacks; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_7 = 0;
    for (;;) {
      {
        Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 422, __pyx_L1_error)
        #endif
        if (__pyx_t_7 >= __pyx_temp) break;
      }
      __pyx_t_3 = __Pyx_PyList_GetItemRef(__pyx_t_1, __pyx_t_7);
      ++__pyx_t_7;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_callback);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_callback, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":423
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:
 *             callback()             # <<<<<<<<<<<<<<
 * 
 *     # Raises exception if aborted
*/
      __pyx_t_2 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_callback);
      __pyx_t_8 = __pyx_cur_scope->__pyx_v_callback; 
      __pyx_t_4 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_4 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 423, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":422
 *         )
 *         # Support sync-stack callback
 *         for callback in sync_servicer_context._callbacks:             # <<<<<<<<<<<<<<
 *             callback()
 * 
*/
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":426
 * 
 *     # Raises exception if aborted
 *     rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *     # Serializes the response message
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 426, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":430
 *     # Serializes the response message
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *         response_raw = serialize(
 *             response_serializer,
*/
  __pyx_t_1 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(9, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":431
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:
 *         response_raw = serialize(             # <<<<<<<<<<<<<<
 *             response_serializer,
 *             response_message,
*/
    __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_serialize(__pyx_cur_scope->__pyx_v_response_serializer, __pyx_cur_scope->__pyx_v_response_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 431, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_cur_scope->__pyx_v_response_raw = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":430
 *     # Serializes the response message
 *     cdef bytes response_raw
 *     if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *         response_raw = serialize(
 *             response_serializer,
*/
    goto __pyx_L10;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":437
 *     else:
 *         # Discards the response message if the status code is non-OK.
 *         response_raw = b''             # <<<<<<<<<<<<<<
 * 
 *     # Assembles the batch operations
*/
  /*else*/ {
    __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_b_);
    __pyx_cur_scope->__pyx_v_response_raw = __pyx_mstate_global->__pyx_kp_b_;
  }
  __pyx_L10:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":442
 *     cdef tuple finish_ops
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),             # <<<<<<<<<<<<<<
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
*/
  __pyx_t_8 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation);
  __pyx_t_1 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation); 
  __pyx_t_9 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->get_write_flag(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 442, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_cur_scope->__pyx_v_response_raw, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 442, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":443
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),
 *         SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *             rpc_state.trailing_metadata,
 *             rpc_state.status_code,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  __pyx_t_8 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":445
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
 *             rpc_state.status_code,             # <<<<<<<<<<<<<<
 *             rpc_state.status_details,
 *             _EMPTY_FLAGS,
*/
  __pyx_t_10 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":447
 *             rpc_state.status_code,
 *             rpc_state.status_details,
 *             _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *         ),
 *     )
*/
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata, __pyx_t_10, __pyx_cur_scope->__pyx_v_rpc_state->status_details, __pyx_t_11};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 443, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":442
 *     cdef tuple finish_ops
 *     finish_ops = (
 *         SendMessageOperation(response_raw, rpc_state.get_write_flag()),             # <<<<<<<<<<<<<<
 *         SendStatusFromServerOperation(
 *             rpc_state.trailing_metadata,
*/
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF((PyObject *)__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_3)) != (0)) __PYX_ERR(9, 442, __pyx_L1_error);
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_1)) != (0)) __PYX_ERR(9, 442, __pyx_L1_error);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_8);
  __pyx_cur_scope->__pyx_v_finish_ops = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":450
 *         ),
 *     )
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
*/
  __pyx_t_5 = (!__pyx_cur_scope->__pyx_v_rpc_state->metadata_sent);
  if (__pyx_t_5) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":451
 *     )
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(             # <<<<<<<<<<<<<<
 *             finish_ops,
 *             None)
*/
    __pyx_t_8 = __pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)Py_None)); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_8))) __PYX_ERR(9, 451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_finish_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)__pyx_t_8));
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":450
 *         ),
 *     )
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":454
 *             finish_ops,
 *             None)
 *     rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
*/
  __pyx_cur_scope->__pyx_v_rpc_state->metadata_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":455
 *             None)
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()
*/
  __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":456
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)             # <<<<<<<<<<<<<<
 *     uninstall_context()
 * 
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_finish_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_8, &__pyx_r);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 3;
    return __pyx_r;
    __pyx_L12_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 456, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 456, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":457
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_uninstall_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_finish_handler_with_unary_response", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_165generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_164_finish_handler_with_stream_responses(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_163_finish_handler_with_stream_responses, "Finishes server method handler with multiple responses.\n\n    This function executes the application handler, and handles response\n    sending, as well as errors. It is shared between unary-stream and\n    stream-stream handlers.\n    ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_164_finish_handler_with_stream_responses = {"_finish_handler_with_stream_responses", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_164_finish_handler_with_stream_responses, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_163_finish_handler_with_stream_responses};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_164_finish_handler_with_stream_responses(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_stream_handler = 0;
  PyObject *__pyx_v_request = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_stream_handler,&__pyx_mstate_global->__pyx_n_u_request,&__pyx_mstate_global->__pyx_n_u_servicer_context,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 460, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 460, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 460, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 460, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 460, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 460, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_finish_handler_with_stream_responses", 0) < 0) __PYX_ERR(9, 460, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, i); __PYX_ERR(9, 460, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 460, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 460, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 460, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 460, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 460, __pyx_L3_error)
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_stream_handler = values[1];
    __pyx_v_request = values[2];
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[3]);
    __pyx_v_loop = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_finish_handler_with_stream_responses", 1, 5, 5, __pyx_nargs); __PYX_ERR(9, 460, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 460, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 463, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_163_finish_handler_with_stream_responses(__pyx_self, __pyx_v_rpc_state, __pyx_v_stream_handler, __pyx_v_request, __pyx_v_servicer_context, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_163_finish_handler_with_stream_responses(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_stream_handler, PyObject *__pyx_v_request, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 460, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_stream_handler = __pyx_v_stream_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_stream_handler);
  __pyx_cur_scope->__pyx_v_request = __pyx_v_request;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_request);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_request);
  __pyx_cur_scope->__pyx_v_servicer_context = __pyx_v_servicer_context;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_165generator27, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 460, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_165generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_finish_handler_with_stream_responses", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L9_resume_from_await;
    case 3: goto __pyx_L10_resume_from_await;
    case 4: goto __pyx_L13_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 460, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":473
 *     cdef object async_response_generator
 *     cdef object response_message
 *     install_context_from_request_call_event_aio(rpc_state)             # <<<<<<<<<<<<<<
 * 
 *     if inspect.iscoroutinefunction(stream_handler):
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":475
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if inspect.iscoroutinefunction(stream_handler):             # <<<<<<<<<<<<<<
 *         # Case 1: Coroutine async handler - using reader-writer API
 *         # The handler uses reader / writer API, returns None.
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_stream_handler};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":478
 *         # Case 1: Coroutine async handler - using reader-writer API
 *         # The handler uses reader / writer API, returns None.
 *         await stream_handler(             # <<<<<<<<<<<<<<
 *             request,
 *             servicer_context,
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
    __pyx_t_3 = __pyx_cur_scope->__pyx_v_stream_handler; 

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":480
 *         await stream_handler(
 *             request,
 *             servicer_context,             # <<<<<<<<<<<<<<
 *         )
 *     else:
*/
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 478, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 478, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 478, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":475
 *     install_context_from_request_call_event_aio(rpc_state)
 * 
 *     if inspect.iscoroutinefunction(stream_handler):             # <<<<<<<<<<<<<<
 *         # Case 1: Coroutine async handler - using reader-writer API
 *         # The handler uses reader / writer API, returns None.
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":483
 *         )
 *     else:
 *         if inspect.isasyncgenfunction(stream_handler):             # <<<<<<<<<<<<<<
 *             # Case 2: Async handler - async generator
 *             # The handler uses async generator API
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_isasyncgenfunction); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_stream_handler};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 483, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":486
 *             # Case 2: Async handler - async generator
 *             # The handler uses async generator API
 *             async_response_generator = stream_handler(             # <<<<<<<<<<<<<<
 *                 request,
 *                 servicer_context,
*/
      __pyx_t_2 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_stream_handler; 

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":488
 *             async_response_generator = stream_handler(
 *                 request,
 *                 servicer_context,             # <<<<<<<<<<<<<<
 *             )
 *         else:
*/
      __pyx_t_4 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_4 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 486, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_async_response_generator = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":483
 *         )
 *     else:
 *         if inspect.isasyncgenfunction(stream_handler):             # <<<<<<<<<<<<<<
 *             # Case 2: Async handler - async generator
 *             # The handler uses async generator API
*/
      goto __pyx_L6;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":494
 *             # NOTE(lidiz) Streaming handler in sync stack is either a generator
 *             # function or a function returns a generator.
 *             sync_servicer_context = _SyncServicerContext(servicer_context)             # <<<<<<<<<<<<<<
 *             gen = stream_handler(request, sync_servicer_context)
 *             async_response_generator = generator_to_async_generator(gen,
*/
    /*else*/ {
      __pyx_t_3 = NULL;
      __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext);
      __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext); 
      __pyx_t_4 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 494, __pyx_L1_error)
        __Pyx_GOTREF((PyObject *)__pyx_t_1);
      }
      __Pyx_GIVEREF((PyObject *)__pyx_t_1);
      __pyx_cur_scope->__pyx_v_sync_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":495
 *             # function or a function returns a generator.
 *             sync_servicer_context = _SyncServicerContext(servicer_context)
 *             gen = stream_handler(request, sync_servicer_context)             # <<<<<<<<<<<<<<
 *             async_response_generator = generator_to_async_generator(gen,
 *                                                                     loop,
*/
      __pyx_t_2 = NULL;
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_stream_handler);
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_stream_handler; 
      __pyx_t_4 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
        __pyx_t_4 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_request, ((PyObject *)__pyx_cur_scope->__pyx_v_sync_servicer_context)};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 495, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_gen = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":496
 *             sync_servicer_context = _SyncServicerContext(servicer_context)
 *             gen = stream_handler(request, sync_servicer_context)
 *             async_response_generator = generator_to_async_generator(gen,             # <<<<<<<<<<<<<<
 *                                                                     loop,
 *                                                                     rpc_state.server.thread_pool())
*/
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 496, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":498
 *             async_response_generator = generator_to_async_generator(gen,
 *                                                                     loop,
 *                                                                     rpc_state.server.thread_pool())             # <<<<<<<<<<<<<<
 * 
 *         # Consumes messages from the generator
*/
      __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer *)__pyx_cur_scope->__pyx_v_rpc_state->server->__pyx_vtab)->thread_pool(__pyx_cur_scope->__pyx_v_rpc_state->server); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 498, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
        __pyx_t_4 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_gen, __pyx_cur_scope->__pyx_v_loop, __pyx_t_5};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 496, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_v_async_response_generator = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __pyx_L6:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":501
 * 
 *         # Consumes messages from the generator
 *         async for response_message in async_response_generator:             # <<<<<<<<<<<<<<
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()
*/
    __pyx_t_1 = __Pyx_Coroutine_GetAsyncIter(__pyx_cur_scope->__pyx_v_async_response_generator); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    for (;;) {
      __pyx_t_2 = __Pyx_Coroutine_AsyncIterNext(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 501, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (likely(__pyx_t_7 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L9_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        if (unlikely(!__pyx_sent_value)) {
          PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
          if (unlikely(exc_type && (exc_type == PyExc_StopAsyncIteration || ( exc_type != PyExc_StopIteration && exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopAsyncIteration))))) {
            PyErr_Clear();
            break;
          }
          __PYX_ERR(9, 501, __pyx_L1_error)
        }
        __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
      } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __pyx_t_2 = __pyx_r; __pyx_r = NULL;
      } else {
        PyObject* exc_type = __Pyx_PyErr_CurrentExceptionType();
        if (unlikely(exc_type && (exc_type == PyExc_StopAsyncIteration || ( exc_type != PyExc_StopIteration && exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopAsyncIteration))))) {
          PyErr_Clear();
          break;
        }
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(9, 501, __pyx_L1_error)
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response_message);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response_message, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":503
 *         async for response_message in async_response_generator:
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *             await servicer_context.write(response_message)
*/
      ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 503, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":505
 *             rpc_state.raise_for_termination()
 * 
 *             await servicer_context.write(response_message)             # <<<<<<<<<<<<<<
 * 
 *     # Raises exception if aborted
*/
      __pyx_t_5 = ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context);
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_response_message};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_write, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 505, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (likely(__pyx_t_7 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_1);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 3;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_1);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 505, __pyx_L1_error)
      } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(9, 505, __pyx_L1_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":501
 * 
 *         # Consumes messages from the generator
 *         async for response_message in async_response_generator:             # <<<<<<<<<<<<<<
 *             # Raises exception if aborted
 *             rpc_state.raise_for_termination()
*/
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":508
 * 
 *     # Raises exception if aborted
 *     rpc_state.raise_for_termination()             # <<<<<<<<<<<<<<
 * 
 *     # Sends the final status of this RPC
*/
  ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->raise_for_termination(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 508, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":511
 * 
 *     # Sends the final status of this RPC
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(             # <<<<<<<<<<<<<<
 *         rpc_state.trailing_metadata,
 *         rpc_state.status_code,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation);
  __pyx_t_5 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":513
 *     cdef SendStatusFromServerOperation op = SendStatusFromServerOperation(
 *         rpc_state.trailing_metadata,
 *         rpc_state.status_code,             # <<<<<<<<<<<<<<
 *         rpc_state.status_details,
 *         _EMPTY_FLAGS,
*/
  __pyx_t_3 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":515
 *         rpc_state.status_code,
 *         rpc_state.status_details,
 *         _EMPTY_FLAGS,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata, __pyx_t_3, __pyx_cur_scope->__pyx_v_rpc_state->status_details, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 511, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":518
 *     )
 * 
 *     cdef tuple finish_ops = (op,)             # <<<<<<<<<<<<<<
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(9, 518, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_finish_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":519
 * 
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
*/
  __pyx_t_6 = (!__pyx_cur_scope->__pyx_v_rpc_state->metadata_sent);
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":520
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:
 *         finish_ops = prepend_send_initial_metadata_op(             # <<<<<<<<<<<<<<
 *             finish_ops,
 *             None
*/
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_prepend_send_initial_metadata_op(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)Py_None)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(9, 520, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_finish_ops);
    __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_finish_ops, ((PyObject*)__pyx_t_1));
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":519
 * 
 *     cdef tuple finish_ops = (op,)
 *     if not rpc_state.metadata_sent:             # <<<<<<<<<<<<<<
 *         finish_ops = prepend_send_initial_metadata_op(
 *             finish_ops,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":524
 *             None
 *         )
 *     rpc_state.metadata_sent = True             # <<<<<<<<<<<<<<
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
*/
  __pyx_cur_scope->__pyx_v_rpc_state->metadata_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":525
 *         )
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()
*/
  __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":526
 *     rpc_state.metadata_sent = True
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)             # <<<<<<<<<<<<<<
 *     uninstall_context()
 * 
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_finish_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 4;
    return __pyx_r;
    __pyx_L13_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 526, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 526, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":527
 *     rpc_state.status_sent = True
 *     await execute_batch(rpc_state, finish_ops, loop)
 *     uninstall_context()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_uninstall_context); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_8);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_8);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_finish_handler_with_stream_responses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_168generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_167_handle_unary_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_167_handle_unary_unary_rpc = {"_handle_unary_unary_rpc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_167_handle_unary_unary_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_167_handle_unary_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method_handler,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 530, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 530, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 530, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 530, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_unary_unary_rpc", 0) < 0) __PYX_ERR(9, 530, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_unary_unary_rpc", 1, 3, 3, i); __PYX_ERR(9, 530, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 530, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 530, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 530, __pyx_L3_error)
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_unary_unary_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 530, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 531, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_166_handle_unary_unary_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_166_handle_unary_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 530, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_168generator28, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_unary_unary_rpc, __pyx_mstate_global->__pyx_n_u_handle_unary_unary_rpc, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 530, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_168generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  __Pyx_PySendResult __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_unary_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 530, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":534
 *                                   object loop):
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)             # <<<<<<<<<<<<<<
 *     if request_raw is None:
 *         # The RPC was cancelled immediately after start on client side.
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_receive_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 534, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 534, __pyx_L1_error)
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 534, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_request_raw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":535
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         # The RPC was cancelled immediately after start on client side.
 *         return
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_request_raw == ((PyObject*)Py_None));
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":537
 *     if request_raw is None:
 *         # The RPC was cancelled immediately after start on client side.
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Deserializes the request message
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":535
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         # The RPC was cancelled immediately after start on client side.
 *         return
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":541
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         request_raw,
 *     )
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":540
 * 
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(             # <<<<<<<<<<<<<<
 *         method_handler.request_deserializer,
 *         request_raw,
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_request_raw); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_request_message = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":546
 * 
 *     # Creates a dedicated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         None,
*/
  __pyx_t_1 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":550
 *         None,
 *         None,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), Py_None, Py_None, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 546, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_3);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":554
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_unary_response(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.unary_unary,
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":556
 *     await _finish_handler_with_unary_response(
 *         rpc_state,
 *         method_handler.unary_unary,             # <<<<<<<<<<<<<<
 *         request_message,
 *         servicer_context,
*/
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_unary_unary); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":559
 *         request_message,
 *         servicer_context,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop
 *     )
*/
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_serializer); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":560
 *         servicer_context,
 *         method_handler.response_serializer,
 *         loop             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_7, __pyx_cur_scope->__pyx_v_request_message, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_t_8, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+__pyx_t_4, (7-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 554, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L6_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 554, __pyx_L1_error)
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 554, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_unary_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_171generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_170_handle_unary_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_170_handle_unary_stream_rpc = {"_handle_unary_stream_rpc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_170_handle_unary_stream_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_170_handle_unary_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method_handler,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 564, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 564, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 564, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 564, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_unary_stream_rpc", 0) < 0) __PYX_ERR(9, 564, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_unary_stream_rpc", 1, 3, 3, i); __PYX_ERR(9, 564, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 564, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 564, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 564, __pyx_L3_error)
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_unary_stream_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 564, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 565, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_169_handle_unary_stream_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_169_handle_unary_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 564, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_171generator29, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_unary_stream_rpc, __pyx_mstate_global->__pyx_n_u_handle_unary_stream_rpc, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 564, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_171generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  __Pyx_PySendResult __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_unary_stream_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 564, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":568
 *                                    object loop):
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)             # <<<<<<<<<<<<<<
 *     if request_raw is None:
 *         return
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_receive_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 568, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 568, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 568, __pyx_L1_error)
  }
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(9, 568, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_request_raw = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":569
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         return
 * 
*/
  __pyx_t_6 = (__pyx_cur_scope->__pyx_v_request_raw == ((PyObject*)Py_None));
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":570
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Deserializes the request message
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":569
 *     # Receives request message
 *     cdef bytes request_raw = await _receive_message(rpc_state, loop)
 *     if request_raw is None:             # <<<<<<<<<<<<<<
 *         return
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":574
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         request_raw,
 *     )
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_deserializer); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":573
 * 
 *     # Deserializes the request message
 *     cdef object request_message = deserialize(             # <<<<<<<<<<<<<<
 *         method_handler.request_deserializer,
 *         request_raw,
*/
  __pyx_t_3 = __pyx_f_4grpc_7_cython_6cygrpc_deserialize(__pyx_t_1, __pyx_cur_scope->__pyx_v_request_raw); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_cur_scope->__pyx_v_request_message = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":579
 * 
 *     # Creates a dedicated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
*/
  __pyx_t_1 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":581
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         method_handler.response_serializer,
 *         loop,
*/
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_deserializer); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":582
 *         rpc_state,
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop,
 *     )
*/
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_serializer); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":583
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (5-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 579, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_3);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_3);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":587
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_stream_responses(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.unary_stream,
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":589
 *     await _finish_handler_with_stream_responses(
 *         rpc_state,
 *         method_handler.unary_stream,             # <<<<<<<<<<<<<<
 *         request_message,
 *         servicer_context,
*/
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_unary_stream); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":592
 *         request_message,
 *         servicer_context,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_7, __pyx_cur_scope->__pyx_v_request_message, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_4, (6-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 587, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(__pyx_t_5 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L6_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 587, __pyx_L1_error)
  } else if (likely(__pyx_t_5 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 587, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_unary_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":599
 *     """Bridge between the async generator API and the reader-writer API."""
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):             # <<<<<<<<<<<<<<
 *         self._servicer_context = servicer_context
 *         self._agen = None
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_servicer_context,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 599, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 599, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 599, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(9, 599, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 599, __pyx_L3_error)
    }
    __pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 599, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_servicer_context), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, 1, "servicer_context", 0))) __PYX_ERR(9, 599, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self), __pyx_v_servicer_context);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *__pyx_v_servicer_context) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":600
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):
 *         self._servicer_context = servicer_context             # <<<<<<<<<<<<<<
 *         self._agen = None
 * 
*/
  __Pyx_INCREF((PyObject *)__pyx_v_servicer_context);
  __Pyx_GIVEREF((PyObject *)__pyx_v_servicer_context);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_servicer_context);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_servicer_context);
  __pyx_v_self->_servicer_context = __pyx_v_servicer_context;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":601
 *     def __cinit__(self, _ServicerContext servicer_context):
 *         self._servicer_context = servicer_context
 *         self._agen = None             # <<<<<<<<<<<<<<
 * 
 *     async def _async_message_receiver(self):
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_agen);
  __Pyx_DECREF(__pyx_v_self->_agen);
  __pyx_v_self->_agen = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":599
 *     """Bridge between the async generator API and the reader-writer API."""
 * 
 *     def __cinit__(self, _ServicerContext servicer_context):             # <<<<<<<<<<<<<<
 *         self._servicer_context = servicer_context
 *         self._agen = None
*/

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver, "An async generator that receives messages.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver = {"_async_message_receiver", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_async_message_receiver (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_async_message_receiver", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_async_message_receiver", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_async_message_receiver", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 603, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_AsyncGen_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_async_message_receiver, __pyx_mstate_global->__pyx_n_u_MessageReceiver__async_message, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 603, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver._async_message_receiver", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_4generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  __Pyx_PySendResult __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_async_message_receiver", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_await;
    case 2: goto __pyx_L8_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started async generator");
    __PYX_ERR(9, 603, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":606
 *         """An async generator that receives messages."""
 *         cdef object message
 *         while True:             # <<<<<<<<<<<<<<
 *             message = await self._servicer_context.read()
 *             if message is not EOF:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":607
 *         cdef object message
 *         while True:
 *             message = await self._servicer_context.read()             # <<<<<<<<<<<<<<
 *             if message is not EOF:
 *                 yield message
*/
    __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_servicer_context);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_read, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_4 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_4 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 607, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_4 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 607, __pyx_L1_error)
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_message);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_message, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":608
 *         while True:
 *             message = await self._servicer_context.read()
 *             if message is not EOF:             # <<<<<<<<<<<<<<
 *                 yield message
 *             else:
*/
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_EOF); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = (__pyx_cur_scope->__pyx_v_message != __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":609
 *             message = await self._servicer_context.read()
 *             if message is not EOF:
 *                 yield message             # <<<<<<<<<<<<<<
 *             else:
 *                 break
*/
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_message);
      __pyx_r = __pyx_cur_scope->__pyx_v_message;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from async generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __Pyx__PyAsyncGenValueWrapperNew(__pyx_r);
      __pyx_L8_resume_from_yield:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 609, __pyx_L1_error)

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":608
 *         while True:
 *             message = await self._servicer_context.read()
 *             if message is not EOF:             # <<<<<<<<<<<<<<
 *                 yield message
 *             else:
*/
      goto __pyx_L7;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":611
 *                 yield message
 *             else:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *     def __aiter__(self):
*/
    /*else*/ {
      goto __pyx_L5_break;
    }
    __pyx_L7:;
  }
  __pyx_L5_break:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(1);
    __Pyx_AddTraceback("_async_message_receiver", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":613
 *                 break
 * 
 *     def __aiter__(self):             # <<<<<<<<<<<<<<
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__aiter__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_5__aiter__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__aiter__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":615
 *     def __aiter__(self):
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:             # <<<<<<<<<<<<<<
 *             self._agen = self._async_message_receiver()
 *         return self._agen
*/
  __pyx_t_1 = (__pyx_v_self->_agen == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":616
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
 *             self._agen = self._async_message_receiver()             # <<<<<<<<<<<<<<
 *         return self._agen
 * 
*/
    __pyx_t_3 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_async_message_receiver, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_self->_agen);
    __Pyx_DECREF(__pyx_v_self->_agen);
    __pyx_v_self->_agen = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":615
 *     def __aiter__(self):
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:             # <<<<<<<<<<<<<<
 *             self._agen = self._async_message_receiver()
 *         return self._agen
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":617
 *         if self._agen is None:
 *             self._agen = self._async_message_receiver()
 *         return self._agen             # <<<<<<<<<<<<<<
 * 
 *     async def __anext__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_agen);
  __pyx_r = __pyx_v_self->_agen;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":613
 *                 break
 * 
 *     def __aiter__(self):             # <<<<<<<<<<<<<<
 *         # Prevents never awaited warning if application never used the async generator
 *         if self._agen is None:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__aiter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__anext__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_7__anext__(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__anext__", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 619, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_anext, __pyx_mstate_global->__pyx_n_u_MessageReceiver___anext, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 619, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__anext__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_16_MessageReceiver_9generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__anext__", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 619, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":620
 * 
 *     async def __anext__(self):
 *         return await self.__aiter__().__anext__()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_aiter, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_anext, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 620, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 620, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":619
 *         return self._agen
 * 
 *     async def __anext__(self):             # <<<<<<<<<<<<<<
 *         return await self.__aiter__().__anext__()
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("__anext__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_16_MessageReceiver_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._MessageReceiver.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_174generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_173_handle_stream_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_173_handle_stream_unary_rpc = {"_handle_stream_unary_rpc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_173_handle_stream_unary_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_173_handle_stream_unary_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method_handler,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 623, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 623, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 623, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 623, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_stream_unary_rpc", 0) < 0) __PYX_ERR(9, 623, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_stream_unary_rpc", 1, 3, 3, i); __PYX_ERR(9, 623, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 623, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 623, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 623, __pyx_L3_error)
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_stream_unary_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 623, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 624, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_172_handle_stream_unary_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_172_handle_stream_unary_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 623, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_174generator32, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_stream_unary_rpc, __pyx_mstate_global->__pyx_n_u_handle_stream_unary_rpc, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 623, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_174generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_PySendResult __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_unary_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 623, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":627
 *                                    object loop):
 *     # Creates a dedicated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":629
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         None,
 *         loop,
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_deserializer); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":631
 *         method_handler.request_deserializer,
 *         None,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_4, Py_None, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 627, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":636
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_is_async_handler); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_stream_unary); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(9, 636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":637
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):
 *         request_iterator = _MessageReceiver(servicer_context)             # <<<<<<<<<<<<<<
 *     else:
 *         request_iterator = async_generator_to_generator(
*/
    __pyx_t_4 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
    __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver); 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 637, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = ((PyObject *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":636
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_unary):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":639
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 *         request_iterator = async_generator_to_generator(             # <<<<<<<<<<<<<<
 *             _MessageReceiver(servicer_context),
 *             loop
*/
  /*else*/ {
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":640
 *     else:
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),             # <<<<<<<<<<<<<<
 *             loop
 *         )
*/
    __pyx_t_7 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
    __pyx_t_8 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver); 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 640, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_3);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":641
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 * 
*/
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, ((PyObject *)__pyx_t_3), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF((PyObject *)__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":645
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_unary_response(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.stream_unary,
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":647
 *     await _finish_handler_with_unary_response(
 *         rpc_state,
 *         method_handler.stream_unary,             # <<<<<<<<<<<<<<
 *         request_iterator,
 *         servicer_context,
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_stream_unary); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":650
 *         request_iterator,
 *         servicer_context,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop
 *     )
*/
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_serializer); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":651
 *         servicer_context,
 *         method_handler.response_serializer,
 *         loop             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_2, __pyx_cur_scope->__pyx_v_request_iterator, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_t_8, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (7-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_9 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 645, __pyx_L1_error)
  } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 645, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_stream_unary_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_177generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_176_handle_stream_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_176_handle_stream_stream_rpc = {"_handle_stream_stream_rpc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_176_handle_stream_stream_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_176_handle_stream_stream_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_method_handler = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_method_handler,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 655, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 655, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 655, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 655, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_stream_stream_rpc", 0) < 0) __PYX_ERR(9, 655, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_stream_stream_rpc", 1, 3, 3, i); __PYX_ERR(9, 655, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 655, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 655, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 655, __pyx_L3_error)
    }
    __pyx_v_method_handler = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_stream_stream_rpc", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 655, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 656, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_175_handle_stream_stream_rpc(__pyx_self, __pyx_v_method_handler, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_175_handle_stream_stream_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_method_handler, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 655, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_v_method_handler;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_handler);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_handler);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_177generator33, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_stream_stream_rpc, __pyx_mstate_global->__pyx_n_u_handle_stream_stream_rpc, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 655, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_177generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  __Pyx_PySendResult __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_stream_stream_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 655, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":659
 *                                     object loop):
 *     # Creates a dedicated ServicerContext
 *     cdef _ServicerContext servicer_context = _ServicerContext(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.request_deserializer,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":661
 *     cdef _ServicerContext servicer_context = _ServicerContext(
 *         rpc_state,
 *         method_handler.request_deserializer,             # <<<<<<<<<<<<<<
 *         method_handler.response_serializer,
 *         loop,
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_deserializer); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":662
 *         rpc_state,
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,             # <<<<<<<<<<<<<<
 *         loop,
 *     )
*/
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_serializer); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":663
 *         method_handler.request_deserializer,
 *         method_handler.response_serializer,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_4, __pyx_t_5, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 659, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":668
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_is_async_handler); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_stream_stream); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(9, 668, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":669
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):
 *         request_iterator = _MessageReceiver(servicer_context)             # <<<<<<<<<<<<<<
 *     else:
 *         request_iterator = async_generator_to_generator(
*/
    __pyx_t_5 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
    __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver); 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 669, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = ((PyObject *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":668
 *     # Prepares the request generator
 *     cdef object request_iterator
 *     if _is_async_handler(method_handler.stream_stream):             # <<<<<<<<<<<<<<
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":671
 *         request_iterator = _MessageReceiver(servicer_context)
 *     else:
 *         request_iterator = async_generator_to_generator(             # <<<<<<<<<<<<<<
 *             _MessageReceiver(servicer_context),
 *             loop
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 671, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":672
 *     else:
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),             # <<<<<<<<<<<<<<
 *             loop
 *         )
*/
    __pyx_t_2 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver);
    __pyx_t_8 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver); 
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 672, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_3);
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":673
 *         request_iterator = async_generator_to_generator(
 *             _MessageReceiver(servicer_context),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 * 
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_t_3), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF((PyObject *)__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 671, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_v_request_iterator = __pyx_t_1;
    __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":677
 * 
 *     # Finishes the application handler
 *     await _finish_handler_with_stream_responses(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         method_handler.stream_stream,
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":679
 *     await _finish_handler_with_stream_responses(
 *         rpc_state,
 *         method_handler.stream_stream,             # <<<<<<<<<<<<<<
 *         request_iterator,
 *         servicer_context,
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_stream_stream); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":682
 *         request_iterator,
 *         servicer_context,
 *         loop,             # <<<<<<<<<<<<<<
 *     )
 * 
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_4, __pyx_cur_scope->__pyx_v_request_iterator, ((PyObject *)__pyx_cur_scope->__pyx_v_servicer_context), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (6-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_9 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_9 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 677, __pyx_L1_error)
  } else if (likely(__pyx_t_9 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 677, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_stream_stream_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_180generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_179_handle_exceptions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_179_handle_exceptions = {"_handle_exceptions", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_179_handle_exceptions, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_179_handle_exceptions(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_rpc_coro = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_exceptions (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_rpc_coro,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 686, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 686, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 686, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 686, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_exceptions", 0) < 0) __PYX_ERR(9, 686, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_exceptions", 1, 3, 3, i); __PYX_ERR(9, 686, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 686, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 686, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 686, __pyx_L3_error)
    }
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[0]);
    __pyx_v_rpc_coro = values[1];
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_exceptions", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 686, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 686, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_178_handle_exceptions(__pyx_self, __pyx_v_rpc_state, __pyx_v_rpc_coro, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_178_handle_exceptions(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_rpc_coro, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_exceptions", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 686, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_rpc_coro = __pyx_v_rpc_coro;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_180generator34, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_exceptions, __pyx_mstate_global->__pyx_n_u_handle_exceptions, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 686, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_180generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  size_t __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26 = NULL;
  PyObject *__pyx_t_27 = NULL;
  PyObject *__pyx_t_28[5];
  int __pyx_t_29;
  PyObject *__pyx_t_30[4];
  PyObject *__pyx_t_31 = NULL;
  char const *__pyx_t_32;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_exceptions", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L16_resume_from_await;
    case 2: goto __pyx_L57_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 686, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
*/
      {
        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_4);
        __Pyx_XGOTREF(__pyx_t_5);
        __Pyx_XGOTREF(__pyx_t_6);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":689
 *     try:
 *         try:
 *             await rpc_coro             # <<<<<<<<<<<<<<
 *         except AbortError as e:
 *             # Caught AbortError check if it is the same one
*/
          __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_rpc_coro, &__pyx_r);
          if (likely(__pyx_t_7 == PYGEN_NEXT)) {
            __Pyx_GOTREF(__pyx_r);
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_2);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
            __Pyx_XGIVEREF(__pyx_t_3);
            __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
            __Pyx_XGIVEREF(__pyx_t_4);
            __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
            __Pyx_XGIVEREF(__pyx_t_5);
            __pyx_cur_scope->__pyx_t_4 = __pyx_t_5;
            __Pyx_XGIVEREF(__pyx_t_6);
            __pyx_cur_scope->__pyx_t_5 = __pyx_t_6;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 1;
            return __pyx_r;
            __pyx_L16_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_2);
            __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
            __pyx_cur_scope->__pyx_t_2 = 0;
            __Pyx_XGOTREF(__pyx_t_3);
            __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
            __pyx_cur_scope->__pyx_t_3 = 0;
            __Pyx_XGOTREF(__pyx_t_4);
            __pyx_t_5 = __pyx_cur_scope->__pyx_t_4;
            __pyx_cur_scope->__pyx_t_4 = 0;
            __Pyx_XGOTREF(__pyx_t_5);
            __pyx_t_6 = __pyx_cur_scope->__pyx_t_5;
            __pyx_cur_scope->__pyx_t_5 = 0;
            __Pyx_XGOTREF(__pyx_t_6);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 689, __pyx_L10_error)
          } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
            __Pyx_GOTREF(__pyx_r);
            __Pyx_DECREF(__pyx_r); __pyx_r = 0;
          } else {
            __Pyx_XGOTREF(__pyx_r);
            __PYX_ERR(9, 689, __pyx_L10_error)
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":696
 *         else:
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
*/
        /*else:*/ {
          __pyx_t_8 = (__pyx_cur_scope->__pyx_v_rpc_state->abort_exception != Py_None);
          if (__pyx_t_8) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":697
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:
 *                 _LOGGER.error(             # <<<<<<<<<<<<<<
 *                     'Abort error unexpectedly suppressed: %s',
 *                     traceback.format_exception(rpc_state.abort_exception)
*/
            __pyx_t_10 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 697, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 697, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":699
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
 *                     traceback.format_exception(rpc_state.abort_exception)             # <<<<<<<<<<<<<<
 *                 )
 *     except (KeyboardInterrupt, SystemExit):
*/
            __pyx_t_13 = NULL;
            __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_traceback); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 699, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_format_exception); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 699, __pyx_L12_except_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_16 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_15))) {
              __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
              assert(__pyx_t_13);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
              __pyx_t_16 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_cur_scope->__pyx_v_rpc_state->abort_exception};
              __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 699, __pyx_L12_except_error)
              __Pyx_GOTREF(__pyx_t_11);
            }
            __pyx_t_16 = 1;
            #if CYTHON_UNPACK_METHODS
            if (unlikely(PyMethod_Check(__pyx_t_12))) {
              __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12);
              assert(__pyx_t_10);
              PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_10);
              __Pyx_INCREF(__pyx__function);
              __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
              __pyx_t_16 = 0;
            }
            #endif
            {
              PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_Abort_error_unexpectedly_suppres, __pyx_t_11};
              __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_16, (3-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 697, __pyx_L12_except_error)
              __Pyx_GOTREF(__pyx_t_9);
            }
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":696
 *         else:
 *             # Check if the abort exception got suppressed
 *             if rpc_state.abort_exception is not None:             # <<<<<<<<<<<<<<
 *                 _LOGGER.error(
 *                     'Abort error unexpectedly suppressed: %s',
*/
          }
        }
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L15_try_end;
        __pyx_L10_error:;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":690
 *         try:
 *             await rpc_coro
 *         except AbortError as e:             # <<<<<<<<<<<<<<
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
*/
        __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11);
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_AbortError); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 690, __pyx_L12_except_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_10);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_ErrRestore(__pyx_t_9, __pyx_t_12, __pyx_t_11);
        __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0;
        if (__pyx_t_17) {
          __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9) < 0) __PYX_ERR(9, 690, __pyx_L12_except_error)
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_12);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_GIVEREF(__pyx_t_12);
          __pyx_cur_scope->__pyx_v_e = __pyx_t_12;
          /*try:*/ {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":692
 *         except AbortError as e:
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'             # <<<<<<<<<<<<<<
 *             return
 *         else:
*/
            #ifndef CYTHON_WITHOUT_ASSERTIONS
            if (unlikely(__pyx_assertions_enabled())) {
              __pyx_t_8 = (__pyx_cur_scope->__pyx_v_rpc_state->abort_exception == __pyx_cur_scope->__pyx_v_e);
              if (unlikely(!__pyx_t_8)) {
                __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_mstate_global->__pyx_kp_u_Abort_error_has_been_replaced, 0, 0);
                __PYX_ERR(9, 692, __pyx_L23_error)
              }
            }
            #else
            if ((1)); else __PYX_ERR(9, 692, __pyx_L23_error)
            #endif

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":693
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             # Check if the abort exception got suppressed
*/
            __Pyx_XDECREF(__pyx_r);
            __pyx_r = Py_None; __Pyx_INCREF(Py_None);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            goto __pyx_L22_return;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":690
 *         try:
 *             await rpc_coro
 *         except AbortError as e:             # <<<<<<<<<<<<<<
 *             # Caught AbortError check if it is the same one
 *             assert rpc_state.abort_exception is e, 'Abort error has been replaced!'
*/
          /*finally:*/ {
            __pyx_L23_error:;
            /*exception exit:*/{
              __Pyx_PyThreadState_assign
              __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
               __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
              if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
              __Pyx_XGOTREF(__pyx_t_20);
              __Pyx_XGOTREF(__pyx_t_21);
              __Pyx_XGOTREF(__pyx_t_22);
              __Pyx_XGOTREF(__pyx_t_23);
              __Pyx_XGOTREF(__pyx_t_24);
              __Pyx_XGOTREF(__pyx_t_25);
              __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
              {
                __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
                __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
              }
              __Pyx_XGIVEREF(__pyx_t_23);
              __Pyx_XGIVEREF(__pyx_t_24);
              __Pyx_XGIVEREF(__pyx_t_25);
              __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_21);
              __Pyx_XGIVEREF(__pyx_t_22);
              __Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
              __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
              __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
              goto __pyx_L12_except_error;
            }
            __pyx_L22_return: {
              __pyx_t_25 = __pyx_r;
              __pyx_r = 0;
              __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
              __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
              __pyx_r = __pyx_t_25;
              __pyx_t_25 = 0;
              goto __pyx_L13_except_return;
            }
          }
        }
        goto __pyx_L12_except_error;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":688
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:
 *         try:             # <<<<<<<<<<<<<<
 *             await rpc_coro
 *         except AbortError as e:
*/
        __pyx_L12_except_error:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        goto __pyx_L4_error;
        __pyx_L13_except_return:;
        __Pyx_XGIVEREF(__pyx_t_4);
        __Pyx_XGIVEREF(__pyx_t_5);
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
        goto __pyx_L8_try_return;
        __pyx_L15_try_end:;
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":701
 *                     traceback.format_exception(rpc_state.abort_exception)
 *                 )
 *     except (KeyboardInterrupt, SystemExit):             # <<<<<<<<<<<<<<
 *         raise
 *     except asyncio.CancelledError:
*/
    __pyx_t_18 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_KeyboardInterrupt, __pyx_builtin_SystemExit);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11) < 0) __PYX_ERR(9, 701, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_11);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":702
 *                 )
 *     except (KeyboardInterrupt, SystemExit):
 *         raise             # <<<<<<<<<<<<<<
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
*/
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_12);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_ErrRestoreWithState(__pyx_t_9, __pyx_t_12, __pyx_t_11);
      __pyx_t_9 = 0;  __pyx_t_12 = 0;  __pyx_t_11 = 0; 
      __PYX_ERR(9, 702, __pyx_L6_except_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":703
 *     except (KeyboardInterrupt, SystemExit):
 *         raise
 *     except asyncio.CancelledError:             # <<<<<<<<<<<<<<
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:
*/
    __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 703, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_CancelledError); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 703, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_11, __pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_9);
    __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11) < 0) __PYX_ERR(9, 703, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_11);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":704
 *         raise
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
*/
      __pyx_t_10 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_26 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_13)); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 704, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_16 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
        __pyx_t_16 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_RPC_cancelled_for_servicer_metho, __pyx_t_26};
        __pyx_t_15 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+__pyx_t_16, (3-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 704, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_15);
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      goto __pyx_L5_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":705
 *     except asyncio.CancelledError:
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:             # <<<<<<<<<<<<<<
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
 *     except ExecuteBatchError:
*/
    __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_ServerStoppedError); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 705, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_11, __pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_9);
    __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11) < 0) __PYX_ERR(9, 705, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_11);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":706
 *         _LOGGER.debug('RPC cancelled for servicer method [%s]', _decode(rpc_state.method()))
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
*/
      __pyx_t_14 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_mstate_global->__pyx_n_u_warning); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __pyx_t_26 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_26)); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 706, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __pyx_t_16 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_10);
        assert(__pyx_t_14);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
        __pyx_t_16 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_14, __pyx_mstate_global->__pyx_kp_u_Aborting_method_s_due_to_server, __pyx_t_13};
        __pyx_t_15 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_16, (3-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 706, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_15);
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      goto __pyx_L5_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":707
 *     except _ServerStoppedError:
 *         _LOGGER.warning('Aborting method [%s] due to server stop.', _decode(rpc_state.method()))
 *     except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:
*/
    __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 707, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_11, __pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_9);
    __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_12, &__pyx_t_11) < 0) __PYX_ERR(9, 707, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_11);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":709
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:             # <<<<<<<<<<<<<<
 *             return
 *         else:
*/
      if (__pyx_cur_scope->__pyx_v_rpc_state->client_closed) {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":710
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = Py_None; __Pyx_INCREF(Py_None);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L7_except_return;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":709
 *     except ExecuteBatchError:
 *         # If client closed (aka. cancelled), ignore the failed batch operations.
 *         if rpc_state.client_closed:             # <<<<<<<<<<<<<<
 *             return
 *         else:
*/
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":712
 *             return
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *                 _decode(rpc_state.method())))
 *             return
*/
      /*else*/ {
        __pyx_t_10 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":713
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
 *                 _decode(rpc_state.method())))             # <<<<<<<<<<<<<<
 *             return
 *     except Exception as e:
*/
        __pyx_t_13 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 713, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_26 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_13)); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 713, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":712
 *             return
 *         else:
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *                 _decode(rpc_state.method())))
 *             return
*/
        __pyx_t_13 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_ExecuteBatchError_raised_in_core, __pyx_t_26); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 712, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_16 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
          __pyx_t_16 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_13};
          __pyx_t_15 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 712, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_15);
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":714
 *             _LOGGER.exception('ExecuteBatchError raised in core by servicer method [%s]' % (
 *                 _decode(rpc_state.method())))
 *             return             # <<<<<<<<<<<<<<
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
*/
        __Pyx_XDECREF(__pyx_r);
        __pyx_r = Py_None; __Pyx_INCREF(Py_None);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        goto __pyx_L7_except_return;
      }
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":715
 *                 _decode(rpc_state.method())))
 *             return
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
*/
    __pyx_t_18 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
    if (__pyx_t_18) {
      __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_9) < 0) __PYX_ERR(9, 715, __pyx_L6_except_error)
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_12);
      __Pyx_GIVEREF(__pyx_t_12);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":716
 *             return
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             type(e).__name__,
 *             _decode(rpc_state.method()),
*/
        __pyx_t_14 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":717
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
*/
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 717, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_26 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 717, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":718
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
 *             _decode(rpc_state.method()),             # <<<<<<<<<<<<<<
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
*/
        __pyx_t_13 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 718, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_27 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_13)); if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 718, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_t_27); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 718, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_28[0] = __pyx_mstate_global->__pyx_kp_u_Unexpected;
        __pyx_t_28[1] = __pyx_t_26;
        __pyx_t_28[2] = __pyx_mstate_global->__pyx_kp_u_raised_by_servicer_method;
        __pyx_t_28[3] = __pyx_t_13;
        __pyx_t_28[4] = __pyx_mstate_global->__pyx_kp_u__12;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":716
 *             return
 *     except Exception as e:
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             type(e).__name__,
 *             _decode(rpc_state.method()),
*/
        __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_28, 5, 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26) + 29 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_26) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
        if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 716, __pyx_L43_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_16 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_10);
          assert(__pyx_t_14);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
          __pyx_t_16 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_27};
          __pyx_t_15 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 716, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_15);
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":720
 *             _decode(rpc_state.method()),
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
*/
        __pyx_t_29 = (!__pyx_cur_scope->__pyx_v_rpc_state->status_sent);
        if (__pyx_t_29) {
        } else {
          __pyx_t_8 = __pyx_t_29;
          goto __pyx_L46_bool_binop_done;
        }
        __pyx_t_29 = (__pyx_cur_scope->__pyx_v_rpc_state->server->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
        __pyx_t_8 = __pyx_t_29;
        __pyx_L46_bool_binop_done:;
        if (__pyx_t_8) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":722
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *                 status_code = StatusCode.unknown
 *             else:
*/
          __pyx_t_15 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_ok); if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_GOTREF(__pyx_t_27);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = PyObject_RichCompare(__pyx_t_15, __pyx_t_27, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 722, __pyx_L43_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (__pyx_t_8) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":723
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
 *                 status_code = StatusCode.unknown             # <<<<<<<<<<<<<<
 *             else:
 *                 status_code = rpc_state.status_code
*/
            __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 723, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_unknown); if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 723, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_GIVEREF(__pyx_t_27);
            __pyx_cur_scope->__pyx_v_status_code = __pyx_t_27;
            __pyx_t_27 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":722
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:             # <<<<<<<<<<<<<<
 *                 status_code = StatusCode.unknown
 *             else:
*/
            goto __pyx_L48;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":725
 *                 status_code = StatusCode.unknown
 *             else:
 *                 status_code = rpc_state.status_code             # <<<<<<<<<<<<<<
 * 
 *             rpc_state.status_sent = True
*/
          /*else*/ {
            __pyx_t_27 = __Pyx_PyLong_From_grpc_status_code(__pyx_cur_scope->__pyx_v_rpc_state->status_code); if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 725, __pyx_L43_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_GIVEREF(__pyx_t_27);
            __pyx_cur_scope->__pyx_v_status_code = __pyx_t_27;
            __pyx_t_27 = 0;
          }
          __pyx_L48:;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":727
 *                 status_code = rpc_state.status_code
 * 
 *             rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *             try:
 *                 await _send_error_status_from_server(
*/
          __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
*/
          {
            __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4);
            __Pyx_XGOTREF(__pyx_t_6);
            __Pyx_XGOTREF(__pyx_t_5);
            __Pyx_XGOTREF(__pyx_t_4);
            /*try:*/ {

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":729
 *             rpc_state.status_sent = True
 *             try:
 *                 await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *                     rpc_state,
 *                     status_code,
*/
              __pyx_t_10 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 729, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_15);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":732
 *                     rpc_state,
 *                     status_code,
 *                     'Unexpected %s: %s' % (type(e), e),             # <<<<<<<<<<<<<<
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),
*/
              __pyx_t_14 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_v_e))), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 732, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_cur_scope->__pyx_v_e), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 732, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_30[0] = __pyx_mstate_global->__pyx_kp_u_Unexpected_2;
              __pyx_t_30[1] = __pyx_t_14;
              __pyx_t_30[2] = __pyx_mstate_global->__pyx_kp_u__3;
              __pyx_t_30[3] = __pyx_t_13;
              __pyx_t_26 = __Pyx_PyUnicode_Join(__pyx_t_30, 4, 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
              if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 732, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":734
 *                     'Unexpected %s: %s' % (type(e), e),
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *                     loop
 *                 )
*/
              __pyx_t_13 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 734, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_13);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":735
 *                     rpc_state.trailing_metadata,
 *                     rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *                     loop             # <<<<<<<<<<<<<<
 *                 )
 *             except ExecuteBatchError:
*/
              __pyx_t_16 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_15))) {
                __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_15);
                assert(__pyx_t_10);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
                __Pyx_INCREF(__pyx_t_10);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
                __pyx_t_16 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[7] = {__pyx_t_10, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_status_code, __pyx_t_26, __pyx_cur_scope->__pyx_v_rpc_state->trailing_metadata, __pyx_t_13, __pyx_cur_scope->__pyx_v_loop};
                __pyx_t_27 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+__pyx_t_16, (7-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                if (unlikely(!__pyx_t_27)) __PYX_ERR(9, 729, __pyx_L49_error)
                __Pyx_GOTREF(__pyx_t_27);
              }
              __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_27, &__pyx_r);
              __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
              if (likely(__pyx_t_7 == PYGEN_NEXT)) {
                __Pyx_GOTREF(__pyx_r);
                __Pyx_XGIVEREF(__pyx_t_1);
                __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
                __Pyx_XGIVEREF(__pyx_t_2);
                __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
                __Pyx_XGIVEREF(__pyx_t_3);
                __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
                __Pyx_XGIVEREF(__pyx_t_4);
                __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
                __Pyx_XGIVEREF(__pyx_t_5);
                __pyx_cur_scope->__pyx_t_4 = __pyx_t_5;
                __Pyx_XGIVEREF(__pyx_t_6);
                __pyx_cur_scope->__pyx_t_5 = __pyx_t_6;
                __Pyx_XGIVEREF(__pyx_t_9);
                __pyx_cur_scope->__pyx_t_6 = __pyx_t_9;
                __Pyx_XGIVEREF(__pyx_t_11);
                __pyx_cur_scope->__pyx_t_7 = __pyx_t_11;
                __Pyx_XGIVEREF(__pyx_t_12);
                __pyx_cur_scope->__pyx_t_8 = __pyx_t_12;
                __Pyx_XGIVEREF(__pyx_r);
                __Pyx_RefNannyFinishContext();
                __Pyx_Coroutine_SwapException(__pyx_generator);
                /* return from generator, awaiting value */
                __pyx_generator->resume_label = 2;
                return __pyx_r;
                __pyx_L57_resume_from_await:;
                __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
                __pyx_cur_scope->__pyx_t_0 = 0;
                __Pyx_XGOTREF(__pyx_t_1);
                __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
                __pyx_cur_scope->__pyx_t_1 = 0;
                __Pyx_XGOTREF(__pyx_t_2);
                __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
                __pyx_cur_scope->__pyx_t_2 = 0;
                __Pyx_XGOTREF(__pyx_t_3);
                __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
                __pyx_cur_scope->__pyx_t_3 = 0;
                __Pyx_XGOTREF(__pyx_t_4);
                __pyx_t_5 = __pyx_cur_scope->__pyx_t_4;
                __pyx_cur_scope->__pyx_t_4 = 0;
                __Pyx_XGOTREF(__pyx_t_5);
                __pyx_t_6 = __pyx_cur_scope->__pyx_t_5;
                __pyx_cur_scope->__pyx_t_5 = 0;
                __Pyx_XGOTREF(__pyx_t_6);
                __pyx_t_9 = __pyx_cur_scope->__pyx_t_6;
                __pyx_cur_scope->__pyx_t_6 = 0;
                __Pyx_XGOTREF(__pyx_t_9);
                __pyx_t_11 = __pyx_cur_scope->__pyx_t_7;
                __pyx_cur_scope->__pyx_t_7 = 0;
                __Pyx_XGOTREF(__pyx_t_11);
                __pyx_t_12 = __pyx_cur_scope->__pyx_t_8;
                __pyx_cur_scope->__pyx_t_8 = 0;
                __Pyx_XGOTREF(__pyx_t_12);
                if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 729, __pyx_L49_error)
              } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
                __Pyx_GOTREF(__pyx_r);
                __Pyx_DECREF(__pyx_r); __pyx_r = 0;
              } else {
                __Pyx_XGOTREF(__pyx_r);
                __PYX_ERR(9, 729, __pyx_L49_error)
              }

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
*/
            }
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            goto __pyx_L56_try_end;
            __pyx_L49_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":737
 *                     loop
 *                 )
 *             except ExecuteBatchError:             # <<<<<<<<<<<<<<
 *                 _LOGGER.exception('Failed sending error status from server')
 *                 traceback.print_exc()
*/
            __Pyx_ErrFetch(&__pyx_t_27, &__pyx_t_15, &__pyx_t_13);
            __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError); if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 737, __pyx_L51_except_error)
            __Pyx_GOTREF(__pyx_t_26);
            __pyx_t_18 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_27, __pyx_t_26);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_ErrRestore(__pyx_t_27, __pyx_t_15, __pyx_t_13);
            __pyx_t_27 = 0; __pyx_t_15 = 0; __pyx_t_13 = 0;
            if (__pyx_t_18) {
              __Pyx_AddTraceback("grpc._cython.cygrpc._handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_15, &__pyx_t_27) < 0) __PYX_ERR(9, 737, __pyx_L51_except_error)
              __Pyx_XGOTREF(__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_15);
              __Pyx_XGOTREF(__pyx_t_27);

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":738
 *                 )
 *             except ExecuteBatchError:
 *                 _LOGGER.exception('Failed sending error status from server')             # <<<<<<<<<<<<<<
 *                 traceback.print_exc()
 * 
*/
              __pyx_t_10 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 738, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_31)) __PYX_ERR(9, 738, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_31);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_16 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_31))) {
                __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_31);
                assert(__pyx_t_10);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_31);
                __Pyx_INCREF(__pyx_t_10);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_31, __pyx__function);
                __pyx_t_16 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_Failed_sending_error_status_from};
                __pyx_t_26 = __Pyx_PyObject_FastCall(__pyx_t_31, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
                if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 738, __pyx_L51_except_error)
                __Pyx_GOTREF(__pyx_t_26);
              }
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;

              /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":739
 *             except ExecuteBatchError:
 *                 _LOGGER.exception('Failed sending error status from server')
 *                 traceback.print_exc()             # <<<<<<<<<<<<<<
 * 
 * 
*/
              __pyx_t_31 = NULL;
              __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_traceback); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 739, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_10);
              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_print_exc); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 739, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __pyx_t_16 = 1;
              #if CYTHON_UNPACK_METHODS
              if (unlikely(PyMethod_Check(__pyx_t_14))) {
                __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_14);
                assert(__pyx_t_31);
                PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
                __Pyx_INCREF(__pyx_t_31);
                __Pyx_INCREF(__pyx__function);
                __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
                __pyx_t_16 = 0;
              }
              #endif
              {
                PyObject *__pyx_callargs[2] = {__pyx_t_31, NULL};
                __pyx_t_26 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+__pyx_t_16, (1-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
                __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                if (unlikely(!__pyx_t_26)) __PYX_ERR(9, 739, __pyx_L51_except_error)
                __Pyx_GOTREF(__pyx_t_26);
              }
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
              goto __pyx_L50_exception_handled;
            }
            goto __pyx_L51_except_error;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":728
 * 
 *             rpc_state.status_sent = True
 *             try:             # <<<<<<<<<<<<<<
 *                 await _send_error_status_from_server(
 *                     rpc_state,
*/
            __pyx_L51_except_error:;
            __Pyx_XGIVEREF(__pyx_t_6);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
            goto __pyx_L43_error;
            __pyx_L50_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_6);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
            __pyx_L56_try_end:;
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":720
 *             _decode(rpc_state.method()),
 *         ))
 *         if not rpc_state.status_sent and rpc_state.server._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             # Allows users to raise other types of exception with specified status code
 *             if rpc_state.status_code == StatusCode.ok:
*/
        }
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":715
 *                 _decode(rpc_state.method())))
 *             return
 *     except Exception as e:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Unexpected [%s] raised by servicer method [%s]' % (
 *             type(e).__name__,
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
          __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          goto __pyx_L44;
        }
        __pyx_L43_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_assign
          __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
           __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23);
          if ( unlikely(__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_6);
          __Pyx_XGOTREF(__pyx_t_25);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_23);
          __pyx_t_18 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_32 = __pyx_filename;
          {
            __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e);
            __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = 0;
          }
          __Pyx_XGIVEREF(__pyx_t_25);
          __Pyx_XGIVEREF(__pyx_t_24);
          __Pyx_XGIVEREF(__pyx_t_23);
          __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23);
          __Pyx_XGIVEREF(__pyx_t_4);
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_6);
          __Pyx_ErrRestore(__pyx_t_4, __pyx_t_5, __pyx_t_6);
          __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_32;
          goto __pyx_L6_except_error;
        }
        __pyx_L44:;
      }
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":687
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):
 *     try:             # <<<<<<<<<<<<<<
 *         try:
 *             await rpc_coro
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_XDECREF(__pyx_t_31);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_exceptions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks = {"handle_callbacks", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("handle_callbacks (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_unused_task,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 744, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 744, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "handle_callbacks", 0) < 0) __PYX_ERR(9, 744, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("handle_callbacks", 1, 1, 1, i); __PYX_ERR(9, 744, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 744, __pyx_L3_error)
    }
    __pyx_v_unused_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("handle_callbacks", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 744, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(__pyx_self, __pyx_v_unused_task);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_add_callback_handler_handle_callbacks(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_unused_task) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_cur_scope;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_outer_scope;
  PyObject *__pyx_v_callback = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("handle_callbacks", 0);
  __pyx_outer_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":746
 *     def handle_callbacks(object unused_task):
 *         try:
 *             for callback in rpc_state.callbacks:             # <<<<<<<<<<<<<<
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
*/
      if (unlikely(!__pyx_cur_scope->__pyx_v_rpc_state)) { __Pyx_RaiseClosureNameError("rpc_state"); __PYX_ERR(9, 746, __pyx_L3_error) }
      if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_rpc_state->callbacks)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_rpc_state->callbacks)) {
        __pyx_t_4 = __pyx_cur_scope->__pyx_v_rpc_state->callbacks; __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_rpc_state->callbacks); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 746, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 746, __pyx_L3_error)
      }
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            __pyx_t_7 = __Pyx_PyList_GetItemRef(__pyx_t_4, __pyx_t_5);
            ++__pyx_t_5;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(9, 746, __pyx_L3_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5));
            #else
            __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5);
            #endif
            ++__pyx_t_5;
          }
          if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 746, __pyx_L3_error)
        } else {
          __pyx_t_7 = __pyx_t_6(__pyx_t_4);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(9, 746, __pyx_L3_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_XDECREF_SET(__pyx_v_callback, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":748
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()             # <<<<<<<<<<<<<<
 *         except:
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
*/
        __pyx_t_8 = NULL;
        __Pyx_INCREF(__pyx_v_callback);
        __pyx_t_9 = __pyx_v_callback; 
        __pyx_t_10 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
          assert(__pyx_t_8);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
          __pyx_t_10 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 748, __pyx_L3_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":746
 *     def handle_callbacks(object unused_task):
 *         try:
 *             for callback in rpc_state.callbacks:             # <<<<<<<<<<<<<<
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
*/
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":749
 *                 # The _ServicerContext object is bound in add_done_callback.
 *                 callback()
 *         except:             # <<<<<<<<<<<<<<
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
 * 
*/
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(9, 749, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":750
 *                 callback()
 *         except:
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 * 
 *     rpc_task.add_done_callback(handle_callbacks)
*/
      __pyx_t_11 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_cur_scope->__pyx_v_rpc_state)) { __Pyx_RaiseClosureNameError("rpc_state"); __PYX_ERR(9, 750, __pyx_L5_except_error) }
      __pyx_t_12 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_14 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_12)); if (unlikely(!__pyx_t_14)) __PYX_ERR(9, 750, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_10 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_13);
        assert(__pyx_t_11);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
        __pyx_t_10 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_mstate_global->__pyx_kp_u_Error_in_callback_for_method_s, __pyx_t_14};
        __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 750, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":745
 * 
 *     def handle_callbacks(object unused_task):
 *         try:             # <<<<<<<<<<<<<<
 *             for callback in rpc_state.callbacks:
 *                 # The _ServicerContext object is bound in add_done_callback.
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler.handle_callbacks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_callback);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *__pyx_cur_scope;
  PyObject *__pyx_v_handle_callbacks = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_add_callback_handler", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 742, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":744
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):
 * 
 *     def handle_callbacks(object unused_task):             # <<<<<<<<<<<<<<
 *         try:
 *             for callback in rpc_state.callbacks:
*/
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_add_callback_handler_1handle_callbacks, 0, __pyx_mstate_global->__pyx_n_u_add_callback_handler_locals_han, ((PyObject*)__pyx_cur_scope), __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_handle_callbacks = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":752
 *             _LOGGER.exception('Error in callback for method [%s]', _decode(rpc_state.method()))
 * 
 *     rpc_task.add_done_callback(handle_callbacks)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_rpc_task;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_handle_callbacks};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 752, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":742
 * 
 * 
 * cdef _add_callback_handler(object rpc_task, RPCState rpc_state):             # <<<<<<<<<<<<<<
 * 
 *     def handle_callbacks(object unused_task):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc._add_callback_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_handle_callbacks);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_183generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_182_handle_cancellation_from_core(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_182_handle_cancellation_from_core = {"_handle_cancellation_from_core", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_182_handle_cancellation_from_core, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_182_handle_cancellation_from_core(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_task = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_task,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 755, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 755, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_cancellation_from_core", 0) < 0) __PYX_ERR(9, 755, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_cancellation_from_core", 1, 3, 3, i); __PYX_ERR(9, 755, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 755, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 755, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 755, __pyx_L3_error)
    }
    __pyx_v_rpc_task = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_cancellation_from_core", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 755, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 756, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_181_handle_cancellation_from_core(__pyx_self, __pyx_v_rpc_task, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_181_handle_cancellation_from_core(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_task, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 755, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_task = __pyx_v_rpc_task;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_task);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_task);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_183generator35, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_cancellation_from_core, __pyx_mstate_global->__pyx_n_u_handle_cancellation_from_core, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_183generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_cancellation_from_core", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 755, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":758
 *                                          RPCState rpc_state,
 *                                          object loop):
 *     cdef ReceiveCloseOnServerOperation op = ReceiveCloseOnServerOperation(_EMPTY_FLAG)             # <<<<<<<<<<<<<<
 *     cdef tuple ops = (op,)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation); 
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 758, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_op = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":759
 *                                          object loop):
 *     cdef ReceiveCloseOnServerOperation op = ReceiveCloseOnServerOperation(_EMPTY_FLAG)
 *     cdef tuple ops = (op,)             # <<<<<<<<<<<<<<
 * 
 *     # Awaits cancellation from peer.
*/
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_op);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_cur_scope->__pyx_v_op)) != (0)) __PYX_ERR(9, 759, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ops = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":762
 * 
 *     # Awaits cancellation from peer.
 *     await execute_batch(rpc_state, ops, loop)             # <<<<<<<<<<<<<<
 *     rpc_state.client_closed = True
 *     # If 1) received cancel signal; 2) the Task is not finished; 3) the server
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_execute_batch); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_ops, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 762, __pyx_L1_error)
  } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 762, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":763
 *     # Awaits cancellation from peer.
 *     await execute_batch(rpc_state, ops, loop)
 *     rpc_state.client_closed = True             # <<<<<<<<<<<<<<
 *     # If 1) received cancel signal; 2) the Task is not finished; 3) the server
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
*/
  __pyx_cur_scope->__pyx_v_rpc_state->client_closed = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":767
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
 *     # log that an RPC is both aborted and cancelled.
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:             # <<<<<<<<<<<<<<
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()
*/
  __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_op);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_cancelled, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {
  } else {
    __pyx_t_7 = __pyx_t_8;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_rpc_task;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_done, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(9, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = (!__pyx_t_8);
  if (__pyx_t_9) {
  } else {
    __pyx_t_7 = __pyx_t_9;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_9 = (!__pyx_cur_scope->__pyx_v_rpc_state->status_sent);
  __pyx_t_7 = __pyx_t_9;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":769
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_4 = __pyx_cur_scope->__pyx_v_rpc_task;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_cancel, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 769, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":767
 *     # wasn't replying final status. For condition 3, it might cause inaccurate
 *     # log that an RPC is both aborted and cancelled.
 *     if op.cancelled() and not rpc_task.done() and not rpc_state.status_sent:             # <<<<<<<<<<<<<<
 *         # Injects `CancelledError` to halt the RPC coroutine
 *         rpc_task.cancel()
*/
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_cancellation_from_core", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_186generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_185_schedule_rpc_coro(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_185_schedule_rpc_coro = {"_schedule_rpc_coro", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_185_schedule_rpc_coro, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_185_schedule_rpc_coro(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_coro = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_schedule_rpc_coro (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_coro,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 772, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 772, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 772, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 772, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_schedule_rpc_coro", 0) < 0) __PYX_ERR(9, 772, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_schedule_rpc_coro", 1, 3, 3, i); __PYX_ERR(9, 772, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 772, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 772, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 772, __pyx_L3_error)
    }
    __pyx_v_rpc_coro = values[0];
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[1]);
    __pyx_v_loop = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_schedule_rpc_coro", 1, 3, 3, __pyx_nargs); __PYX_ERR(9, 772, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 773, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_184_schedule_rpc_coro(__pyx_self, __pyx_v_rpc_coro, __pyx_v_rpc_state, __pyx_v_loop);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_184_schedule_rpc_coro(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_rpc_coro, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_schedule_rpc_coro", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 772, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_rpc_coro = __pyx_v_rpc_coro;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rpc_coro);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_186generator36, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_schedule_rpc_coro, __pyx_mstate_global->__pyx_n_u_schedule_rpc_coro, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 772, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_186generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_schedule_rpc_coro", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L11_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 772, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":776
 *                              object loop):
 *     # Schedules the RPC coroutine.
 *     cdef object rpc_task = loop.create_task(_handle_exceptions(             # <<<<<<<<<<<<<<
 *         rpc_state,
 *         rpc_coro,
*/
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_loop;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_handle_exceptions); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":779
 *         rpc_state,
 *         rpc_coro,
 *         loop,             # <<<<<<<<<<<<<<
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_rpc_coro, __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":780
 *         rpc_coro,
 *         loop,
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))             # <<<<<<<<<<<<<<
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
*/
  __pyx_t_5 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_HandleExceptions_s, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_name, __pyx_t_5, __pyx_t_4, __pyx_callargs+2, 0) < 0) __PYX_ERR(9, 776, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_rpc_task = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":781
 *         loop,
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)             # <<<<<<<<<<<<<<
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":782
 *     ), name="HandleExceptions[%s]" % _decode(rpc_state.method()))
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)             # <<<<<<<<<<<<<<
 *     try:
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_handle_cancellation_from_core); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_rpc_task, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 782, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 782, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 782, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":787
 *         # there will be logs of the form "Task exception was never retrieved".
 *         # Catching it here we can provide traceback and debugging logs.
 *         await rpc_task             # <<<<<<<<<<<<<<
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
*/
      __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_rpc_task, &__pyx_r);
      if (likely(__pyx_t_7 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_8);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
        __Pyx_XGIVEREF(__pyx_t_9);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
        __Pyx_XGIVEREF(__pyx_t_10);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 2;
        return __pyx_r;
        __pyx_L11_resume_from_await:;
        __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_8);
        __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_10);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 787, __pyx_L5_error)
      } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(9, 787, __pyx_L5_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
*/
    }
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    goto __pyx_L10_try_end;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":788
 *         # Catching it here we can provide traceback and debugging logs.
 *         await rpc_task
 *     except:             # <<<<<<<<<<<<<<
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
 *             _decode(rpc_state.method()),
*/
    /*except:*/ {
      __Pyx_AddTraceback("grpc._cython.cygrpc._schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(9, 788, __pyx_L7_except_error)
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":789
 *         await rpc_task
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
*/
      __pyx_t_2 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":790
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (
 *             _decode(rpc_state.method()),             # <<<<<<<<<<<<<<
 *         ))
 *         traceback.print_exc()
*/
      __pyx_t_11 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_13 = __pyx_f_4grpc_7_cython_6cygrpc__decode(((PyObject*)__pyx_t_11)); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 790, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Exception_not_handled_by__handle;
      __pyx_t_14[1] = __pyx_t_11;
      __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__12;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":789
 *         await rpc_task
 *     except:
 *         _LOGGER.exception('Exception not handled by _handle_exceptions in servicer method [%s]' % (             # <<<<<<<<<<<<<<
 *             _decode(rpc_state.method()),
 *         ))
*/
      __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_14, 3, 64 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11));
      if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 789, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_6 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12);
        assert(__pyx_t_2);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
        __pyx_t_6 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_13};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 789, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":792
 *             _decode(rpc_state.method()),
 *         ))
 *         traceback.print_exc()             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_12 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_traceback); if (unlikely(!__pyx_t_13)) __PYX_ERR(9, 792, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 792, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_6 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2);
        assert(__pyx_t_12);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
        __pyx_t_6 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 792, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L6_exception_handled;
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":783
 *     _add_callback_handler(rpc_task, rpc_state)
 *     await _handle_cancellation_from_core(rpc_task, rpc_state, loop)
 *     try:             # <<<<<<<<<<<<<<
 *         # Propagate any errors not handled by _handle_exceptions. If not awaited
 *         # there will be logs of the form "Task exception was never retrieved".
*/
    __pyx_L7_except_error:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    goto __pyx_L1_error;
    __pyx_L6_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
    __pyx_L10_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_schedule_rpc_coro", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_189generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_188_handle_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_188_handle_rpc = {"_handle_rpc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_188_handle_rpc, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_188_handle_rpc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state = 0;
  PyObject *__pyx_v_loop = 0;
  int __pyx_v_concurrency_exceeded;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_rpc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_generic_handlers,&__pyx_mstate_global->__pyx_n_u_interceptors,&__pyx_mstate_global->__pyx_n_u_rpc_state,&__pyx_mstate_global->__pyx_n_u_loop,&__pyx_mstate_global->__pyx_n_u_concurrency_exceeded,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 795, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 795, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_handle_rpc", 0) < 0) __PYX_ERR(9, 795, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, i); __PYX_ERR(9, 795, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 795, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 795, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 795, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 795, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 795, __pyx_L3_error)
    }
    __pyx_v_generic_handlers = ((PyObject*)values[0]);
    __pyx_v_interceptors = ((PyObject*)values[1]);
    __pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)values[2]);
    __pyx_v_loop = values[3];
    __pyx_v_concurrency_exceeded = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_concurrency_exceeded == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 796, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_handle_rpc", 1, 5, 5, __pyx_nargs); __PYX_ERR(9, 795, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_generic_handlers), (&PyList_Type), 1, "generic_handlers", 1))) __PYX_ERR(9, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interceptors), (&PyTuple_Type), 1, "interceptors", 1))) __PYX_ERR(9, 795, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rpc_state), __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, 1, "rpc_state", 0))) __PYX_ERR(9, 796, __pyx_L1_error)
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_187_handle_rpc(__pyx_self, __pyx_v_generic_handlers, __pyx_v_interceptors, __pyx_v_rpc_state, __pyx_v_loop, __pyx_v_concurrency_exceeded);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_187_handle_rpc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *__pyx_v_rpc_state, PyObject *__pyx_v_loop, int __pyx_v_concurrency_exceeded) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_handle_rpc", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 795, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_generic_handlers = __pyx_v_generic_handlers;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_generic_handlers);
  __pyx_cur_scope->__pyx_v_interceptors = __pyx_v_interceptors;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_interceptors);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interceptors);
  __pyx_cur_scope->__pyx_v_rpc_state = __pyx_v_rpc_state;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_cur_scope->__pyx_v_loop = __pyx_v_loop;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_loop);
  __pyx_cur_scope->__pyx_v_concurrency_exceeded = __pyx_v_concurrency_exceeded;
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_189generator37, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_handle_rpc, __pyx_mstate_global->__pyx_n_u_handle_rpc, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 795, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_189generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_handle_rpc", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_await;
    case 2: goto __pyx_L6_resume_from_await;
    case 3: goto __pyx_L8_resume_from_await;
    case 4: goto __pyx_L12_resume_from_await;
    case 5: goto __pyx_L16_resume_from_await;
    case 6: goto __pyx_L20_resume_from_await;
    case 7: goto __pyx_L24_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 795, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":799
 *     cdef object method_handler
 *     # Finds the method handler (application logic)
 *     method_handler = await _find_method_handler(             # <<<<<<<<<<<<<<
 *         rpc_state.method().decode(),
 *         rpc_state.invocation_metadata(),
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_find_method_handler); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":800
 *     # Finds the method handler (application logic)
 *     method_handler = await _find_method_handler(
 *         rpc_state.method().decode(),             # <<<<<<<<<<<<<<
 *         rpc_state.invocation_metadata(),
 *         generic_handlers,
*/
  __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->method(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (unlikely(__pyx_t_4 == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
    __PYX_ERR(9, 800, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":801
 *     method_handler = await _find_method_handler(
 *         rpc_state.method().decode(),
 *         rpc_state.invocation_metadata(),             # <<<<<<<<<<<<<<
 *         generic_handlers,
 *         interceptors,
*/
  __pyx_t_4 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->invocation_metadata(__pyx_cur_scope->__pyx_v_rpc_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":803
 *         rpc_state.invocation_metadata(),
 *         generic_handlers,
 *         interceptors,             # <<<<<<<<<<<<<<
 *     )
 *     if method_handler is None:
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_5, __pyx_t_4, __pyx_cur_scope->__pyx_v_generic_handlers, __pyx_cur_scope->__pyx_v_interceptors};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 799, __pyx_L1_error)
    __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __pyx_t_1 = __pyx_r; __pyx_r = NULL;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 799, __pyx_L1_error)
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_method_handler = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":805
 *         interceptors,
 *     )
 *     if method_handler is None:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
*/
  __pyx_t_8 = (__pyx_cur_scope->__pyx_v_method_handler == Py_None);
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":806
 *     )
 *     if method_handler is None:
 *         rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *         await _send_error_status_from_server(
 *             rpc_state,
*/
    __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":807
 *     if method_handler is None:
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *             rpc_state,
 *             StatusCode.unimplemented,
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":809
 *         await _send_error_status_from_server(
 *             rpc_state,
 *             StatusCode.unimplemented,             # <<<<<<<<<<<<<<
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,
*/
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_unimplemented); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":811
 *             StatusCode.unimplemented,
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,             # <<<<<<<<<<<<<<
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop
*/
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 811, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":812
 *             'Method not found!',
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *             loop
 *         )
*/
    __pyx_t_9 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 812, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":813
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         return
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Method_not_found, __pyx_t_5, __pyx_t_9, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (7-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 807, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L6_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 807, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 807, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":815
 *             loop
 *         )
 *         return             # <<<<<<<<<<<<<<
 * 
 *     if concurrency_exceeded:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":805
 *         interceptors,
 *     )
 *     if method_handler is None:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":817
 *         return
 * 
 *     if concurrency_exceeded:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
*/
  if (__pyx_cur_scope->__pyx_v_concurrency_exceeded) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":818
 * 
 *     if concurrency_exceeded:
 *         rpc_state.status_sent = True             # <<<<<<<<<<<<<<
 *         await _send_error_status_from_server(
 *             rpc_state,
*/
    __pyx_cur_scope->__pyx_v_rpc_state->status_sent = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":819
 *     if concurrency_exceeded:
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(             # <<<<<<<<<<<<<<
 *             rpc_state,
 *             StatusCode.resource_exhausted,
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":821
 *         await _send_error_status_from_server(
 *             rpc_state,
 *             StatusCode.resource_exhausted,             # <<<<<<<<<<<<<<
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,
*/
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_StatusCode); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_resource_exhausted); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":823
 *             StatusCode.resource_exhausted,
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,             # <<<<<<<<<<<<<<
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop
*/
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":824
 *             'Concurrent RPC limit exceeded!',
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),             # <<<<<<<<<<<<<<
 *             loop
 *         )
*/
    __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState *)__pyx_cur_scope->__pyx_v_rpc_state->__pyx_vtab)->create_send_initial_metadata_op_if_not_sent(__pyx_cur_scope->__pyx_v_rpc_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":825
 *             _IMMUTABLE_EMPTY_METADATA,
 *             rpc_state.create_send_initial_metadata_op_if_not_sent(),
 *             loop             # <<<<<<<<<<<<<<
 *         )
 *         return
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[7] = {__pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Concurrent_RPC_limit_exceeded, __pyx_t_5, __pyx_t_3, __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_6, (7-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 819, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 3;
      return __pyx_r;
      __pyx_L8_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 819, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 819, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":827
 *             loop
 *         )
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles unary-unary case
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":817
 *         return
 * 
 *     if concurrency_exceeded:             # <<<<<<<<<<<<<<
 *         rpc_state.status_sent = True
 *         await _send_error_status_from_server(
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":830
 * 
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_11 = (!__pyx_t_10);
  if (__pyx_t_11) {
  } else {
    __pyx_t_8 = __pyx_t_11;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(9, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_10 = (!__pyx_t_11);
  __pyx_t_8 = __pyx_t_10;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":831
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:
 *         await _handle_unary_unary_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                       rpc_state,
 *                                       loop)
*/
    __pyx_t_9 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_handle_unary_unary_rpc); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 831, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":833
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
 *                                       loop)             # <<<<<<<<<<<<<<
 *         return
 * 
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_9);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 4;
      return __pyx_r;
      __pyx_L12_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 831, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 831, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":834
 *                                       rpc_state,
 *                                       loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles unary-stream case
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":830
 * 
 *     # Handles unary-unary case
 *     if not method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_unary_rpc(method_handler,
 *                                       rpc_state,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":837
 * 
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_11 = (!__pyx_t_10);
  if (__pyx_t_11) {
  } else {
    __pyx_t_8 = __pyx_t_11;
    goto __pyx_L14_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(9, 837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __pyx_t_11;
  __pyx_L14_bool_binop_done:;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":838
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:
 *         await _handle_unary_stream_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                        rpc_state,
 *                                        loop)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_handle_unary_stream_rpc); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":840
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
 *                                        loop)             # <<<<<<<<<<<<<<
 *         return
 * 
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 838, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 5;
      return __pyx_r;
      __pyx_L16_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 838, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 838, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":841
 *                                        rpc_state,
 *                                        loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles stream-unary case
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":837
 * 
 *     # Handles unary-stream case
 *     if not method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_unary_stream_rpc(method_handler,
 *                                        rpc_state,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":844
 * 
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_11) {
  } else {
    __pyx_t_8 = __pyx_t_11;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(9, 844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_10 = (!__pyx_t_11);
  __pyx_t_8 = __pyx_t_10;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":845
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:
 *         await _handle_stream_unary_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                        rpc_state,
 *                                        loop)
*/
    __pyx_t_9 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_handle_stream_unary_rpc); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":847
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
 *                                        loop)             # <<<<<<<<<<<<<<
 *         return
 * 
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_9);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 6;
      return __pyx_r;
      __pyx_L20_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 845, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 845, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":848
 *                                        rpc_state,
 *                                        loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 *     # Handles stream-stream case
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":844
 * 
 *     # Handles stream-unary case
 *     if method_handler.request_streaming and not method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_unary_rpc(method_handler,
 *                                        rpc_state,
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":851
 * 
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_request_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_10) {
  } else {
    __pyx_t_8 = __pyx_t_10;
    goto __pyx_L22_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_method_handler, __pyx_mstate_global->__pyx_n_u_response_streaming); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(9, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __pyx_t_10;
  __pyx_L22_bool_binop_done:;
  if (__pyx_t_8) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":852
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:
 *         await _handle_stream_stream_rpc(method_handler,             # <<<<<<<<<<<<<<
 *                                         rpc_state,
 *                                         loop)
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_handle_stream_stream_rpc); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 852, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":854
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
 *                                         loop)             # <<<<<<<<<<<<<<
 *         return
 * 
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_method_handler, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_loop};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_7 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 7;
      return __pyx_r;
      __pyx_L24_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 852, __pyx_L1_error)
    } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 852, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":855
 *                                         rpc_state,
 *                                         loop)
 *         return             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":851
 * 
 *     # Handles stream-stream case
 *     if method_handler.request_streaming and method_handler.response_streaming:             # <<<<<<<<<<<<<<
 *         await _handle_stream_stream_rpc(method_handler,
 *                                         rpc_state,
*/
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_handle_rpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":872
 * cdef class _ConcurrentRpcLimiter:
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_maximum_concurrent_rpcs;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_maximum_concurrent_rpcs,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 872, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 872, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__cinit__", 0) < 0) __PYX_ERR(9, 872, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, i); __PYX_ERR(9, 872, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 872, __pyx_L3_error)
    }
    __pyx_v_maximum_concurrent_rpcs = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_maximum_concurrent_rpcs == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 872, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 872, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_maximum_concurrent_rpcs);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter___cinit__(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, int __pyx_v_maximum_concurrent_rpcs) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":873
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
*/
  __pyx_t_1 = (__pyx_v_maximum_concurrent_rpcs <= 0);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":874
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")             # <<<<<<<<<<<<<<
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_4 = __pyx_builtin_ValueError; 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_maximum_concurrent_rpcs_should_b};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 874, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 874, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":873
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):
 *         if maximum_concurrent_rpcs <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":875
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs             # <<<<<<<<<<<<<<
 *         self._active_rpcs = 0
 *         self.limiter_concurrency_exceeded = False
*/
  __pyx_v_self->_maximum_concurrent_rpcs = __pyx_v_maximum_concurrent_rpcs;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":876
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0             # <<<<<<<<<<<<<<
 *         self.limiter_concurrency_exceeded = False
 * 
*/
  __pyx_v_self->_active_rpcs = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":877
 *         self._maximum_concurrent_rpcs = maximum_concurrent_rpcs
 *         self._active_rpcs = 0
 *         self.limiter_concurrency_exceeded = False             # <<<<<<<<<<<<<<
 * 
 *     def check_before_request_call(self):
*/
  __pyx_v_self->limiter_concurrency_exceeded = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":872
 * cdef class _ConcurrentRpcLimiter:
 * 
 *     def __cinit__(self, int maximum_concurrent_rpcs):             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs <= 0:
 *             raise ValueError("maximum_concurrent_rpcs should be a positive integer")
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call = {"check_before_request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("check_before_request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("check_before_request_call", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("check_before_request_call", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_2check_before_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("check_before_request_call", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":880
 * 
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = True
 *         else:
*/
  __pyx_t_1 = (__pyx_v_self->_active_rpcs >= __pyx_v_self->_maximum_concurrent_rpcs);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":881
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True             # <<<<<<<<<<<<<<
 *         else:
 *             self._active_rpcs += 1
*/
    __pyx_v_self->limiter_concurrency_exceeded = 1;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":880
 * 
 *     def check_before_request_call(self):
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = True
 *         else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":883
 *             self.limiter_concurrency_exceeded = True
 *         else:
 *             self._active_rpcs += 1             # <<<<<<<<<<<<<<
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):
*/
  /*else*/ {
    __pyx_v_self->_active_rpcs = (__pyx_v_self->_active_rpcs + 1);
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count = {"_decrease_active_rpcs_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v_unused_future = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_decrease_active_rpcs_count (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_unused_future,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 885, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 885, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_decrease_active_rpcs_count", 0) < 0) __PYX_ERR(9, 885, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_decrease_active_rpcs_count", 1, 1, 1, i); __PYX_ERR(9, 885, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 885, __pyx_L3_error)
    }
    __pyx_v_unused_future = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_decrease_active_rpcs_count", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 885, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter._decrease_active_rpcs_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_unused_future);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_4_decrease_active_rpcs_count(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_unused_future) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("_decrease_active_rpcs_count", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":886
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1             # <<<<<<<<<<<<<<
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = False
*/
  __pyx_v_self->_active_rpcs = (__pyx_v_self->_active_rpcs - 1);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":887
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = False
 * 
*/
  __pyx_t_1 = (__pyx_v_self->_active_rpcs < __pyx_v_self->_maximum_concurrent_rpcs);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":888
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = False             # <<<<<<<<<<<<<<
 * 
 *     def decrease_once_finished(self, object rpc_task):
*/
    __pyx_v_self->limiter_concurrency_exceeded = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":887
 *     def _decrease_active_rpcs_count(self, unused_future):
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:             # <<<<<<<<<<<<<<
 *             self.limiter_concurrency_exceeded = False
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished = {"decrease_once_finished", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_rpc_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("decrease_once_finished (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_rpc_task,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 890, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 890, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "decrease_once_finished", 0) < 0) __PYX_ERR(9, 890, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("decrease_once_finished", 1, 1, 1, i); __PYX_ERR(9, 890, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 890, __pyx_L3_error)
    }
    __pyx_v_rpc_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("decrease_once_finished", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 890, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.decrease_once_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v_rpc_task);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_6decrease_once_finished(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, PyObject *__pyx_v_rpc_task) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("decrease_once_finished", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":891
 * 
 *     def decrease_once_finished(self, object rpc_task):
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_rpc_task;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_decrease_active_rpcs_count); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 891, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.decrease_once_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(__pyx_builtin_TypeError, __pyx_mstate_global->__pyx_kp_u_no_default___reduce___due_to_non, 0, 0);
  __PYX_ERR(10, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc._ConcurrentRpcLimiter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":896
 * cdef class AioServer:
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,             # <<<<<<<<<<<<<<
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()
*/

/* Python wrapper */
static int __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_loop = 0;
  PyObject *__pyx_v_thread_pool = 0;
  PyObject *__pyx_v_generic_handlers = 0;
  PyObject *__pyx_v_interceptors = 0;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_maximum_concurrent_rpcs = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_loop,&__pyx_mstate_global->__pyx_n_u_thread_pool,&__pyx_mstate_global->__pyx_n_u_generic_handlers,&__pyx_mstate_global->__pyx_n_u_interceptors,&__pyx_mstate_global->__pyx_n_u_options,&__pyx_mstate_global->__pyx_n_u_maximum_concurrent_rpcs,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 896, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_VARARGS(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 896, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < 0) __PYX_ERR(9, 896, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, i); __PYX_ERR(9, 896, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 6)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_VARARGS(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 896, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_VARARGS(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 896, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_VARARGS(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(9, 896, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_VARARGS(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(9, 896, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_VARARGS(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(9, 896, __pyx_L3_error)
      values[5] = __Pyx_ArgRef_VARARGS(__pyx_args, 5);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(9, 896, __pyx_L3_error)
    }
    __pyx_v_loop = values[0];
    __pyx_v_thread_pool = values[1];
    __pyx_v_generic_handlers = values[2];
    __pyx_v_interceptors = values[3];
    __pyx_v_options = values[4];
    __pyx_v_maximum_concurrent_rpcs = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, __pyx_nargs); __PYX_ERR(9, 896, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_loop, __pyx_v_thread_pool, __pyx_v_generic_handlers, __pyx_v_interceptors, __pyx_v_options, __pyx_v_maximum_concurrent_rpcs);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer___init__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_thread_pool, PyObject *__pyx_v_generic_handlers, PyObject *__pyx_v_interceptors, PyObject *__pyx_v_options, PyObject *__pyx_v_maximum_concurrent_rpcs) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_completion_queue *__pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":898
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()             # <<<<<<<<<<<<<<
 *         # NOTE(lidiz) Core objects won't be deallocated automatically.
 *         # If AioServer.shutdown is not called, those objects will leak.
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":902
 *         # If AioServer.shutdown is not called, those objects will leak.
 *         # TODO(rbellevi): Support xDS in aio server.
 *         self._server = Server(options, False)             # <<<<<<<<<<<<<<
 *         grpc_server_register_completion_queue(
 *             self._server.c_server,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_options, Py_False};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 902, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_server);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_server);
  __pyx_v_self->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":905
 *         grpc_server_register_completion_queue(
 *             self._server.c_server,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             NULL
 *         )
*/
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_5 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(9, 905, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":903
 *         # TODO(rbellevi): Support xDS in aio server.
 *         self._server = Server(options, False)
 *         grpc_server_register_completion_queue(             # <<<<<<<<<<<<<<
 *             self._server.c_server,
 *             global_completion_queue(),
*/
  grpc_server_register_completion_queue(__pyx_v_self->_server->c_server, __pyx_t_5, NULL);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":909
 *         )
 * 
 *         self._loop = loop             # <<<<<<<<<<<<<<
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []
*/
  __Pyx_INCREF(__pyx_v_loop);
  __Pyx_GIVEREF(__pyx_v_loop);
  __Pyx_GOTREF(__pyx_v_self->_loop);
  __Pyx_DECREF(__pyx_v_self->_loop);
  __pyx_v_self->_loop = __pyx_v_loop;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":910
 * 
 *         self._loop = loop
 *         self._status = AIO_SERVER_STATUS_READY             # <<<<<<<<<<<<<<
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)
*/
  __pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":911
 *         self._loop = loop
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []             # <<<<<<<<<<<<<<
 *         self.add_generic_rpc_handlers(generic_handlers)
 *         self._serving_task = None
*/
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_generic_handlers);
  __Pyx_DECREF(__pyx_v_self->_generic_handlers);
  __pyx_v_self->_generic_handlers = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":912
 *         self._status = AIO_SERVER_STATUS_READY
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)             # <<<<<<<<<<<<<<
 *         self._serving_task = None
 * 
*/
  __pyx_t_3 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_generic_handlers};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_generic_rpc_handlers, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":913
 *         self._generic_handlers = []
 *         self.add_generic_rpc_handlers(generic_handlers)
 *         self._serving_task = None             # <<<<<<<<<<<<<<
 * 
 *         self._shutdown_lock = asyncio.Lock()
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_serving_task);
  __Pyx_DECREF(__pyx_v_self->_serving_task);
  __pyx_v_self->_serving_task = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":915
 *         self._serving_task = None
 * 
 *         self._shutdown_lock = asyncio.Lock()             # <<<<<<<<<<<<<<
 *         self._shutdown_completed = self._loop.create_future()
 *         self._shutdown_callback_wrapper = CallbackWrapper(
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Lock); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 915, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_shutdown_lock);
  __Pyx_DECREF(__pyx_v_self->_shutdown_lock);
  __pyx_v_self->_shutdown_lock = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":916
 * 
 *         self._shutdown_lock = asyncio.Lock()
 *         self._shutdown_completed = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._shutdown_callback_wrapper = CallbackWrapper(
 *             self._shutdown_completed,
*/
  __pyx_t_6 = __pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->_shutdown_completed);
  __Pyx_DECREF(__pyx_v_self->_shutdown_completed);
  __pyx_v_self->_shutdown_completed = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":917
 *         self._shutdown_lock = asyncio.Lock()
 *         self._shutdown_completed = self._loop.create_future()
 *         self._shutdown_callback_wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             self._shutdown_completed,
 *             self._loop,
*/
  __pyx_t_6 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":920
 *             self._shutdown_completed,
 *             self._loop,
 *             SERVER_SHUTDOWN_FAILURE_HANDLER)             # <<<<<<<<<<<<<<
 *         self._crash_exception = None
 * 
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_v_self->_shutdown_completed, __pyx_v_self->_loop, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 917, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":917
 *         self._shutdown_lock = asyncio.Lock()
 *         self._shutdown_completed = self._loop.create_future()
 *         self._shutdown_callback_wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             self._shutdown_completed,
 *             self._loop,
*/
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __Pyx_DECREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __pyx_v_self->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":921
 *             self._loop,
 *             SERVER_SHUTDOWN_FAILURE_HANDLER)
 *         self._crash_exception = None             # <<<<<<<<<<<<<<
 * 
 *         if interceptors:
*/
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_crash_exception);
  __Pyx_DECREF(__pyx_v_self->_crash_exception);
  __pyx_v_self->_crash_exception = Py_None;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":923
 *         self._crash_exception = None
 * 
 *         if interceptors:             # <<<<<<<<<<<<<<
 *             self._interceptors = tuple(interceptors)
 *         else:
*/
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_interceptors); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(9, 923, __pyx_L1_error)
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":924
 * 
 *         if interceptors:
 *             self._interceptors = tuple(interceptors)             # <<<<<<<<<<<<<<
 *         else:
 *             self._interceptors = ()
*/
    __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_interceptors); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_self->_interceptors);
    __Pyx_DECREF(__pyx_v_self->_interceptors);
    __pyx_v_self->_interceptors = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":923
 *         self._crash_exception = None
 * 
 *         if interceptors:             # <<<<<<<<<<<<<<
 *             self._interceptors = tuple(interceptors)
 *         else:
*/
    goto __pyx_L3;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":926
 *             self._interceptors = tuple(interceptors)
 *         else:
 *             self._interceptors = ()             # <<<<<<<<<<<<<<
 * 
 *         self._thread_pool = thread_pool
*/
  /*else*/ {
    __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_empty_tuple);
    __Pyx_GOTREF(__pyx_v_self->_interceptors);
    __Pyx_DECREF(__pyx_v_self->_interceptors);
    __pyx_v_self->_interceptors = __pyx_mstate_global->__pyx_empty_tuple;
  }
  __pyx_L3:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":928
 *             self._interceptors = ()
 * 
 *         self._thread_pool = thread_pool             # <<<<<<<<<<<<<<
 *         if maximum_concurrent_rpcs is not None:
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
*/
  __Pyx_INCREF(__pyx_v_thread_pool);
  __Pyx_GIVEREF(__pyx_v_thread_pool);
  __Pyx_GOTREF(__pyx_v_self->_thread_pool);
  __Pyx_DECREF(__pyx_v_self->_thread_pool);
  __pyx_v_self->_thread_pool = __pyx_v_thread_pool;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":929
 * 
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:             # <<<<<<<<<<<<<<
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
*/
  __pyx_t_7 = (__pyx_v_maximum_concurrent_rpcs != Py_None);
  if (__pyx_t_7) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":930
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)             # <<<<<<<<<<<<<<
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):
*/
    __pyx_t_3 = NULL;
    __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter);
    __pyx_t_6 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter); 
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_maximum_concurrent_rpcs};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 930, __pyx_L1_error)
      __Pyx_GOTREF((PyObject *)__pyx_t_1);
    }
    __Pyx_GIVEREF((PyObject *)__pyx_t_1);
    __Pyx_GOTREF((PyObject *)__pyx_v_self->_limiter);
    __Pyx_DECREF((PyObject *)__pyx_v_self->_limiter);
    __pyx_v_self->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":929
 * 
 *         self._thread_pool = thread_pool
 *         if maximum_concurrent_rpcs is not None:             # <<<<<<<<<<<<<<
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":896
 * cdef class AioServer:
 * 
 *     def __init__(self, loop, thread_pool, generic_handlers, interceptors,             # <<<<<<<<<<<<<<
 *                  options, maximum_concurrent_rpcs):
 *         init_grpc_aio()
*/

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers = {"add_generic_rpc_handlers", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_generic_rpc_handlers = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_generic_rpc_handlers (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_generic_rpc_handlers,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 932, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 932, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_generic_rpc_handlers", 0) < 0) __PYX_ERR(9, 932, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_generic_rpc_handlers", 1, 1, 1, i); __PYX_ERR(9, 932, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 932, __pyx_L3_error)
    }
    __pyx_v_generic_rpc_handlers = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_generic_rpc_handlers", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 932, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_generic_rpc_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_generic_rpc_handlers);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_2add_generic_rpc_handlers(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_generic_rpc_handlers) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_generic_rpc_handlers", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":933
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):
 *         self._generic_handlers.extend(generic_rpc_handlers)             # <<<<<<<<<<<<<<
 * 
 *     def add_insecure_port(self, address):
*/
  if (unlikely(__pyx_v_self->_generic_handlers == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
    __PYX_ERR(9, 933, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyList_Extend(__pyx_v_self->_generic_handlers, __pyx_v_generic_rpc_handlers); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 933, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_generic_rpc_handlers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port = {"add_insecure_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_insecure_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_address,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 935, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 935, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_insecure_port", 0) < 0) __PYX_ERR(9, 935, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_insecure_port", 1, 1, 1, i); __PYX_ERR(9, 935, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 935, __pyx_L3_error)
    }
    __pyx_v_address = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_insecure_port", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 935, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_insecure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_address);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_4add_insecure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_insecure_port", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":936
 * 
 *     def add_insecure_port(self, address):
 *         return self._server.add_http2_port(address)             # <<<<<<<<<<<<<<
 * 
 *     def add_secure_port(self, address, server_credentials):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_server);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_address};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_http2_port, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 936, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_insecure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port = {"add_secure_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_address = 0;
  PyObject *__pyx_v_server_credentials = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_secure_port (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_address,&__pyx_mstate_global->__pyx_n_u_server_credentials,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 938, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 938, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 938, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "add_secure_port", 0) < 0) __PYX_ERR(9, 938, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("add_secure_port", 1, 2, 2, i); __PYX_ERR(9, 938, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 938, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(9, 938, __pyx_L3_error)
    }
    __pyx_v_address = values[0];
    __pyx_v_server_credentials = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_secure_port", 1, 2, 2, __pyx_nargs); __PYX_ERR(9, 938, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_secure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_address, __pyx_v_server_credentials);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_6add_secure_port(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_address, PyObject *__pyx_v_server_credentials) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("add_secure_port", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":939
 * 
 *     def add_secure_port(self, address, server_credentials):
 *         return self._server.add_http2_port(address,             # <<<<<<<<<<<<<<
 *                                            server_credentials._credentials)
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->_server);
  __Pyx_INCREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":940
 *     def add_secure_port(self, address, server_credentials):
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)             # <<<<<<<<<<<<<<
 * 
 *     async def _request_call(self):
*/
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_server_credentials, __pyx_mstate_global->__pyx_n_u_credentials_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_address, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_http2_port, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.add_secure_port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_9_request_call = {"_request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_request_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_request_call", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_request_call", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_8_request_call(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_request_call", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 942, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_request_call, __pyx_mstate_global->__pyx_n_u_AioServer__request_call, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 942, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_10generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  grpc_completion_queue *__pyx_t_5;
  grpc_completion_queue *__pyx_t_6;
  grpc_completion_queue_functor *__pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_PySendResult __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_request_call", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 942, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":944
 *     async def _request_call(self):
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)             # <<<<<<<<<<<<<<
 *         cdef object future = self._loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState); 
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_self)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 944, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":945
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
 *         cdef object future = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         cdef CallbackWrapper wrapper = CallbackWrapper(
 *             future,
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_future = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":946
 *         cdef RPCState rpc_state = RPCState(self)
 *         cdef object future = self._loop.create_future()
 *         cdef CallbackWrapper wrapper = CallbackWrapper(             # <<<<<<<<<<<<<<
 *             future,
 *             self._loop,
*/
  __pyx_t_3 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":949
 *             future,
 *             self._loop,
 *             REQUEST_CALL_FAILURE_HANDLER)             # <<<<<<<<<<<<<<
 *         error = grpc_server_request_call(
 *             self._server.c_server, &rpc_state.call, &rpc_state.details,
*/
  __pyx_t_4 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_future, __pyx_cur_scope->__pyx_v_self->_loop, ((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER)};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 946, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_1);
  }
  __Pyx_GIVEREF((PyObject *)__pyx_t_1);
  __pyx_cur_scope->__pyx_v_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":953
 *             self._server.c_server, &rpc_state.call, &rpc_state.details,
 *             &rpc_state.request_metadata,
 *             global_completion_queue(), global_completion_queue(),             # <<<<<<<<<<<<<<
 *             wrapper.c_functor()
 *         )
*/
  __pyx_t_5 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_5 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(9, 953, __pyx_L1_error)
  __pyx_t_6 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_6 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(9, 953, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":954
 *             &rpc_state.request_metadata,
 *             global_completion_queue(), global_completion_queue(),
 *             wrapper.c_functor()             # <<<<<<<<<<<<<<
 *         )
 *         if error != GRPC_CALL_OK:
*/
  __pyx_t_7 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 954, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":950
 *             self._loop,
 *             REQUEST_CALL_FAILURE_HANDLER)
 *         error = grpc_server_request_call(             # <<<<<<<<<<<<<<
 *             self._server.c_server, &rpc_state.call, &rpc_state.details,
 *             &rpc_state.request_metadata,
*/
  __pyx_cur_scope->__pyx_v_error = grpc_server_request_call(__pyx_cur_scope->__pyx_v_self->_server->c_server, (&__pyx_cur_scope->__pyx_v_rpc_state->__pyx_base.call), (&__pyx_cur_scope->__pyx_v_rpc_state->details), (&__pyx_cur_scope->__pyx_v_rpc_state->request_metadata), __pyx_t_5, __pyx_t_6, __pyx_t_7);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":956
 *             wrapper.c_functor()
 *         )
 *         if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
*/
  __pyx_t_8 = (__pyx_cur_scope->__pyx_v_error != GRPC_CALL_OK);
  if (unlikely(__pyx_t_8)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":957
 *         )
 *         if error != GRPC_CALL_OK:
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)             # <<<<<<<<<<<<<<
 * 
 *         await future
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = __Pyx_PyLong_From_grpc_call_error(__pyx_cur_scope->__pyx_v_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Error_in_grpc_server_request_cal, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_4 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_4 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 957, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(9, 957, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":956
 *             wrapper.c_functor()
 *         )
 *         if error != GRPC_CALL_OK:             # <<<<<<<<<<<<<<
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":959
 *             raise InternalError("Error in grpc_server_request_call: %s" % error)
 * 
 *         await future             # <<<<<<<<<<<<<<
 *         return rpc_state
 * 
*/
  __pyx_t_11 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future, &__pyx_r);
  if (likely(__pyx_t_11 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 959, __pyx_L1_error)
  } else if (likely(__pyx_t_11 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 959, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":960
 * 
 *         await future
 *         return rpc_state             # <<<<<<<<<<<<<<
 * 
 *     async def _server_main_loop(self,
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_request_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop = {"_server_main_loop", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_server_started = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_server_main_loop (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_server_started,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 962, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 962, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_server_main_loop", 0) < 0) __PYX_ERR(9, 962, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_server_main_loop", 1, 1, 1, i); __PYX_ERR(9, 962, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 962, __pyx_L3_error)
    }
    __pyx_v_server_started = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_server_main_loop", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 962, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_server_started);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_11_server_main_loop(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_server_started) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_server_main_loop", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 962, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_server_started = __pyx_v_server_started;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_server_started);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_server_started);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_server_main_loop, __pyx_mstate_global->__pyx_n_u_AioServer__server_main_loop, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 962, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_13generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_server_main_loop", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L8_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 962, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":964
 *     async def _server_main_loop(self,
 *                                 object server_started):
 *         self._server.start(backup_queue=False)             # <<<<<<<<<<<<<<
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)
*/
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_server);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backup_queue, Py_False, __pyx_t_4, __pyx_callargs+1, 0) < 0) __PYX_ERR(9, 964, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_start, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":966
 *         self._server.start(backup_queue=False)
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)             # <<<<<<<<<<<<<<
 *         rpc_tasks = set()
 * 
*/
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_server_started;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_True};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_set_result, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":967
 *         cdef RPCState rpc_state
 *         server_started.set_result(True)
 *         rpc_tasks = set()             # <<<<<<<<<<<<<<
 * 
 *         while True:
*/
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_rpc_tasks = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":969
 *         rpc_tasks = set()
 * 
 *         while True:             # <<<<<<<<<<<<<<
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:
*/
  while (1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":971
 *         while True:
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    __pyx_t_5 = (__pyx_cur_scope->__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":972
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             concurrency_exceeded = False
*/
      goto __pyx_L5_break;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":971
 *         while True:
 *             # When shutdown begins, no more new connections.
 *             if self._status != AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 break
 * 
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":974
 *                 break
 * 
 *             concurrency_exceeded = False             # <<<<<<<<<<<<<<
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()
*/
    __pyx_cur_scope->__pyx_v_concurrency_exceeded = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":975
 * 
 *             concurrency_exceeded = False
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
*/
    __pyx_t_5 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter) != Py_None);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":976
 *             concurrency_exceeded = False
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()             # <<<<<<<<<<<<<<
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
 * 
*/
      __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_check_before_request_call, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 976, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":977
 *             if self._limiter is not None:
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded             # <<<<<<<<<<<<<<
 * 
 *             # Accepts new request from Core
*/
      __pyx_t_5 = __pyx_cur_scope->__pyx_v_self->_limiter->limiter_concurrency_exceeded;
      __pyx_cur_scope->__pyx_v_concurrency_exceeded = __pyx_t_5;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":975
 * 
 *             concurrency_exceeded = False
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.check_before_request_call()
 *                 concurrency_exceeded = self._limiter.limiter_concurrency_exceeded
*/
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":980
 * 
 *             # Accepts new request from Core
 *             rpc_state = await self._request_call()             # <<<<<<<<<<<<<<
 * 
 *             # Creates the dedicated RPC coroutine. If we schedule it right now,
*/
    __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_request_call, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 980, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1, &__pyx_r);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L8_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 980, __pyx_L1_error)
      __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_1 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 980, __pyx_L1_error)
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState))))) __PYX_ERR(9, 980, __pyx_L1_error)
    __Pyx_XGOTREF((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)__pyx_t_1));
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":987
 *             # the coroutine onto event loop inside of the cancellation
 *             # coroutine.
 *             rpc_coro = _handle_rpc(self._generic_handlers,             # <<<<<<<<<<<<<<
 *                                    self._interceptors,
 *                                    rpc_state,
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_handle_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":991
 *                                    rpc_state,
 *                                    self._loop,
 *                                    concurrency_exceeded)             # <<<<<<<<<<<<<<
 * 
 *             # Fires off a task that listens on the cancellation from client.
*/
    __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_cur_scope->__pyx_v_concurrency_exceeded); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[6] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_self->_generic_handlers, __pyx_cur_scope->__pyx_v_self->_interceptors, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_3, (6-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 987, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_rpc_coro);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_coro, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":994
 * 
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(             # <<<<<<<<<<<<<<
 *                 _schedule_rpc_coro(
 *                     rpc_coro,
*/
    __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->_loop;
    __Pyx_INCREF(__pyx_t_2);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":995
 *             # Fires off a task that listens on the cancellation from client.
 *             rpc_task = self._loop.create_task(
 *                 _schedule_rpc_coro(             # <<<<<<<<<<<<<<
 *                     rpc_coro,
 *                     rpc_state,
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_schedule_rpc_coro); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":998
 *                     rpc_coro,
 *                     rpc_state,
 *                     self._loop             # <<<<<<<<<<<<<<
 *                 ),
 *                 name="rpc_task",
*/
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_rpc_coro, ((PyObject *)__pyx_cur_scope->__pyx_v_rpc_state), __pyx_cur_scope->__pyx_v_self->_loop};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 995, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_7};
      __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_name, __pyx_mstate_global->__pyx_n_u_rpc_task, __pyx_t_8, __pyx_callargs+2, 0) < 0) __PYX_ERR(9, 994, __pyx_L1_error)
      __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_rpc_task);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_rpc_task, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1005
 *             # loop.create_task only holds a weakref to the task.
 *             # Maintain reference to tasks to avoid garbage collection.
 *             rpc_tasks.add(rpc_task)             # <<<<<<<<<<<<<<
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
*/
    __pyx_t_9 = PySet_Add(__pyx_cur_scope->__pyx_v_rpc_tasks, __pyx_cur_scope->__pyx_v_rpc_task); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(9, 1005, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1006
 *             # Maintain reference to tasks to avoid garbage collection.
 *             rpc_tasks.add(rpc_task)
 *             rpc_task.add_done_callback(rpc_tasks.discard)             # <<<<<<<<<<<<<<
 * 
 *             if self._limiter is not None:
*/
    __pyx_t_8 = __pyx_cur_scope->__pyx_v_rpc_task;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_rpc_tasks, __pyx_mstate_global->__pyx_n_u_discard); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1008
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
*/
    __pyx_t_5 = (((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter) != Py_None);
    if (__pyx_t_5) {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1009
 * 
 *             if self._limiter is not None:
 *                 self._limiter.decrease_once_finished(rpc_task)             # <<<<<<<<<<<<<<
 * 
 *     def _serving_task_crash_handler(self, object task):
*/
      __pyx_t_7 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->_limiter);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_3 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_cur_scope->__pyx_v_rpc_task};
        __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decrease_once_finished, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1008
 *             rpc_task.add_done_callback(rpc_tasks.discard)
 * 
 *             if self._limiter is not None:             # <<<<<<<<<<<<<<
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
*/
    }
  }
  __pyx_L5_break:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_server_main_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler, "Shutdown the server immediately if unexpectedly exited.");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler = {"_serving_task_crash_handler", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_task = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_serving_task_crash_handler (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_task,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 1011, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1011, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_serving_task_crash_handler", 0) < 0) __PYX_ERR(9, 1011, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_serving_task_crash_handler", 1, 1, 1, i); __PYX_ERR(9, 1011, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1011, __pyx_L3_error)
    }
    __pyx_v_task = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_serving_task_crash_handler", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1011, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._serving_task_crash_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_task);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_task) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_serving_task_crash_handler", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1013
 *     def _serving_task_crash_handler(self, object task):
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():             # <<<<<<<<<<<<<<
 *             return
 *         if task.exception() is None:
*/
  __pyx_t_2 = __pyx_v_task;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_cancelled, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1013, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(9, 1013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1014
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
 *             return             # <<<<<<<<<<<<<<
 *         if task.exception() is None:
 *             return
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1013
 *     def _serving_task_crash_handler(self, object task):
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():             # <<<<<<<<<<<<<<
 *             return
 *         if task.exception() is None:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1015
 *         if task.cancelled():
 *             return
 *         if task.exception() is None:             # <<<<<<<<<<<<<<
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
*/
  __pyx_t_2 = __pyx_v_task;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_exception, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_4 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1016
 *             return
 *         if task.exception() is None:
 *             return             # <<<<<<<<<<<<<<
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1015
 *         if task.cancelled():
 *             return
 *         if task.exception() is None:             # <<<<<<<<<<<<<<
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1017
 *         if task.exception() is None:
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
*/
  __pyx_t_4 = (__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING);
  if (__pyx_t_4) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1018
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()             # <<<<<<<<<<<<<<
 *             _LOGGER.exception(self._crash_exception)
 *             self._loop.create_task(self.shutdown(None))
*/
    __pyx_t_2 = __pyx_v_task;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_exception, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_self->_crash_exception);
    __Pyx_DECREF(__pyx_v_self->_crash_exception);
    __pyx_v_self->_crash_exception = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1019
 *         if self._status != AIO_SERVER_STATUS_STOPPING:
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)             # <<<<<<<<<<<<<<
 *             self._loop.create_task(self.shutdown(None))
 * 
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 1019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_exception); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_3 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_self->_crash_exception};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1019, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1020
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
 *             self._loop.create_task(self.shutdown(None))             # <<<<<<<<<<<<<<
 * 
 *     async def start(self):
*/
    __pyx_t_6 = __pyx_v_self->_loop;
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = ((PyObject *)__pyx_v_self);
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, Py_None};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_shutdown, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1020, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_3 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1020, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1017
 *         if task.exception() is None:
 *             return
 *         if self._status != AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *             self._crash_exception = task.exception()
 *             _LOGGER.exception(self._crash_exception)
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._serving_task_crash_handler", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_17start = {"start", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("start", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("start", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_16start(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("start", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1022, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_start, __pyx_mstate_global->__pyx_n_u_AioServer_start, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1022, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_18generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_PySendResult __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("start", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 1022, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1023
 * 
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1024
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return             # <<<<<<<<<<<<<<
 *         elif self._status != AIO_SERVER_STATUS_READY:
 *             raise UsageError('Server not in ready state')
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1023
 * 
 *     async def start(self):
 *         if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1025
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:             # <<<<<<<<<<<<<<
 *             raise UsageError('Server not in ready state')
 * 
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1026
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:
 *             raise UsageError('Server not in ready state')             # <<<<<<<<<<<<<<
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_UsageError); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Server_not_in_ready_state};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(9, 1026, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1025
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
 *         elif self._status != AIO_SERVER_STATUS_READY:             # <<<<<<<<<<<<<<
 *             raise UsageError('Server not in ready state')
 * 
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1028
 *             raise UsageError('Server not in ready state')
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING             # <<<<<<<<<<<<<<
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
*/
  __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1029
 * 
 *         self._status = AIO_SERVER_STATUS_RUNNING
 *         cdef object server_started = self._loop.create_future()             # <<<<<<<<<<<<<<
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)
*/
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_future, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_cur_scope->__pyx_v_server_started = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1030
 *         self._status = AIO_SERVER_STATUS_RUNNING
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))             # <<<<<<<<<<<<<<
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)
 *         # Needs to explicitly wait for the server to start up.
*/
  __pyx_t_4 = __pyx_cur_scope->__pyx_v_self->_loop;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_6 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_server_started};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_server_main_loop, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_create_task, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->_serving_task);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->_serving_task);
  __pyx_cur_scope->__pyx_v_self->_serving_task = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1031
 *         cdef object server_started = self._loop.create_future()
 *         self._serving_task = self._loop.create_task(self._server_main_loop(server_started))
 *         self._serving_task.add_done_callback(self._serving_task_crash_handler)             # <<<<<<<<<<<<<<
 *         # Needs to explicitly wait for the server to start up.
 *         # Otherwise, the actual start time of the server is un-controllable.
*/
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->_serving_task;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_mstate_global->__pyx_n_u_serving_task_crash_handler); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1034
 *         # Needs to explicitly wait for the server to start up.
 *         # Otherwise, the actual start time of the server is un-controllable.
 *         await server_started             # <<<<<<<<<<<<<<
 * 
 *     async def _start_shutting_down(self):
*/
  __pyx_t_7 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_server_started, &__pyx_r);
  if (likely(__pyx_t_7 == PYGEN_NEXT)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, awaiting value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L5_resume_from_await:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1034, __pyx_L1_error)
  } else if (likely(__pyx_t_7 == PYGEN_RETURN)) {
    __Pyx_GOTREF(__pyx_r);
    __Pyx_DECREF(__pyx_r); __pyx_r = 0;
  } else {
    __Pyx_XGOTREF(__pyx_r);
    __PYX_ERR(9, 1034, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("start", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down, "Prepares the server to shutting down.\n\n        This coroutine function is NOT coroutine-safe.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down = {"_start_shutting_down", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_shutting_down (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_start_shutting_down", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_start_shutting_down", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_start_shutting_down", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1036, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_start_shutting_down, __pyx_mstate_global->__pyx_n_u_AioServer__start_shutting_down, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1036, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer._start_shutting_down", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_21generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  grpc_completion_queue *__pyx_t_1;
  grpc_completion_queue_functor *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_PySendResult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_start_shutting_down", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L10_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 1036, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1044
 *         grpc_server_shutdown_and_notify(
 *             self._server.c_server,
 *             global_completion_queue(),             # <<<<<<<<<<<<<<
 *             self._shutdown_callback_wrapper.c_functor())
 * 
*/
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue(); if (unlikely(__pyx_t_1 == ((grpc_completion_queue *)0) && PyErr_Occurred())) __PYX_ERR(9, 1044, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1045
 *             self._server.c_server,
 *             global_completion_queue(),
 *             self._shutdown_callback_wrapper.c_functor())             # <<<<<<<<<<<<<<
 * 
 *         # Ensures the serving task (coroutine) exits.
*/
  __pyx_t_2 = ((struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_cur_scope->__pyx_v_self->_shutdown_callback_wrapper->__pyx_vtab)->c_functor(__pyx_cur_scope->__pyx_v_self->_shutdown_callback_wrapper); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 1045, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1042
 *         """
 *         # The shutdown callback won't be called until there is no live RPC.
 *         grpc_server_shutdown_and_notify(             # <<<<<<<<<<<<<<
 *             self._server.c_server,
 *             global_completion_queue(),
*/
  grpc_server_shutdown_and_notify(__pyx_cur_scope->__pyx_v_self->_server->c_server, __pyx_t_1, __pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
*/
  {
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1049
 *         # Ensures the serving task (coroutine) exits.
 *         try:
 *             await self._serving_task             # <<<<<<<<<<<<<<
 *         except _RequestCallError:
 *             pass
*/
      __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_serving_task, &__pyx_r);
      if (likely(__pyx_t_6 == PYGEN_NEXT)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_XGIVEREF(__pyx_t_3);
        __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
        __Pyx_XGIVEREF(__pyx_t_4);
        __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
        __Pyx_XGIVEREF(__pyx_t_5);
        __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
        __Pyx_XGIVEREF(__pyx_r);
        __Pyx_RefNannyFinishContext();
        __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
        /* return from generator, awaiting value */
        __pyx_generator->resume_label = 1;
        return __pyx_r;
        __pyx_L10_resume_from_await:;
        __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
        __pyx_cur_scope->__pyx_t_0 = 0;
        __Pyx_XGOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
        __pyx_cur_scope->__pyx_t_1 = 0;
        __Pyx_XGOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
        __pyx_cur_scope->__pyx_t_2 = 0;
        __Pyx_XGOTREF(__pyx_t_5);
        if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1049, __pyx_L4_error)
      } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
        __Pyx_GOTREF(__pyx_r);
        __Pyx_DECREF(__pyx_r); __pyx_r = 0;
      } else {
        __Pyx_XGOTREF(__pyx_r);
        __PYX_ERR(9, 1049, __pyx_L4_error)
      }

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
*/
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1050
 *         try:
 *             await self._serving_task
 *         except _RequestCallError:             # <<<<<<<<<<<<<<
 *             pass
 * 
*/
    __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_RequestCallError); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 1050, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_7, __pyx_t_10);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0;
    if (__pyx_t_11) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L5_exception_handled;
    }
    goto __pyx_L6_except_error;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1048
 * 
 *         # Ensures the serving task (coroutine) exits.
 *         try:             # <<<<<<<<<<<<<<
 *             await self._serving_task
 *         except _RequestCallError:
*/
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L9_try_end:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("_start_shutting_down", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown, "Gracefully shutdown the Core server.\n\n        Application should only call shutdown once.\n\n        Args:\n          grace: An optional float indicating the length of grace period in\n            seconds.\n        ");
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_23shutdown = {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_grace = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_grace,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 1053, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1053, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "shutdown", 0) < 0) __PYX_ERR(9, 1053, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("shutdown", 1, 1, 1, i); __PYX_ERR(9, 1053, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1053, __pyx_L3_error)
    }
    __pyx_v_grace = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("shutdown", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1053, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_grace);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_22shutdown(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_grace) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("shutdown", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1053, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_grace = __pyx_v_grace;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_grace);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_grace);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_shutdown, __pyx_mstate_global->__pyx_n_u_AioServer_shutdown, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1053, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_24generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  __Pyx_PySendResult __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("shutdown", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L16_resume_from_await;
    case 3: goto __pyx_L20_resume_from_await;
    case 4: goto __pyx_L21_resume_from_await;
    case 5: goto __pyx_L24_resume_from_await;
    case 6: goto __pyx_L31_resume_from_await;
    case 7: goto __pyx_L34_resume_from_await;
    case 8: goto __pyx_L36_resume_from_await;
    case 9: goto __pyx_L47_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 1053, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1062
 *             seconds.
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             return
 * 
*/
  switch (__pyx_cur_scope->__pyx_v_self->_status) {
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_READY:
    case __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED:

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1063
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         async with self._shutdown_lock:
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1062
 *             seconds.
 *         """
 *         if self._status == AIO_SERVER_STATUS_READY or self._status == AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             return
 * 
*/
    break;
    default: break;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1065
 *             return
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
*/
  /*with:*/ {
    __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_mstate_global->__pyx_n_u_aexit); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_mstate_global->__pyx_n_u_aenter); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1065, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1065, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L4_error)
      __pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_2 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 1065, __pyx_L4_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    /*try:*/ {
      {
        __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1066
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
*/
          __pyx_t_10 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING);
          if (__pyx_t_10) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1067
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True             # <<<<<<<<<<<<<<
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 *                 await self._start_shutting_down()
*/
            __pyx_cur_scope->__pyx_v_self->_server->is_shutting_down = 1;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1068
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING             # <<<<<<<<<<<<<<
 *                 await self._start_shutting_down()
 * 
*/
            __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1069
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
 *                 await self._start_shutting_down()             # <<<<<<<<<<<<<<
 * 
 *         if grace is None:
*/
            __pyx_t_4 = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
            __Pyx_INCREF(__pyx_t_4);
            __pyx_t_5 = 0;
            {
              PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
              __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_start_shutting_down, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1069, __pyx_L9_error)
              __Pyx_GOTREF(__pyx_t_2);
            }
            __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2, &__pyx_r);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (likely(__pyx_t_6 == PYGEN_NEXT)) {
              __Pyx_GOTREF(__pyx_r);
              __Pyx_XGIVEREF(__pyx_t_1);
              __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
              __Pyx_XGIVEREF(__pyx_t_7);
              __pyx_cur_scope->__pyx_t_1 = __pyx_t_7;
              __Pyx_XGIVEREF(__pyx_t_8);
              __pyx_cur_scope->__pyx_t_2 = __pyx_t_8;
              __Pyx_XGIVEREF(__pyx_t_9);
              __pyx_cur_scope->__pyx_t_3 = __pyx_t_9;
              __Pyx_XGIVEREF(__pyx_r);
              __Pyx_RefNannyFinishContext();
              __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
              /* return from generator, awaiting value */
              __pyx_generator->resume_label = 2;
              return __pyx_r;
              __pyx_L16_resume_from_await:;
              __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
              __pyx_cur_scope->__pyx_t_0 = 0;
              __Pyx_XGOTREF(__pyx_t_1);
              __pyx_t_7 = __pyx_cur_scope->__pyx_t_1;
              __pyx_cur_scope->__pyx_t_1 = 0;
              __Pyx_XGOTREF(__pyx_t_7);
              __pyx_t_8 = __pyx_cur_scope->__pyx_t_2;
              __pyx_cur_scope->__pyx_t_2 = 0;
              __Pyx_XGOTREF(__pyx_t_8);
              __pyx_t_9 = __pyx_cur_scope->__pyx_t_3;
              __pyx_cur_scope->__pyx_t_3 = 0;
              __Pyx_XGOTREF(__pyx_t_9);
              if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1069, __pyx_L9_error)
            } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
              __Pyx_GOTREF(__pyx_r);
              __Pyx_DECREF(__pyx_r); __pyx_r = 0;
            } else {
              __Pyx_XGOTREF(__pyx_r);
              __PYX_ERR(9, 1069, __pyx_L9_error)
            }

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1066
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_RUNNING:             # <<<<<<<<<<<<<<
 *                 self._server.is_shutting_down = True
 *                 self._status = AIO_SERVER_STATUS_STOPPING
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1065
 *             return
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_RUNNING:
 *                 self._server.is_shutting_down = True
*/
        }
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L14_try_end;
        __pyx_L9_error:;
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*except:*/ {
          __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_XGOTREF(__pyx_t_2);
          __Pyx_XGOTREF(__pyx_t_4);
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_11 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_12, &__pyx_r);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (likely(__pyx_t_6 == PYGEN_NEXT)) {
            __Pyx_GOTREF(__pyx_r);
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_2);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
            __Pyx_XGIVEREF(__pyx_t_3);
            __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
            __Pyx_XGIVEREF(__pyx_t_4);
            __pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
            __Pyx_XGIVEREF(__pyx_t_7);
            __pyx_cur_scope->__pyx_t_4 = __pyx_t_7;
            __Pyx_XGIVEREF(__pyx_t_8);
            __pyx_cur_scope->__pyx_t_5 = __pyx_t_8;
            __Pyx_XGIVEREF(__pyx_t_9);
            __pyx_cur_scope->__pyx_t_6 = __pyx_t_9;
            __Pyx_XGIVEREF(__pyx_t_12);
            __pyx_cur_scope->__pyx_t_7 = __pyx_t_12;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_SwapException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 3;
            return __pyx_r;
            __pyx_L20_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_2);
            __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
            __pyx_cur_scope->__pyx_t_2 = 0;
            __Pyx_XGOTREF(__pyx_t_3);
            __pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
            __pyx_cur_scope->__pyx_t_3 = 0;
            __Pyx_XGOTREF(__pyx_t_4);
            __pyx_t_7 = __pyx_cur_scope->__pyx_t_4;
            __pyx_cur_scope->__pyx_t_4 = 0;
            __Pyx_XGOTREF(__pyx_t_7);
            __pyx_t_8 = __pyx_cur_scope->__pyx_t_5;
            __pyx_cur_scope->__pyx_t_5 = 0;
            __Pyx_XGOTREF(__pyx_t_8);
            __pyx_t_9 = __pyx_cur_scope->__pyx_t_6;
            __pyx_cur_scope->__pyx_t_6 = 0;
            __Pyx_XGOTREF(__pyx_t_9);
            __pyx_t_12 = __pyx_cur_scope->__pyx_t_7;
            __pyx_cur_scope->__pyx_t_7 = 0;
            __Pyx_XGOTREF(__pyx_t_12);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L11_except_error)
            __pyx_t_11 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_11);
          } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
            __Pyx_GOTREF(__pyx_r);
            __pyx_t_11 = __pyx_r; __pyx_r = NULL;
          } else {
            __Pyx_XGOTREF(__pyx_r);
            __PYX_ERR(9, 1065, __pyx_L11_except_error)
          }
          __pyx_t_12 = __pyx_t_11;
          __pyx_t_11 = 0;
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_10 < 0) __PYX_ERR(9, 1065, __pyx_L11_except_error)
          __pyx_t_13 = (!__pyx_t_10);
          if (unlikely(__pyx_t_13)) {
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_4);
            __Pyx_XGIVEREF(__pyx_t_3);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_4, __pyx_t_3);
            __pyx_t_2 = 0;  __pyx_t_4 = 0;  __pyx_t_3 = 0; 
            __PYX_ERR(9, 1065, __pyx_L11_except_error)
          }
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          goto __pyx_L10_exception_handled;
        }
        __pyx_L11_except_error:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        goto __pyx_L1_error;
        __pyx_L10_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
        __pyx_L14_try_end:;
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_1) {
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1065, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_9, &__pyx_r);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (likely(__pyx_t_6 == PYGEN_NEXT)) {
            __Pyx_GOTREF(__pyx_r);
            __Pyx_XGIVEREF(__pyx_t_1);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
            __Pyx_XGIVEREF(__pyx_t_9);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 4;
            return __pyx_r;
            __pyx_L21_resume_from_await:;
            __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_1);
            __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_9);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1065, __pyx_L1_error)
            __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
          } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
            __Pyx_GOTREF(__pyx_r);
            __pyx_t_3 = __pyx_r; __pyx_r = NULL;
          } else {
            __Pyx_XGOTREF(__pyx_r);
            __PYX_ERR(9, 1065, __pyx_L1_error)
          }
          __pyx_t_9 = __pyx_t_3;
          __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        goto __pyx_L8;
      }
      __pyx_L8:;
    }
    goto __pyx_L22;
    __pyx_L4_error:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L1_error;
    __pyx_L22:;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1071
 *                 await self._start_shutting_down()
 * 
 *         if grace is None:             # <<<<<<<<<<<<<<
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
*/
  __pyx_t_13 = (__pyx_cur_scope->__pyx_v_grace == Py_None);
  if (__pyx_t_13) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1073
 *         if grace is None:
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
*/
    grpc_server_cancel_all_calls(__pyx_cur_scope->__pyx_v_self->_server->c_server);

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1074
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
 *             await self._shutdown_completed             # <<<<<<<<<<<<<<
 *         else:
 *             try:
*/
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed, &__pyx_r);
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 5;
      return __pyx_r;
      __pyx_L24_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1074, __pyx_L1_error)
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 1074, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1071
 *                 await self._start_shutting_down()
 * 
 *         if grace is None:             # <<<<<<<<<<<<<<
 *             # Directly cancels all calls
 *             grpc_server_cancel_all_calls(self._server.c_server)
*/
    goto __pyx_L23;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
  /*else*/ {
    {
      __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_9, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1077
 *         else:
 *             try:
 *                 await asyncio.wait_for(             # <<<<<<<<<<<<<<
 *                     asyncio.shield(self._shutdown_completed),
 *                     grace,
*/
        __pyx_t_4 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1077, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_wait_for); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 1077, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1078
 *             try:
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),             # <<<<<<<<<<<<<<
 *                     grace,
 *                 )
*/
        __pyx_t_14 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_15)) __PYX_ERR(9, 1078, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_shield); if (unlikely(!__pyx_t_16)) __PYX_ERR(9, 1078, __pyx_L25_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_16))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_16);
          assert(__pyx_t_14);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_16);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_16, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_cur_scope->__pyx_v_self->_shutdown_completed};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1078, __pyx_L25_error)
          __Pyx_GOTREF(__pyx_t_2);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1079
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 *                     grace,             # <<<<<<<<<<<<<<
 *                 )
 *             except asyncio.TimeoutError:
*/
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11);
          assert(__pyx_t_4);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, __pyx_cur_scope->__pyx_v_grace};
          __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1077, __pyx_L25_error)
          __Pyx_GOTREF(__pyx_t_3);
        }
        __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (likely(__pyx_t_6 == PYGEN_NEXT)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 6;
          return __pyx_r;
          __pyx_L31_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1077, __pyx_L25_error)
        } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_DECREF(__pyx_r); __pyx_r = 0;
        } else {
          __Pyx_XGOTREF(__pyx_r);
          __PYX_ERR(9, 1077, __pyx_L25_error)
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
      }
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L30_try_end;
      __pyx_L25_error:;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1081
 *                     grace,
 *                 )
 *             except asyncio.TimeoutError:             # <<<<<<<<<<<<<<
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)
*/
      __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_11, &__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1081, __pyx_L27_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TimeoutError); if (unlikely(!__pyx_t_16)) __PYX_ERR(9, 1081, __pyx_L27_except_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_17 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_16);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_ErrRestore(__pyx_t_3, __pyx_t_11, __pyx_t_2);
      __pyx_t_3 = 0; __pyx_t_11 = 0; __pyx_t_2 = 0;
      if (__pyx_t_17) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_11, &__pyx_t_3) < 0) __PYX_ERR(9, 1081, __pyx_L27_except_error)
        __Pyx_XGOTREF(__pyx_t_2);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_3);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1083
 *             except asyncio.TimeoutError:
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)             # <<<<<<<<<<<<<<
 *                 await self._shutdown_completed
 * 
*/
        grpc_server_cancel_all_calls(__pyx_cur_scope->__pyx_v_self->_server->c_server);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1084
 *                 # Cancels all ongoing calls by the end of grace period.
 *                 grpc_server_cancel_all_calls(self._server.c_server)
 *                 await self._shutdown_completed             # <<<<<<<<<<<<<<
 * 
 *         async with self._shutdown_lock:
*/
        __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed, &__pyx_r);
        if (likely(__pyx_t_6 == PYGEN_NEXT)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_XGIVEREF(__pyx_t_1);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
          __Pyx_XGIVEREF(__pyx_t_2);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_8);
          __pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
          __Pyx_XGIVEREF(__pyx_t_9);
          __pyx_cur_scope->__pyx_t_4 = __pyx_t_9;
          __Pyx_XGIVEREF(__pyx_t_11);
          __pyx_cur_scope->__pyx_t_5 = __pyx_t_11;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_SwapException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 7;
          return __pyx_r;
          __pyx_L34_resume_from_await:;
          __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_1);
          __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_2);
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
          __pyx_cur_scope->__pyx_t_3 = 0;
          __Pyx_XGOTREF(__pyx_t_8);
          __pyx_t_9 = __pyx_cur_scope->__pyx_t_4;
          __pyx_cur_scope->__pyx_t_4 = 0;
          __Pyx_XGOTREF(__pyx_t_9);
          __pyx_t_11 = __pyx_cur_scope->__pyx_t_5;
          __pyx_cur_scope->__pyx_t_5 = 0;
          __Pyx_XGOTREF(__pyx_t_11);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1084, __pyx_L27_except_error)
        } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_DECREF(__pyx_r); __pyx_r = 0;
        } else {
          __Pyx_XGOTREF(__pyx_r);
          __PYX_ERR(9, 1084, __pyx_L27_except_error)
        }
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L26_exception_handled;
      }
      goto __pyx_L27_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1076
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
      __pyx_L27_except_error:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_9, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L26_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_9, __pyx_t_8);
      __pyx_L30_try_end:;
    }
  }
  __pyx_L23:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1086
 *                 await self._shutdown_completed
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
*/
  /*with:*/ {
    __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_mstate_global->__pyx_n_u_aexit); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1086, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_11 = NULL;
    __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_cur_scope->__pyx_v_self->_shutdown_lock, __pyx_mstate_global->__pyx_n_u_aenter); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1086, __pyx_L35_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
      assert(__pyx_t_11);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, NULL};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 1086, __pyx_L35_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3, &__pyx_r);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (likely(__pyx_t_6 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_t_8);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_8;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 8;
      return __pyx_r;
      __pyx_L36_resume_from_await:;
      __pyx_t_8 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_8);
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1086, __pyx_L35_error)
      __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
    } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __pyx_t_3 = __pyx_r; __pyx_r = NULL;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 1086, __pyx_L35_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    /*try:*/ {
      {
        (void)__pyx_t_9; (void)__pyx_t_1; (void)__pyx_t_7; /* mark used */
        /*try:*/ {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1087
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
*/
          __pyx_t_13 = (__pyx_cur_scope->__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPING);
          if (__pyx_t_13) {

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1088
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)             # <<<<<<<<<<<<<<
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True
*/
            grpc_server_destroy(__pyx_cur_scope->__pyx_v_self->_server->c_server);

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1089
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL             # <<<<<<<<<<<<<<
 *                 self._server.is_shutdown = True
 *                 self._status = AIO_SERVER_STATUS_STOPPED
*/
            __pyx_cur_scope->__pyx_v_self->_server->c_server = NULL;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1090
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True             # <<<<<<<<<<<<<<
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
*/
            __pyx_cur_scope->__pyx_v_self->_server->is_shutdown = 1;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1091
 *                 self._server.c_server = NULL
 *                 self._server.is_shutdown = True
 *                 self._status = AIO_SERVER_STATUS_STOPPED             # <<<<<<<<<<<<<<
 * 
 *     async def wait_for_termination(self, object timeout):
*/
            __pyx_cur_scope->__pyx_v_self->_status = __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED;

            /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1087
 * 
 *         async with self._shutdown_lock:
 *             if self._status == AIO_SERVER_STATUS_STOPPING:             # <<<<<<<<<<<<<<
 *                 grpc_server_destroy(self._server.c_server)
 *                 self._server.c_server = NULL
*/
          }

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1086
 *                 await self._shutdown_completed
 * 
 *         async with self._shutdown_lock:             # <<<<<<<<<<<<<<
 *             if self._status == AIO_SERVER_STATUS_STOPPING:
 *                 grpc_server_destroy(self._server.c_server)
*/
        }
      }
    }
    /*finally:*/ {
      /*normal exit:*/{
        if (__pyx_t_8) {
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[0], NULL);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_7, &__pyx_r);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (likely(__pyx_t_6 == PYGEN_NEXT)) {
            __Pyx_GOTREF(__pyx_r);
            __Pyx_XGIVEREF(__pyx_t_7);
            __pyx_cur_scope->__pyx_t_0 = __pyx_t_7;
            __Pyx_XGIVEREF(__pyx_t_8);
            __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
            __Pyx_XGIVEREF(__pyx_r);
            __Pyx_RefNannyFinishContext();
            __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
            /* return from generator, awaiting value */
            __pyx_generator->resume_label = 9;
            return __pyx_r;
            __pyx_L47_resume_from_await:;
            __pyx_t_7 = __pyx_cur_scope->__pyx_t_0;
            __pyx_cur_scope->__pyx_t_0 = 0;
            __Pyx_XGOTREF(__pyx_t_7);
            __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
            __pyx_cur_scope->__pyx_t_1 = 0;
            __Pyx_XGOTREF(__pyx_t_8);
            if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1086, __pyx_L1_error)
            __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
          } else if (likely(__pyx_t_6 == PYGEN_RETURN)) {
            __Pyx_GOTREF(__pyx_r);
            __pyx_t_3 = __pyx_r; __pyx_r = NULL;
          } else {
            __Pyx_XGOTREF(__pyx_r);
            __PYX_ERR(9, 1086, __pyx_L1_error)
          }
          __pyx_t_7 = __pyx_t_3;
          __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        goto __pyx_L39;
      }
      __pyx_L39:;
    }
    goto __pyx_L48;
    __pyx_L35_error:;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L1_error;
    __pyx_L48:;
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination = {"wait_for_termination", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_timeout = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wait_for_termination (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_timeout,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(9, 1093, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1093, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "wait_for_termination", 0) < 0) __PYX_ERR(9, 1093, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("wait_for_termination", 1, 1, 1, i); __PYX_ERR(9, 1093, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(9, 1093, __pyx_L3_error)
    }
    __pyx_v_timeout = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wait_for_termination", 1, 1, 1, __pyx_nargs); __PYX_ERR(9, 1093, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v_timeout);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_25wait_for_termination(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v_timeout) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wait_for_termination", 0);
  __pyx_cur_scope = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, __pyx_mstate_global->__pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(9, 1093, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __pyx_cur_scope->__pyx_v_timeout = __pyx_v_timeout;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_timeout);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_timeout);
  {
    __pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_wait_for_termination, __pyx_mstate_global->__pyx_n_u_AioServer_wait_for_termination, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc); if (unlikely(!gen)) __PYX_ERR(9, 1093, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4grpc_7_cython_6cygrpc_9AioServer_27generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *__pyx_cur_scope = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  __Pyx_PySendResult __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  size_t __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wait_for_termination", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L5_resume_from_await;
    case 2: goto __pyx_L12_resume_from_await;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(__pyx_sent_value != Py_None)) {
    if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started coroutine");
    __PYX_ERR(9, 1093, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1094
 * 
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_timeout == Py_None);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1095
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:
 *             await self._shutdown_completed             # <<<<<<<<<<<<<<
 *         else:
 *             try:
*/
    __pyx_t_2 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_self->_shutdown_completed, &__pyx_r);
    if (likely(__pyx_t_2 == PYGEN_NEXT)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, awaiting value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L5_resume_from_await:;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1095, __pyx_L1_error)
    } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
      __Pyx_GOTREF(__pyx_r);
      __Pyx_DECREF(__pyx_r); __pyx_r = 0;
    } else {
      __Pyx_XGOTREF(__pyx_r);
      __PYX_ERR(9, 1095, __pyx_L1_error)
    }

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1094
 * 
 *     async def wait_for_termination(self, object timeout):
 *         if timeout is None:             # <<<<<<<<<<<<<<
 *             await self._shutdown_completed
 *         else:
*/
    goto __pyx_L4;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
  /*else*/ {
    {
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1098
 *         else:
 *             try:
 *                 await asyncio.wait_for(             # <<<<<<<<<<<<<<
 *                     asyncio.shield(self._shutdown_completed),
 *                     timeout,
*/
        __pyx_t_7 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_wait_for); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 1098, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1099
 *             try:
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),             # <<<<<<<<<<<<<<
 *                     timeout,
 *                 )
*/
        __pyx_t_10 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 1099, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_shield); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 1099, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12);
          assert(__pyx_t_10);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
          __pyx_t_13 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_cur_scope->__pyx_v_self->_shutdown_completed};
          __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 1099, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_8);
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1100
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
 *                     timeout,             # <<<<<<<<<<<<<<
 *                 )
 *             except asyncio.TimeoutError:
*/
        __pyx_t_13 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
          assert(__pyx_t_7);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
          __pyx_t_13 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_8, __pyx_cur_scope->__pyx_v_timeout};
          __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 1098, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_6);
        }
        __pyx_t_2 = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_6, &__pyx_r);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (likely(__pyx_t_2 == PYGEN_NEXT)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_XGIVEREF(__pyx_t_3);
          __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
          __Pyx_XGIVEREF(__pyx_t_4);
          __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
          __Pyx_XGIVEREF(__pyx_t_5);
          __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
          __Pyx_XGIVEREF(__pyx_r);
          __Pyx_RefNannyFinishContext();
          __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
          /* return from generator, awaiting value */
          __pyx_generator->resume_label = 2;
          return __pyx_r;
          __pyx_L12_resume_from_await:;
          __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
          __pyx_cur_scope->__pyx_t_0 = 0;
          __Pyx_XGOTREF(__pyx_t_3);
          __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
          __pyx_cur_scope->__pyx_t_1 = 0;
          __Pyx_XGOTREF(__pyx_t_4);
          __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
          __pyx_cur_scope->__pyx_t_2 = 0;
          __Pyx_XGOTREF(__pyx_t_5);
          if (unlikely(!__pyx_sent_value)) __PYX_ERR(9, 1098, __pyx_L6_error)
        } else if (likely(__pyx_t_2 == PYGEN_RETURN)) {
          __Pyx_GOTREF(__pyx_r);
          __Pyx_DECREF(__pyx_r); __pyx_r = 0;
        } else {
          __Pyx_XGOTREF(__pyx_r);
          __PYX_ERR(9, 1098, __pyx_L6_error)
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L11_try_end;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1102
 *                     timeout,
 *                 )
 *             except asyncio.TimeoutError:             # <<<<<<<<<<<<<<
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception
*/
      __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_9, &__pyx_t_8);
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_asyncio); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1102, __pyx_L8_except_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_TimeoutError); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 1102, __pyx_L8_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_12);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_ErrRestore(__pyx_t_6, __pyx_t_9, __pyx_t_8);
      __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_8 = 0;
      if (__pyx_t_14) {
        __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_6) < 0) __PYX_ERR(9, 1102, __pyx_L8_except_error)
        __Pyx_XGOTREF(__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_6);

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1103
 *                 )
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *                     raise self._crash_exception
 *                 return True
*/
        __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_crash_exception != Py_None);
        if (unlikely(__pyx_t_1)) {

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1104
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception             # <<<<<<<<<<<<<<
 *                 return True
 *         if self._crash_exception is not None:
*/
          __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_crash_exception, 0, 0, 0);
          __PYX_ERR(9, 1104, __pyx_L8_except_error)

          /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1103
 *                 )
 *             except asyncio.TimeoutError:
 *                 if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *                     raise self._crash_exception
 *                 return True
*/
        }

        /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1105
 *                 if self._crash_exception is not None:
 *                     raise self._crash_exception
 *                 return True             # <<<<<<<<<<<<<<
 *         if self._crash_exception is not None:
 *             raise self._crash_exception
*/
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(Py_True);
        __pyx_r = Py_True;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L9_except_return;
      }
      goto __pyx_L8_except_error;

      /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1097
 *             await self._shutdown_completed
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 await asyncio.wait_for(
 *                     asyncio.shield(self._shutdown_completed),
*/
      __pyx_L8_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L9_except_return:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L0;
      __pyx_L11_try_end:;
    }
  }
  __pyx_L4:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1106
 *                     raise self._crash_exception
 *                 return True
 *         if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self._crash_exception
 *         return False
*/
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->_crash_exception != Py_None);
  if (unlikely(__pyx_t_1)) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1107
 *                 return True
 *         if self._crash_exception is not None:
 *             raise self._crash_exception             # <<<<<<<<<<<<<<
 *         return False
 * 
*/
    __Pyx_Raise(__pyx_cur_scope->__pyx_v_self->_crash_exception, 0, 0, 0);
    __PYX_ERR(9, 1107, __pyx_L1_error)

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1106
 *                     raise self._crash_exception
 *                 return True
 *         if self._crash_exception is not None:             # <<<<<<<<<<<<<<
 *             raise self._crash_exception
 *         return False
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1108
 *         if self._crash_exception is not None:
 *             raise self._crash_exception
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_False);
  __pyx_r = Py_False;
  goto __pyx_L0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  if (__Pyx_PyErr_Occurred()) {
    __Pyx_Generator_Replace_StopIteration(0);
    __Pyx_AddTraceback("wait_for_termination", __pyx_clineno, __pyx_lineno, __pyx_filename);
  }
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1110
 *         return False
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Deallocation of Core objects are ensured by Python layer."""
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
*/

/* Python wrapper */
static void __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_28__dealloc__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1114
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             _LOGGER.debug(
 *                 '__dealloc__ called on running server %s with status %d',
*/
  __pyx_t_1 = (__pyx_v_self->_status != __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_STOPPED);
  if (__pyx_t_1) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1115
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:
 *             _LOGGER.debug(             # <<<<<<<<<<<<<<
 *                 '__dealloc__ called on running server %s with status %d',
 *                 self,
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_LOGGER); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 1115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1118
 *                 '__dealloc__ called on running server %s with status %d',
 *                 self,
 *                 self._status             # <<<<<<<<<<<<<<
 *             )
 *         shutdown_grpc_aio()
*/
    __pyx_t_4 = __Pyx_PyLong_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_v_self->_status); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 1118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_dealloc___called_on_running_se, ((PyObject *)__pyx_v_self), __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1114
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
 *         # There is a potential memory leak of created Core server.
 *         if self._status != AIO_SERVER_STATUS_STOPPED:             # <<<<<<<<<<<<<<
 *             _LOGGER.debug(
 *                 '__dealloc__ called on running server %s with status %d',
*/
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1120
 *                 self._status
 *             )
 *         shutdown_grpc_aio()             # <<<<<<<<<<<<<<
 * 
 *     cdef thread_pool(self):
*/
  __pyx_t_2 = __pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 1120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1110
 *         return False
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         """Deallocation of Core objects are ensured by Python layer."""
 *         # TODO(lidiz) if users create server, and then dealloc it immediately.
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grpc._cython.cygrpc.AioServer.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1122
 *         shutdown_grpc_aio()
 * 
 *     cdef thread_pool(self):             # <<<<<<<<<<<<<<
 *         """Access the thread pool instance."""
 *         return self._thread_pool
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("thread_pool", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1124
 *     cdef thread_pool(self):
 *         """Access the thread pool instance."""
 *         return self._thread_pool             # <<<<<<<<<<<<<<
 * 
 *     def is_running(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_thread_pool);
  __pyx_r = __pyx_v_self->_thread_pool;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1122
 *         shutdown_grpc_aio()
 * 
 *     cdef thread_pool(self):             # <<<<<<<<<<<<<<
 *         """Access the thread pool instance."""
 *         return self._thread_pool
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_31is_running = {"is_running", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_running (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_running", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_running", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_30is_running(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_running", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1127
 * 
 *     def is_running(self):
 *         return self._status == AIO_SERVER_STATUS_RUNNING             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->_status == __pyx_e_4grpc_7_cython_6cygrpc_AIO_SERVER_STATUS_RUNNING)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.is_running", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_32__reduce_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
*/
  __pyx_t_1 = __Pyx_PyLong_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_v_self->_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(12); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_crash_exception);
  __Pyx_GIVEREF(__pyx_v_self->_crash_exception);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_crash_exception) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_generic_handlers);
  __Pyx_GIVEREF(__pyx_v_self->_generic_handlers);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->_generic_handlers) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_interceptors);
  __Pyx_GIVEREF(__pyx_v_self->_interceptors);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->_interceptors) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_limiter);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_limiter);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->_limiter)) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_loop);
  __Pyx_GIVEREF(__pyx_v_self->_loop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->_loop) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_server);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_server);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->_server)) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_serving_task);
  __Pyx_GIVEREF(__pyx_v_self->_serving_task);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_v_self->_serving_task) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->_shutdown_callback_wrapper);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_self->_shutdown_callback_wrapper)) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_shutdown_completed);
  __Pyx_GIVEREF(__pyx_v_self->_shutdown_completed);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_v_self->_shutdown_completed) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_shutdown_lock);
  __Pyx_GIVEREF(__pyx_v_self->_shutdown_lock);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 9, __pyx_v_self->_shutdown_lock) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 10, __pyx_t_1) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_self->_thread_pool);
  __Pyx_GIVEREF(__pyx_v_self->_thread_pool);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 11, __pyx_v_self->_thread_pool) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
*/
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict) != (0)) __PYX_ERR(10, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._crash_exception, self._generic_handlers, self._interceptors, self._limiter, self._loop, self._server, self._serving_task, self._shutdown_callback_wrapper, self._shutdown_completed, self._shutdown_lock, self._status, self._thread_pool)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
*/
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_crash_exception != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_generic_handlers != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_interceptors != ((PyObject*)Py_None));
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_limiter) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_loop != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_server) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_serving_task != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_shutdown_callback_wrapper) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_shutdown_completed != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_shutdown_lock != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_thread_pool != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AioServer); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_171651213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_171651213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_171651213) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._crash_exception is not None or self._generic_handlers is not None or self._interceptors is not None or self._limiter is not None or self._loop is not None or self._server is not None or self._serving_task is not None or self._shutdown_callback_wrapper is not None or self._shutdown_completed is not None or self._shutdown_lock is not None or self._thread_pool is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, None), state
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AioServer); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_171651213);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_171651213);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_int_171651213) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2) != (0)) __PYX_ERR(10, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < 0) __PYX_ERR(10, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(10, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(10, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_9AioServer_34__setstate_cython__(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("grpc._cython.cygrpc.AioServer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "grpc/_cython/cygrpc.pyx":83
 * # initialize gRPC
 * #
 * cdef _initialize():             # <<<<<<<<<<<<<<
 *   grpc_set_ssl_roots_override_callback(
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc__initialize(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_initialize", 0);

  /* "grpc/_cython/cygrpc.pyx":84
 * #
 * cdef _initialize():
 *   grpc_set_ssl_roots_override_callback(             # <<<<<<<<<<<<<<
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
 * 
*/
  grpc_set_ssl_roots_override_callback(((grpc_ssl_roots_override_callback)__pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback));

  /* "grpc/_cython/cygrpc.pyx":83
 * # initialize gRPC
 * #
 * cdef _initialize():             # <<<<<<<<<<<<<<
 *   grpc_set_ssl_roots_override_callback(
 *           <grpc_ssl_roots_override_callback>ssl_roots_override_callback)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_ChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_191__pyx_unpickle_ChannelCredentials = {"__pyx_unpickle_ChannelCredentials", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_ChannelCredentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_191__pyx_unpickle_ChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_ChannelCredentials", 0) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ChannelCredentials", 1, 3, 3, i); __PYX_ERR(10, 1, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ChannelCredentials", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_ChannelCredentials(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_190__pyx_unpickle_ChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[3], Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_PickleError) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
*/
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = ChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_ChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ChannelCredentials__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
*/
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_ChannelCredentials__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_InsecureChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle_InsecureChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_193__pyx_unpickle_InsecureChannelCredentials = {"__pyx_unpickle_InsecureChannelCredentials", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle_InsecureChannelCredentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_193__pyx_unpickle_InsecureChannelCredentials(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_InsecureChannelCredentials", 0) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InsecureChannelCredentials", 1, 3, 3, i); __PYX_ERR(10, 1, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InsecureChannelCredentials", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle_InsecureChannelCredentials(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_192__pyx_unpickle_InsecureChannelCredentials(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[3], Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_PickleError) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
*/
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = InsecureChannelCredentials.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_InsecureChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_InsecureChannelCredentials__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InsecureChannelCredentials__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
*/
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_InsecureChannelCredentials__set_state(<InsecureChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InsecureChannelCredentials__set_state(InsecureChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_InsecureChannelCredentials__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle__Tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_195__pyx_unpickle__Tag = {"__pyx_unpickle__Tag", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle__Tag, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_195__pyx_unpickle__Tag(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle__Tag", 0) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Tag", 1, 3, 3, i); __PYX_ERR(10, 1, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Tag", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle__Tag(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_194__pyx_unpickle__Tag(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[3], Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_PickleError) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
*/
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = _Tag.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle__Tag__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle__Tag__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
*/
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle__Tag__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_CensusContext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_CensusContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_197__pyx_unpickle_CensusContext = {"__pyx_unpickle_CensusContext", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_CensusContext, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_197__pyx_unpickle_CensusContext(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_CensusContext", 0) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CensusContext", 1, 3, 3, i); __PYX_ERR(10, 1, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CensusContext", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_CensusContext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_196__pyx_unpickle_CensusContext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[3], Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_PickleError) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
*/
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CensusContext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_CensusContext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_CensusContext__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CensusContext__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
*/
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 13, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 13, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_CensusContext__set_state(<CensusContext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CensusContext__set_state(CensusContext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_CensusContext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

/* Python wrapper */
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_199__pyx_unpickle_AioServer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_4grpc_7_cython_6cygrpc_199__pyx_unpickle_AioServer = {"__pyx_unpickle_AioServer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_199__pyx_unpickle_AioServer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4grpc_7_cython_6cygrpc_199__pyx_unpickle_AioServer(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_AioServer", 0) < 0) __PYX_ERR(10, 1, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AioServer", 1, 3, 3, i); __PYX_ERR(10, 1, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(10, 1, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(10, 1, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(10, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AioServer", 1, 3, 3, __pyx_nargs); __PYX_ERR(10, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4grpc_7_cython_6cygrpc_198__pyx_unpickle_AioServer(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4grpc_7_cython_6cygrpc_198__pyx_unpickle_AioServer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
*/
  __pyx_t_1 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[4], Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_mstate_global->__pyx_n_u_PickleError) != (0)) __PYX_ERR(10, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
    __pyx_t_3 = __Pyx_PyLong_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(10, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa3b308d, 0x7117f7c, 0xa3714dd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
*/
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
*/
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(10, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa3b308d, 0x7117f7c, 0xa3714dd) = (_crash_exception, _generic_handlers, _interceptors, _limiter, _loop, _server, _serving_task, _shutdown_callback_wrapper, _shutdown_completed, _shutdown_lock, _status, _thread_pool))" % __pyx_checksum
 *     __pyx_result = AioServer.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
*/

static PyObject *__pyx_f_4grpc_7_cython_6cygrpc___pyx_unpickle_AioServer__set_state(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AioServer__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_crash_exception);
  __Pyx_DECREF(__pyx_v___pyx_result->_crash_exception);
  __pyx_v___pyx_result->_crash_exception = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_generic_handlers);
  __Pyx_DECREF(__pyx_v___pyx_result->_generic_handlers);
  __pyx_v___pyx_result->_generic_handlers = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_interceptors);
  __Pyx_DECREF(__pyx_v___pyx_result->_interceptors);
  __pyx_v___pyx_result->_interceptors = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_limiter);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_limiter);
  __pyx_v___pyx_result->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_loop);
  __Pyx_DECREF(__pyx_v___pyx_result->_loop);
  __pyx_v___pyx_result->_loop = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_server);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_server);
  __pyx_v___pyx_result->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_serving_task);
  __Pyx_DECREF(__pyx_v___pyx_result->_serving_task);
  __pyx_v___pyx_result->_serving_task = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper))))) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->_shutdown_callback_wrapper);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->_shutdown_callback_wrapper);
  __pyx_v___pyx_result->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_shutdown_completed);
  __Pyx_DECREF(__pyx_v___pyx_result->_shutdown_completed);
  __pyx_v___pyx_result->_shutdown_completed = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_shutdown_lock);
  __Pyx_DECREF(__pyx_v___pyx_result->_shutdown_lock);
  __pyx_v___pyx_result->_shutdown_lock = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)__Pyx_PyLong_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_status = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(10, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_thread_pool);
  __Pyx_DECREF(__pyx_v___pyx_result->_thread_pool);
  __pyx_v___pyx_result->_thread_pool = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
*/
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(10, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(10, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 12);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(10, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])             # <<<<<<<<<<<<<<
*/
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __pyx_t_7;
    __Pyx_INCREF(__pyx_t_6);
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(10, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyLong_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
*/
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AioServer__set_state(<AioServer> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AioServer__set_state(AioServer __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._crash_exception = __pyx_state[0]; __pyx_result._generic_handlers = __pyx_state[1]; __pyx_result._interceptors = __pyx_state[2]; __pyx_result._limiter = __pyx_state[3]; __pyx_result._loop = __pyx_state[4]; __pyx_result._server = __pyx_state[5]; __pyx_result._serving_task = __pyx_state[6]; __pyx_result._shutdown_callback_wrapper = __pyx_state[7]; __pyx_result._shutdown_completed = __pyx_state[8]; __pyx_result._shutdown_lock = __pyx_state[9]; __pyx_result._status = __pyx_state[10]; __pyx_result._thread_pool = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("grpc._cython.cygrpc.__pyx_unpickle_AioServer__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* #### Code section: module_exttypes ### */
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArg __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg;
  __Pyx_default_placement_construct(&(p->c_argument));
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_argument);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec = {
  "grpc._cython.cygrpc._ChannelArg",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelArg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelArg", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ChannelArgs __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs;
  __Pyx_default_placement_construct(&(p->_c_arguments));
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_channel_args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->_c_arguments);
  Py_CLEAR(p->_arguments);
  Py_CLEAR(p->_channel_args);
  Py_CLEAR(p->_references);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_arguments) {
    e = (*v)(p->_arguments, a); if (e) return e;
  }
  if (p->_channel_args) {
    e = (*v)(p->_channel_args, a); if (e) return e;
  }
  if (p->_references) {
    e = (*v)(p->_references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *)o;
  tmp = ((PyObject*)p->_arguments);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_channel_args);
  p->_channel_args = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_references);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__arguments(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_10_arguments_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__references(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_11_references_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs[] = {
  {"_arguments", __pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__arguments, 0, 0, 0},
  {"_references", __pyx_getprop_4grpc_7_cython_6cygrpc_12_ChannelArgs__references, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec = {
  "grpc._cython.cygrpc._ChannelArgs",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelArgs", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelArgs, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_4Call_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_4Call_15__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_4Call_is_valid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_4Call_8is_valid_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Call[] = {
  {"_start_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start_client_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start_server_batch", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_credentials", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_custom_op_on_c_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_Call[] = {
  {"is_valid", __pyx_getprop_4grpc_7_cython_6cygrpc_4Call_is_valid, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_Call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Call_spec = {
  "grpc._cython.cygrpc.Call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Call, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_Call, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__CallState __pyx_vtable_4grpc_7_cython_6cygrpc__CallState;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState;
  p->due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->call_tracer_capsule = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->due);
  Py_CLEAR(p->call_tracer_capsule);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->due) {
    e = (*v)(p->due, a); if (e) return e;
  }
  if (p->call_tracer_capsule) {
    e = (*v)(p->call_tracer_capsule, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)o;
  tmp = ((PyObject*)p->due);
  p->due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_tracer_capsule);
  p->call_tracer_capsule = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__CallState[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__CallState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__CallState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__CallState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__CallState_spec = {
  "grpc._cython.cygrpc._CallState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__CallState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__CallState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_CallState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__CallState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__CallState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__CallState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__CallState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__CallState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o);
  p->target = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->condition = Py_None; Py_INCREF(Py_None);
  p->open = Py_None; Py_INCREF(Py_None);
  p->closed_reason = Py_None; Py_INCREF(Py_None);
  p->integrated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->segregated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->connectivity_due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->target);
  Py_CLEAR(p->condition);
  Py_CLEAR(p->open);
  Py_CLEAR(p->closed_reason);
  Py_CLEAR(p->integrated_call_states);
  Py_CLEAR(p->segregated_call_states);
  Py_CLEAR(p->connectivity_due);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->condition) {
    e = (*v)(p->condition, a); if (e) return e;
  }
  if (p->open) {
    e = (*v)(p->open, a); if (e) return e;
  }
  if (p->closed_reason) {
    e = (*v)(p->closed_reason, a); if (e) return e;
  }
  if (p->integrated_call_states) {
    e = (*v)(p->integrated_call_states, a); if (e) return e;
  }
  if (p->segregated_call_states) {
    e = (*v)(p->segregated_call_states, a); if (e) return e;
  }
  if (p->connectivity_due) {
    e = (*v)(p->connectivity_due, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)o;
  tmp = ((PyObject*)p->condition);
  p->condition = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->open);
  p->open = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->closed_reason);
  p->closed_reason = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->integrated_call_states);
  p->integrated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->segregated_call_states);
  p->segregated_call_states = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->connectivity_due);
  p->connectivity_due = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ChannelState[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ChannelState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec = {
  "grpc._cython.cygrpc._ChannelState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ChannelState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ChannelState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ChannelState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ChannelState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ChannelState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ChannelState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ChannelState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ChannelState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_channel_state);
  Py_CLEAR(p->_call_state);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_channel_state) {
    e = (*v)(((PyObject *)p->_channel_state), a); if (e) return e;
  }
  if (p->_call_state) {
    e = (*v)(((PyObject *)p->_call_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall *)o;
  tmp = ((PyObject*)p->_channel_state);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_call_state);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall[] = {
  {"operate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec = {
  "grpc._cython.cygrpc.IntegratedCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""IntegratedCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_IntegratedCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_IntegratedCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_channel_state);
  Py_CLEAR(p->_call_state);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_channel_state) {
    e = (*v)(((PyObject *)p->_channel_state), a); if (e) return e;
  }
  if (p->_call_state) {
    e = (*v)(((PyObject *)p->_call_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)o;
  tmp = ((PyObject*)p->_channel_state);
  p->_channel_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_call_state);
  p->_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall[] = {
  {"operate", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"next_event", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec = {
  "grpc._cython.cygrpc.SegregatedCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SegregatedCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SegregatedCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o);
  p->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  p->_registered_call_handles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_state);
  Py_CLEAR(p->_registered_call_handles);
  Py_CLEAR(p->_arguments);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_state) {
    e = (*v)(((PyObject *)p->_state), a); if (e) return e;
  }
  if (p->_registered_call_handles) {
    e = (*v)(p->_registered_call_handles, a); if (e) return e;
  }
  if (p->_arguments) {
    e = (*v)(p->_arguments, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)o;
  tmp = ((PyObject*)p->_state);
  p->_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_registered_call_handles);
  p->_registered_call_handles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_arguments);
  p->_arguments = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Channel[] = {
  {"target", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"integrated_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"next_call_event", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"segregated_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"check_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"watch_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close_on_fork", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"get_registered_call_handle", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_7Channel_18get_registered_call_handle},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Channel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Channel},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Channel},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Channel_spec = {
  "grpc._cython.cygrpc.Channel",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Channel_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Channel = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Channel", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Channel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Channel, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Channel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Channel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Channel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o);
  p->method = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->method);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->method) {
    e = (*v)(p->method, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle *)o;
  tmp = ((PyObject*)p->method);
  p->method = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_10CallHandle_call_handle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_11call_handle_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallHandle[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle[] = {
  {"call_handle", __pyx_getprop_4grpc_7_cython_6cygrpc_10CallHandle_call_handle, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec = {
  "grpc._cython.cygrpc.CallHandle",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallHandle_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallHandle = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallHandle", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallHandle), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallHandle, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallHandle, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallHandle, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallHandle, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CallHandle, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallHandle, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec = {
  "grpc._cython.cygrpc.CallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  p->_metadata_plugin = Py_None; Py_INCREF(Py_None);
  p->_name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_metadata_plugin);
  Py_CLEAR(p->_name);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_metadata_plugin) {
    e = (*v)(p->_metadata_plugin, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials); }
  tmp = ((PyObject*)p->_metadata_plugin);
  p->_metadata_plugin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__metadata_plugin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_16_metadata_plugin_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5_name_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials[] = {
  {"_metadata_plugin", __pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__metadata_plugin, 0, 0, 0},
  {"_name", __pyx_getprop_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials__name, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec = {
  "grpc._cython.cygrpc.MetadataPluginCallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""MetadataPluginCallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeCallCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_CallCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_call_credentialses);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_call_credentialses) {
    e = (*v)(p->_call_credentialses, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials); }
  tmp = ((PyObject*)p->_call_credentialses);
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_24CompositeCallCredentials__call_credentialses(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_19_call_credentialses_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials[] = {
  {"_call_credentialses", __pyx_getprop_4grpc_7_cython_6cygrpc_24CompositeCallCredentials__call_credentialses, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec = {
  "grpc._cython.cygrpc.CompositeCallCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompositeCallCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeCallCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeCallCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec = {
  "grpc._cython.cygrpc.ChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_5__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {Py_nb_int, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec = {
  "grpc._cython.cygrpc.SSLSessionCacheLRU",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_SSLSessionCacheLRU = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_bool*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  __pyx_pw_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_3__int__, /*nb_int*/
  0, /*nb_long (reserved)*/
  0, /*nb_float*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  0, /*nb_matrix_multiply*/
  0, /*nb_inplace_matrix_multiply*/
};

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SSLSessionCacheLRU", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_SSLSessionCacheLRU, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SSLChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  p->_pem_root_certificates = Py_None; Py_INCREF(Py_None);
  p->_private_key = Py_None; Py_INCREF(Py_None);
  p->_certificate_chain = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_pem_root_certificates);
  Py_CLEAR(p->_private_key);
  Py_CLEAR(p->_certificate_chain);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_pem_root_certificates) {
    e = (*v)(p->_pem_root_certificates, a); if (e) return e;
  }
  if (p->_private_key) {
    e = (*v)(p->_private_key, a); if (e) return e;
  }
  if (p->_certificate_chain) {
    e = (*v)(p->_certificate_chain, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials); }
  tmp = ((PyObject*)p->_pem_root_certificates);
  p->_pem_root_certificates = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_private_key);
  p->_private_key = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_certificate_chain);
  p->_certificate_chain = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__pem_root_certificates(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_22_pem_root_certificates_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__private_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_12_private_key_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__certificate_chain(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_18_certificate_chain_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials[] = {
  {"_pem_root_certificates", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__pem_root_certificates, 0, 0, 0},
  {"_private_key", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__private_key, 0, 0, 0},
  {"_certificate_chain", __pyx_getprop_4grpc_7_cython_6cygrpc_21SSLChannelCredentials__certificate_chain, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec = {
  "grpc._cython.cygrpc.SSLChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SSLChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SSLChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SSLChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompositeChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_call_credentialses);
  Py_CLEAR(p->_channel_credentials);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_call_credentialses) {
    e = (*v)(p->_call_credentialses, a); if (e) return e;
  }
  if (p->_channel_credentials) {
    e = (*v)(((PyObject *)p->_channel_credentials), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials); }
  tmp = ((PyObject*)p->_call_credentialses);
  p->_call_credentialses = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_channel_credentials);
  p->_channel_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__call_credentialses(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_19_call_credentialses_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__channel_credentials(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_20_channel_credentials_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials[] = {
  {"_call_credentialses", __pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__call_credentialses, 0, 0, 0},
  {"_channel_credentials", __pyx_getprop_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials__channel_credentials, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec = {
  "grpc._cython.cygrpc.CompositeChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompositeChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompositeChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_XDSChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  p->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_fallback_credentials);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_fallback_credentials) {
    e = (*v)(((PyObject *)p->_fallback_credentials), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials); }
  tmp = ((PyObject*)p->_fallback_credentials);
  p->_fallback_credentials = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_21XDSChannelCredentials__fallback_credentials(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_21_fallback_credentials_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials[] = {
  {"_fallback_credentials", __pyx_getprop_4grpc_7_cython_6cygrpc_21XDSChannelCredentials__fallback_credentials, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec = {
  "grpc._cython.cygrpc.XDSChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""XDSChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_XDSChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_XDSChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec = {
  "grpc._cython.cygrpc.ServerCertificateConfig",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerCertificateConfig", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCertificateConfig), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCertificateConfig, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->initial_cert_config = Py_None; Py_INCREF(Py_None);
  p->cert_config_fetcher = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->references);
  Py_CLEAR(p->initial_cert_config);
  Py_CLEAR(p->cert_config_fetcher);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  if (p->initial_cert_config) {
    e = (*v)(p->initial_cert_config, a); if (e) return e;
  }
  if (p->cert_config_fetcher) {
    e = (*v)(p->cert_config_fetcher, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials *)o;
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->initial_cert_config);
  p->initial_cert_config = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cert_config_fetcher);
  p->cert_config_fetcher = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec = {
  "grpc._cython.cygrpc.ServerCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_LocalChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec = {
  "grpc._cython.cygrpc.LocalChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""LocalChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_LocalChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_LocalChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_LocalChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ALTSChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec = {
  "grpc._cython.cygrpc.ALTSChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ALTSChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ALTSChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o);
  p->deadline = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->deadline);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->deadline) {
    e = (*v)(p->deadline, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg *)o;
  tmp = ((PyObject*)p->deadline);
  p->deadline = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec = {
  "grpc._cython.cygrpc._LatentEventArg",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_LatentEventArg", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__LatentEventArg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__LatentEventArg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_11__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue[] = {
  {"_internal_poll", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"poll", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"clear", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec = {
  "grpc._cython.cygrpc.CompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec = {
  "grpc._cython.cygrpc.BaseEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BaseEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BaseEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent); }
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent[] = {
  {"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_completion_type, 0, 0, 0},
  {"success", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_success, 0, 0, 0},
  {"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_17ConnectivityEvent_tag, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec = {
  "grpc._cython.cygrpc.ConnectivityEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ConnectivityEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ConnectivityEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  Py_CLEAR(p->call);
  Py_CLEAR(p->call_details);
  Py_CLEAR(p->invocation_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  if (p->call) {
    e = (*v)(((PyObject *)p->call), a); if (e) return e;
  }
  if (p->call_details) {
    e = (*v)(((PyObject *)p->call_details), a); if (e) return e;
  }
  if (p->invocation_metadata) {
    e = (*v)(p->invocation_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent); }
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_details);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->invocation_metadata);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_4call_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call_details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_12call_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_invocation_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_19invocation_metadata_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent[] = {
  {"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_completion_type, 0, 0, 0},
  {"success", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_success, 0, 0, 0},
  {"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_tag, 0, 0, 0},
  {"call", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call, 0, 0, 0},
  {"call_details", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_call_details, 0, 0, 0},
  {"invocation_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_16RequestCallEvent_invocation_metadata, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec = {
  "grpc._cython.cygrpc.RequestCallEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RequestCallEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RequestCallEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  p->batch_operations = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  Py_CLEAR(p->batch_operations);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  if (p->batch_operations) {
    e = (*v)(p->batch_operations, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent); }
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->batch_operations);
  p->batch_operations = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_batch_operations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_16batch_operations_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent[] = {
  {"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_completion_type, 0, 0, 0},
  {"success", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_success, 0, 0, 0},
  {"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_tag, 0, 0, 0},
  {"batch_operations", __pyx_getprop_4grpc_7_cython_6cygrpc_19BatchOperationEvent_batch_operations, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec = {
  "grpc._cython.cygrpc.BatchOperationEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BatchOperationEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BatchOperationEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseEvent(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o);
  p->tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseEvent(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->tag) {
    e = (*v)(p->tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent); }
  tmp = ((PyObject*)p->tag);
  p->tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_completion_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_15completion_type_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_success(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_7success_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent[] = {
  {"completion_type", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_completion_type, 0, 0, 0},
  {"success", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_success, 0, 0, 0},
  {"tag", __pyx_getprop_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_tag, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec = {
  "grpc._cython.cygrpc.ServerShutdownEvent",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ServerShutdownEvent", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ServerShutdownEvent, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation __pyx_vtable_4grpc_7_cython_6cygrpc_Operation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __Pyx_default_placement_construct(&(p->c_op));
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_op);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Operation[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Operation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Operation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Operation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Operation_spec = {
  "grpc._cython.cygrpc.Operation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_Operation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Operation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Operation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Operation, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  p->_initial_metadata = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation); }
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__initial_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_17_initial_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation[] = {
  {"_initial_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__initial_metadata, 0, 0, 0},
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec = {
  "grpc._cython.cygrpc.SendInitialMetadataOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendInitialMetadataOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendMessageOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation;
  p->_message = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  Py_CLEAR(p->_message);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__message(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_8_message_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation[] = {
  {"_message", __pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__message, 0, 0, 0},
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_20SendMessageOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec = {
  "grpc._cython.cygrpc.SendMessageOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendMessageOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendMessageOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendMessageOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation[] = {
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec = {
  "grpc._cython.cygrpc.SendCloseFromClientOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendCloseFromClientOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  __Pyx_default_placement_construct(&(p->_c_details));
  p->_trailing_metadata = Py_None; Py_INCREF(Py_None);
  p->_code = Py_None; Py_INCREF(Py_None);
  p->_details = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_code);
  Py_CLEAR(p->_details);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  if (p->_code) {
    e = (*v)(p->_code, a); if (e) return e;
  }
  if (p->_details) {
    e = (*v)(p->_details, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation); }
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_code);
  p->_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_details);
  p->_details = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__trailing_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_18_trailing_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__code(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5_code_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_8_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation[] = {
  {"_trailing_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__trailing_metadata, 0, 0, 0},
  {"_code", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__code, 0, 0, 0},
  {"_details", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__details, 0, 0, 0},
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec = {
  "grpc._cython.cygrpc.SendStatusFromServerOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SendStatusFromServerOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  __Pyx_default_placement_construct(&(p->_c_initial_metadata));
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_initial_metadata);
  Py_CLEAR(p->_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation); }
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation[] = {
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec = {
  "grpc._cython.cygrpc.ReceiveInitialMetadataOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveInitialMetadataOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveMessageOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  p->_message = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  Py_CLEAR(p->_message);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation[] = {
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec = {
  "grpc._cython.cygrpc.ReceiveMessageOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveMessageOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveMessageOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  __Pyx_default_placement_construct(&(p->_c_trailing_metadata));
  __Pyx_default_placement_construct(&(p->_c_details));
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_code = Py_None; Py_INCREF(Py_None);
  p->_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_error_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_c_trailing_metadata);
  __Pyx_call_destructor(p->_c_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_code);
  Py_CLEAR(p->_details);
  Py_CLEAR(p->_error_string);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  if (p->_code) {
    e = (*v)(p->_code, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation); }
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_code);
  p->_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"error_string", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation[] = {
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec = {
  "grpc._cython.cygrpc.ReceiveStatusOnClientOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveStatusOnClientOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_Operation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Operation*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  p->_cancelled = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_cancelled);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Operation(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_cancelled) {
    e = (*v)(p->_cancelled, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation); }
  tmp = ((PyObject*)p->_cancelled);
  p->_cancelled = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation__flags(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_6_flags_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation[] = {
  {"type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation[] = {
  {"_flags", __pyx_getprop_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation__flags, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec = {
  "grpc._cython.cygrpc.ReceiveCloseOnServerOperation",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ReceiveCloseOnServerOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)o);
  __Pyx_default_placement_construct(&(p->c_details));
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->c_details);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_method(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_6method_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_host(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_4host_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_deadline(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_8deadline_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallDetails[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails[] = {
  {"method", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_method, 0, 0, 0},
  {"host", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_host, 0, 0, 0},
  {"deadline", __pyx_getprop_4grpc_7_cython_6cygrpc_11CallDetails_deadline, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec = {
  "grpc._cython.cygrpc.CallDetails",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CallDetails_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallDetails = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallDetails", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallDetails, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallDetails, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_CallDetails, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallDetails, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o);
  __Pyx_default_placement_construct(&(p->c_pair));
  p->private_key = Py_None; Py_INCREF(Py_None);
  p->certificate_chain = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->c_pair);
  Py_CLEAR(p->private_key);
  Py_CLEAR(p->certificate_chain);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->private_key) {
    e = (*v)(p->private_key, a); if (e) return e;
  }
  if (p->certificate_chain) {
    e = (*v)(p->certificate_chain, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair *)o;
  tmp = ((PyObject*)p->private_key);
  p->private_key = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->certificate_chain);
  p->certificate_chain = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_private_key(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_11private_key_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_certificate_chain(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_17certificate_chain_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair[] = {
  {"private_key", __pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_private_key, 0, 0, 0},
  {"certificate_chain", __pyx_getprop_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_certificate_chain, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec = {
  "grpc._cython.cygrpc.SslPemKeyCertPair",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""SslPemKeyCertPair", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_SslPemKeyCertPair), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_SslPemKeyCertPair, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)o);
  __Pyx_default_placement_construct(&(p->c_options));
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_options);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions[] = {
  {"enable_algorithm", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_algorithm", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"is_algorithm_enabled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"to_channel_arg", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec = {
  "grpc._cython.cygrpc.CompressionOptions",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CompressionOptions", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompressionOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CompressionOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_Server __pyx_vtable_4grpc_7_cython_6cygrpc_Server;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_Server(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server;
  p->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)Py_None); Py_INCREF(Py_None);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->registered_completion_queues = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->registered_methods = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_6Server_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_6Server_21__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->backup_shutdown_queue);
  Py_CLEAR(p->references);
  Py_CLEAR(p->registered_completion_queues);
  Py_CLEAR(p->registered_methods);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->backup_shutdown_queue) {
    e = (*v)(((PyObject *)p->backup_shutdown_queue), a); if (e) return e;
  }
  if (p->references) {
    e = (*v)(p->references, a); if (e) return e;
  }
  if (p->registered_completion_queues) {
    e = (*v)(p->registered_completion_queues, a); if (e) return e;
  }
  if (p->registered_methods) {
    e = (*v)(p->registered_methods, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_Server(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)o;
  tmp = ((PyObject*)p->backup_shutdown_queue);
  p->backup_shutdown_queue = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->references);
  p->references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->registered_completion_queues);
  p->registered_completion_queues = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->registered_methods);
  p->registered_methods = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_Server[] = {
  {"request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"request_registered_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"register_completion_queue", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"register_method", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"start", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_6Server_10start},
  {"add_http2_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel_all_calls", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"destroy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_Server_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_Server},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_Server},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_Server_spec = {
  "grpc._cython.cygrpc.Server",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_Server_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_Server = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""Server", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_Server, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_Server, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_Server, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_Server, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_Server, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)o);
  p->method = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->method);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec = {
  "grpc._cython.cygrpc.RegisteredMethod",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RegisteredMethod", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RegisteredMethod), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RegisteredMethod, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag __pyx_vtable_4grpc_7_cython_6cygrpc__Tag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__Tag[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__Tag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__Tag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__Tag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__Tag_spec = {
  "grpc._cython.cygrpc._Tag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__Tag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__Tag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_Tag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__Tag, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ConnectivityTag __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag); }
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_16_ConnectivityTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_9_user_tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag[] = {
  {"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_16_ConnectivityTag__user_tag, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec = {
  "grpc._cython.cygrpc._ConnectivityTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ConnectivityTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ConnectivityTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__RequestCallTag __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag;
  __Pyx_default_placement_construct(&(p->c_invocation_metadata));
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->c_invocation_metadata);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->call);
  Py_CLEAR(p->call_details);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->call) {
    e = (*v)(((PyObject *)p->call), a); if (e) return e;
  }
  if (p->call_details) {
    e = (*v)(((PyObject *)p->call_details), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag); }
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call);
  p->call = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Call *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->call_details);
  p->call_details = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallDetails *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_RequestCallTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_9_user_tag_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag[] = {
  {"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_15_RequestCallTag__user_tag, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec = {
  "grpc._cython.cygrpc._RequestCallTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_RequestCallTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__RequestCallTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__BatchOperationTag __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->_operations = Py_None; Py_INCREF(Py_None);
  p->_retained_call = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->_operations);
  Py_CLEAR(p->_retained_call);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->_operations) {
    e = (*v)(p->_operations, a); if (e) return e;
  }
  if (p->_retained_call) {
    e = (*v)(p->_retained_call, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag); }
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_operations);
  p->_operations = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_retained_call);
  p->_retained_call = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__operations(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_11_operations_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__retained_call(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_14_retained_call_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag[] = {
  {"_operations", __pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__operations, 0, 0, 0},
  {"_retained_call", __pyx_getprop_4grpc_7_cython_6cygrpc_18_BatchOperationTag__retained_call, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec = {
  "grpc._cython.cygrpc._BatchOperationTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_BatchOperationTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__BatchOperationTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__ServerShutdownTag __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc__Tag(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__Tag*)__pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  p->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_user_tag);
  Py_CLEAR(p->_shutting_down_server);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__Tag(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_user_tag) {
    e = (*v)(p->_user_tag, a); if (e) return e;
  }
  if (p->_shutting_down_server) {
    e = (*v)(((PyObject *)p->_shutting_down_server), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag); }
  tmp = ((PyObject*)p->_user_tag);
  p->_user_tag = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutting_down_server);
  p->_shutting_down_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__user_tag(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_9_user_tag_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__shutting_down_server(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_21_shutting_down_server_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag[] = {
  {"_user_tag", __pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__user_tag, 0, 0, 0},
  {"_shutting_down_server", __pyx_getprop_4grpc_7_cython_6cygrpc_18_ServerShutdownTag__shutting_down_server, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec = {
  "grpc._cython.cygrpc._ServerShutdownTag",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ServerShutdownTag", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ServerShutdownTag, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec = {
  "grpc._cython.cygrpc.BaseCompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""BaseCompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o);
  p->loop = Py_None; Py_INCREF(Py_None);
  p->read_socket = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->loop);
  Py_CLEAR(p->read_socket);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->loop) {
    e = (*v)(p->loop, a); if (e) return e;
  }
  if (p->read_socket) {
    e = (*v)(p->read_socket, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop *)o;
  tmp = ((PyObject*)p->loop);
  p->loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->read_socket);
  p->read_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_loop(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_4loop_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_read_socket(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_11read_socket_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop[] = {
  {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop[] = {
  {"loop", __pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_loop, 0, 0, 0},
  {"read_socket", __pyx_getprop_4grpc_7_cython_6cygrpc_15_BoundEventLoop_read_socket, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec = {
  "grpc._cython.cygrpc._BoundEventLoop",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_BoundEventLoop", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__BoundEventLoop), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__BoundEventLoop, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_PollerCompletionQueue __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_BaseCompletionQueue(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_BaseCompletionQueue*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  __Pyx_default_placement_construct(&(p->_queue));
  __Pyx_default_placement_construct(&(p->_queue_mutex));
  p->_poller_thread = Py_None; Py_INCREF(Py_None);
  p->_read_socket = Py_None; Py_INCREF(Py_None);
  p->_write_socket = Py_None; Py_INCREF(Py_None);
  p->_loops = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->_queue);
  __Pyx_call_destructor(p->_queue_mutex);
  Py_CLEAR(p->_poller_thread);
  Py_CLEAR(p->_read_socket);
  Py_CLEAR(p->_write_socket);
  Py_CLEAR(p->_loops);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_BaseCompletionQueue(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_poller_thread) {
    e = (*v)(p->_poller_thread, a); if (e) return e;
  }
  if (p->_read_socket) {
    e = (*v)(p->_read_socket, a); if (e) return e;
  }
  if (p->_write_socket) {
    e = (*v)(p->_write_socket, a); if (e) return e;
  }
  if (p->_loops) {
    e = (*v)(p->_loops, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue); }
  tmp = ((PyObject*)p->_poller_thread);
  p->_poller_thread = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_read_socket);
  p->_read_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_write_socket);
  p->_write_socket = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loops);
  p->_loops = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue[] = {
  {"bind_loop", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_poll_wrapper", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_handle_events", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec = {
  "grpc._cython.cygrpc.PollerCompletionQueue",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""PollerCompletionQueue", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_PollerCompletionQueue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioRpcStatus __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p;
  PyObject *o = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus;
  p->_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_debug_error_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_details);
  Py_CLEAR(p->_trailing_metadata);
  Py_CLEAR(p->_debug_error_string);
  PyObject_GC_Track(o);
  __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_dealloc, destructor)(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  {
    traverseproc traverse = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_traverse, traverseproc);
    if (!traverse); else { e = traverse(o,v,a); if (e) return e; }
  }
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_trailing_metadata) {
    e = (*v)(p->_trailing_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)o;
  {
    inquiry clear = __Pyx_PyType_GetSlot((((PyTypeObject*)PyExc_Exception)), tp_clear, inquiry);
    if (clear) clear(o);
  }
  tmp = ((PyObject*)p->_trailing_metadata);
  p->_trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__code(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_5_code_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__details(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_8_details_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__trailing_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_18_trailing_metadata_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__debug_error_string(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_19_debug_error_string_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus[] = {
  {"_code", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__code, 0, 0, 0},
  {"_details", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__details, 0, 0, 0},
  {"_trailing_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__trailing_metadata, 0, 0, 0},
  {"_debug_error_string", __pyx_getprop_4grpc_7_cython_6cygrpc_12AioRpcStatus__debug_error_string, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec = {
  "grpc._cython.cygrpc.AioRpcStatus",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioRpcStatus", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioRpcStatus, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o);
  p->lock = Py_None; Py_INCREF(Py_None);
  p->engine = Py_None; Py_INCREF(Py_None);
  p->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_1__cinit__(o, __pyx_mstate_global->__pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->lock);
  Py_CLEAR(p->engine);
  Py_CLEAR(p->cq);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->lock) {
    e = (*v)(p->lock, a); if (e) return e;
  }
  if (p->engine) {
    e = (*v)(p->engine, a); if (e) return e;
  }
  if (p->cq) {
    e = (*v)(((PyObject *)p->cq), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)o;
  tmp = ((PyObject*)p->lock);
  p->lock = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->engine);
  p->engine = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cq);
  p->cq = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__AioState[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__AioState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__AioState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__AioState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__AioState_spec = {
  "grpc._cython.cygrpc._AioState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__AioState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__AioState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_AioState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__AioState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__AioState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackFailureHandler __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  p->_core_function_name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_error_details = Py_None; Py_INCREF(Py_None);
  p->_exception_type = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_core_function_name);
  Py_CLEAR(p->_error_details);
  Py_CLEAR(p->_exception_type);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_error_details) {
    e = (*v)(p->_error_details, a); if (e) return e;
  }
  if (p->_exception_type) {
    e = (*v)(p->_exception_type, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)o;
  tmp = ((PyObject*)p->_error_details);
  p->_error_details = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_exception_type);
  p->_exception_type = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec = {
  "grpc._cython.cygrpc.CallbackFailureHandler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallbackFailureHandler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackFailureHandler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_CallbackWrapper __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper;
  __Pyx_default_placement_construct(&(p->context));
  p->_reference_of_future = Py_None; Py_INCREF(Py_None);
  p->_reference_of_failure_handler = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->context);
  Py_CLEAR(p->_reference_of_future);
  Py_CLEAR(p->_reference_of_failure_handler);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_reference_of_future) {
    e = (*v)(p->_reference_of_future, a); if (e) return e;
  }
  if (p->_reference_of_failure_handler) {
    e = (*v)(p->_reference_of_failure_handler, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)o;
  tmp = ((PyObject*)p->_reference_of_future);
  p->_reference_of_future = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_reference_of_failure_handler);
  p->_reference_of_failure_handler = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec = {
  "grpc._cython.cygrpc.CallbackWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CallbackWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CallbackWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec = {
  "grpc._cython.cygrpc.GrpcCallWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""GrpcCallWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_GrpcCallWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc__AioCall __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall;
  p->_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)Py_None); Py_INCREF(Py_None);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_deadline = Py_None; Py_INCREF(Py_None);
  p->_done_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None); Py_INCREF(Py_None);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_waiters_status = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_waiters_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_channel);
  Py_CLEAR(p->_references);
  Py_CLEAR(p->_deadline);
  Py_CLEAR(p->_done_callbacks);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_status);
  Py_CLEAR(p->_initial_metadata);
  Py_CLEAR(p->_waiters_status);
  Py_CLEAR(p->_waiters_initial_metadata);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->_channel) {
    e = (*v)(((PyObject *)p->_channel), a); if (e) return e;
  }
  if (p->_references) {
    e = (*v)(p->_references, a); if (e) return e;
  }
  if (p->_deadline) {
    e = (*v)(p->_deadline, a); if (e) return e;
  }
  if (p->_done_callbacks) {
    e = (*v)(p->_done_callbacks, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_status) {
    e = (*v)(((PyObject *)p->_status), a); if (e) return e;
  }
  if (p->_initial_metadata) {
    e = (*v)(p->_initial_metadata, a); if (e) return e;
  }
  if (p->_waiters_status) {
    e = (*v)(p->_waiters_status, a); if (e) return e;
  }
  if (p->_waiters_initial_metadata) {
    e = (*v)(p->_waiters_initial_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall); }
  tmp = ((PyObject*)p->_channel);
  p->_channel = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_references);
  p->_references = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_deadline);
  p->_deadline = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_done_callbacks);
  p->_done_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_status);
  p->_status = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_initial_metadata);
  p->_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_waiters_status);
  p->_waiters_status = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_waiters_initial_metadata);
  p->_waiters_initial_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__channel(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_8_channel_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__status(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7_status_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__initial_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17_initial_metadata_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__AioCall[] = {
  {"_repr", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_4_repr},
  {"add_done_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_14cancel},
  {"done", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_16done},
  {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_18cancelled},
  {"status", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_20status},
  {"is_ok", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_23is_ok},
  {"initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_25initial_metadata},
  {"is_locally_cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_28is_locally_cancelled},
  {"set_internal_error", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"unary_unary", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_32unary_unary},
  {"_handle_status_once_received", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_35_handle_status_once_received},
  {"receive_serialized_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_38receive_serialized_message},
  {"send_serialized_message", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_41send_serialized_message},
  {"send_receive_close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_44send_receive_close},
  {"initiate_unary_stream", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_47initiate_unary_stream},
  {"stream_unary", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_50stream_unary},
  {"initiate_stream_stream", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_8_AioCall_53initiate_stream_stream},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__AioCall[] = {
  {"_channel", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__channel, 0, 0, 0},
  {"_status", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__status, 0, 0, 0},
  {"_initial_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_8_AioCall__initial_metadata, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__AioCall_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_repr, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__},
  {Py_tp_str, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__AioCall},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec = {
  "grpc._cython.cygrpc._AioCall",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc__AioCall_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__AioCall = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_AioCall", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__AioCall, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_7__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_4grpc_7_cython_6cygrpc_8_AioCall_9__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__AioCall, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__AioCall, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__AioCall, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__AioCall, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__AioCall, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o);
  p->loop = Py_None; Py_INCREF(Py_None);
  p->_target = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->loop);
  Py_CLEAR(p->_target);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->loop) {
    e = (*v)(p->loop, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel *)o;
  tmp = ((PyObject*)p->loop);
  p->loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioChannel[] = {
  {"check_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_6check_connectivity_state},
  {"watch_connectivity_state", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_8watch_connectivity_state},
  {"closing", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"close", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"closed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_10AioChannel_17call},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_repr, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioChannel},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec = {
  "grpc._cython.cygrpc.AioChannel",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_AioChannel_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioChannel = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioChannel", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioChannel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioChannel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_4grpc_7_cython_6cygrpc_10AioChannel_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioChannel, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioChannel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioChannel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioChannel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o);
  p->method = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->method);
  Py_CLEAR(p->invocation_metadata);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->invocation_metadata) {
    e = (*v)(p->invocation_metadata, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails *)o;
  tmp = ((PyObject*)p->invocation_metadata);
  p->invocation_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_method(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_6method_1__get__(o);
}

static PyObject *__pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_invocation_metadata(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_19invocation_metadata_1__get__(o);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails[] = {
  {"method", __pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_method, 0, 0, 0},
  {"invocation_metadata", __pyx_getprop_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_invocation_metadata, 0, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_getset, (void *)__pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec = {
  "grpc._cython.cygrpc._HandlerCallDetails",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_HandlerCallDetails", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__HandlerCallDetails), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__HandlerCallDetails, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_RPCState __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_GrpcCallWrapper(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState;
  __Pyx_default_placement_construct(&(p->details));
  __Pyx_default_placement_construct(&(p->request_metadata));
  p->server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)Py_None); Py_INCREF(Py_None);
  p->abort_exception = Py_None; Py_INCREF(Py_None);
  p->py_status_code = Py_None; Py_INCREF(Py_None);
  p->status_details = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->compression_algorithm = Py_None; Py_INCREF(Py_None);
  p->callbacks = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->details);
  __Pyx_call_destructor(p->request_metadata);
  Py_CLEAR(p->server);
  Py_CLEAR(p->abort_exception);
  Py_CLEAR(p->py_status_code);
  Py_CLEAR(p->status_details);
  Py_CLEAR(p->trailing_metadata);
  Py_CLEAR(p->compression_algorithm);
  Py_CLEAR(p->callbacks);
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_GrpcCallWrapper(o);
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  #if !CYTHON_USE_MODULE_STATE
  e = 0;
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) {
    traverseproc traverse = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, tp_traverse, traverseproc);
    if (traverse) { e = traverse(o, v, a); }
  } else
  #endif
  { e = __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState); }
  if (e) return e;
  {
    e = __Pyx_call_type_traverse(o, 0, v, a);
    if (e) return e;
  }
  if (p->server) {
    e = (*v)(((PyObject *)p->server), a); if (e) return e;
  }
  if (p->abort_exception) {
    e = (*v)(p->abort_exception, a); if (e) return e;
  }
  if (p->py_status_code) {
    e = (*v)(p->py_status_code, a); if (e) return e;
  }
  if (p->trailing_metadata) {
    e = (*v)(p->trailing_metadata, a); if (e) return e;
  }
  if (p->compression_algorithm) {
    e = (*v)(p->compression_algorithm, a); if (e) return e;
  }
  if (p->callbacks) {
    e = (*v)(p->callbacks, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)o;
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) {
    inquiry clear = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper, tp_clear, inquiry);
    if (clear) clear(o);
  } else
  #endif
  { __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState); }
  tmp = ((PyObject*)p->server);
  p->server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->abort_exception);
  p->abort_exception = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->py_status_code);
  p->py_status_code = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->trailing_metadata);
  p->trailing_metadata = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->compression_algorithm);
  p->compression_algorithm = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->callbacks);
  p->callbacks = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_RPCState[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_RPCState_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_RPCState},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec = {
  "grpc._cython.cygrpc.RPCState",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc_RPCState_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_RPCState = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""RPCState", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_RPCState, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_RPCState, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_RPCState, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_RPCState, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_RPCState, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o);
  p->_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_request_deserializer = Py_None; Py_INCREF(Py_None);
  p->_response_serializer = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_rpc_state);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_request_deserializer);
  Py_CLEAR(p->_response_serializer);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_rpc_state) {
    e = (*v)(((PyObject *)p->_rpc_state), a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_request_deserializer) {
    e = (*v)(p->_request_deserializer, a); if (e) return e;
  }
  if (p->_response_serializer) {
    e = (*v)(p->_response_serializer, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)o;
  tmp = ((PyObject*)p->_rpc_state);
  p->_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_request_deserializer);
  p->_request_deserializer = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_response_serializer);
  p->_response_serializer = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext[] = {
  {"read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"send_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"abort", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"abort_with_status", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"invocation_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_next_message_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identity_key", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"auth_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_done_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"done", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"cancelled", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec = {
  "grpc._cython.cygrpc._ServicerContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ServicerContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ServicerContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ServicerContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o);
  p->_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  p->_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_context);
  Py_CLEAR(p->_callbacks);
  Py_CLEAR(p->_loop);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_context) {
    e = (*v)(((PyObject *)p->_context), a); if (e) return e;
  }
  if (p->_callbacks) {
    e = (*v)(p->_callbacks, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext *)o;
  tmp = ((PyObject*)p->_context);
  p->_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_callbacks);
  p->_callbacks = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext[] = {
  {"abort", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"send_initial_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_trailing_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"invocation_metadata", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_code", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_details", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"set_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"disable_next_message_compression", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_callback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identities", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"peer_identity_key", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"auth_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"time_remaining", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_doc, (void *)PyDoc_STR("Sync servicer context for sync handler compatibility.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec = {
  "grpc._cython.cygrpc._SyncServicerContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_SyncServicerContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__SyncServicerContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Sync servicer context for sync handler compatibility."), /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__SyncServicerContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o);
  p->_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  p->_agen = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_servicer_context);
  Py_CLEAR(p->_agen);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_servicer_context) {
    e = (*v)(((PyObject *)p->_servicer_context), a); if (e) return e;
  }
  if (p->_agen) {
    e = (*v)(p->_agen, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver *)o;
  tmp = ((PyObject*)p->_servicer_context);
  p->_servicer_context = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ServicerContext *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_agen);
  p->_agen = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__(self);
}
static PyObject *__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
  return __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__(self);
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver[] = {
  {"_async_message_receiver", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_16_MessageReceiver_2_async_message_receiver},
  {"__aiter__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__, METH_NOARGS|METH_COEXIST, 0},
  {"__anext__", (PyCFunction)__pyx_specialmethod___pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver},
  #if defined(Py_am_aiter)
  {Py_am_aiter, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__},
  #endif
  #if defined(Py_am_anext)
  {Py_am_anext, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__},
  #endif
  {Py_tp_doc, (void *)PyDoc_STR("Bridge between the async generator API and the reader-writer API.")},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec = {
  "grpc._cython.cygrpc._MessageReceiver",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_slots,
};
#else

static __Pyx_PyAsyncMethodsStruct __pyx_tp_as_async__MessageReceiver = {
  0, /*am_await*/
  __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_6__aiter__, /*am_aiter*/
  __pyx_pw_4grpc_7_cython_6cygrpc_16_MessageReceiver_8__anext__, /*am_anext*/
  0, /*am_send*/
};

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_MessageReceiver", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__MessageReceiver), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  (PyAsyncMethods*)&__pyx_tp_as_async__MessageReceiver, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  PyDoc_STR("Bridge between the async generator API and the reader-writer API."), /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__MessageReceiver, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter[] = {
  {"check_before_request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_decrease_active_rpcs_count", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"decrease_once_finished", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec = {
  "grpc._cython.cygrpc._ConcurrentRpcLimiter",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_ConcurrentRpcLimiter", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_AioServer __pyx_vtable_4grpc_7_cython_6cygrpc_AioServer;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o);
  p->__pyx_vtab = __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer;
  p->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  p->_generic_handlers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_loop = Py_None; Py_INCREF(Py_None);
  p->_serving_task = Py_None; Py_INCREF(Py_None);
  p->_shutdown_lock = Py_None; Py_INCREF(Py_None);
  p->_shutdown_completed = Py_None; Py_INCREF(Py_None);
  p->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)Py_None); Py_INCREF(Py_None);
  p->_crash_exception = Py_None; Py_INCREF(Py_None);
  p->_interceptors = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_thread_pool = Py_None; Py_INCREF(Py_None);
  p->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_29__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_server);
  Py_CLEAR(p->_generic_handlers);
  Py_CLEAR(p->_loop);
  Py_CLEAR(p->_serving_task);
  Py_CLEAR(p->_shutdown_lock);
  Py_CLEAR(p->_shutdown_completed);
  Py_CLEAR(p->_shutdown_callback_wrapper);
  Py_CLEAR(p->_crash_exception);
  Py_CLEAR(p->_interceptors);
  Py_CLEAR(p->_thread_pool);
  Py_CLEAR(p->_limiter);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->_server) {
    e = (*v)(((PyObject *)p->_server), a); if (e) return e;
  }
  if (p->_generic_handlers) {
    e = (*v)(p->_generic_handlers, a); if (e) return e;
  }
  if (p->_loop) {
    e = (*v)(p->_loop, a); if (e) return e;
  }
  if (p->_serving_task) {
    e = (*v)(p->_serving_task, a); if (e) return e;
  }
  if (p->_shutdown_lock) {
    e = (*v)(p->_shutdown_lock, a); if (e) return e;
  }
  if (p->_shutdown_completed) {
    e = (*v)(p->_shutdown_completed, a); if (e) return e;
  }
  if (p->_shutdown_callback_wrapper) {
    e = (*v)(((PyObject *)p->_shutdown_callback_wrapper), a); if (e) return e;
  }
  if (p->_crash_exception) {
    e = (*v)(p->_crash_exception, a); if (e) return e;
  }
  if (p->_interceptors) {
    e = (*v)(p->_interceptors, a); if (e) return e;
  }
  if (p->_thread_pool) {
    e = (*v)(p->_thread_pool, a); if (e) return e;
  }
  if (p->_limiter) {
    e = (*v)(((PyObject *)p->_limiter), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *)o;
  tmp = ((PyObject*)p->_server);
  p->_server = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_generic_handlers);
  p->_generic_handlers = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_loop);
  p->_loop = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_serving_task);
  p->_serving_task = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_lock);
  p->_shutdown_lock = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_completed);
  p->_shutdown_completed = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_shutdown_callback_wrapper);
  p->_shutdown_callback_wrapper = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_crash_exception);
  p->_crash_exception = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_interceptors);
  p->_interceptors = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_thread_pool);
  p->_thread_pool = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_limiter);
  p->_limiter = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_AioServer[] = {
  {"add_generic_rpc_handlers", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_insecure_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"add_secure_port", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_request_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_server_main_loop", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_serving_task_crash_handler", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_14_serving_task_crash_handler},
  {"start", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"_start_shutting_down", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_19_start_shutting_down},
  {"shutdown", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_4grpc_7_cython_6cygrpc_9AioServer_22shutdown},
  {"wait_for_termination", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"is_running", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_AioServer_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_AioServer},
  {Py_tp_init, (void *)__pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec = {
  "grpc._cython.cygrpc.AioServer",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_4grpc_7_cython_6cygrpc_AioServer_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_AioServer = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""AioServer", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_AioServer, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc_AioServer, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc_AioServer, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_AioServer, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_4grpc_7_cython_6cygrpc_9AioServer_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_AioServer, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)o);
  __Pyx_default_placement_construct(&(p->arg));
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->arg);
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec = {
  "grpc._cython.cygrpc._GrpcArgWrapper",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""_GrpcArgWrapper", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc__GrpcArgWrapper), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc__GrpcArgWrapper, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_InsecureChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  return o;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec = {
  "grpc._cython.cygrpc.InsecureChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""InsecureChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_InsecureChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *p;
  PyObject *o = __pyx_tp_new_4grpc_7_cython_6cygrpc_ChannelCredentials(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4grpc_7_cython_6cygrpc_ChannelCredentials*)__pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  if (unlikely(__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec = {
  "grpc._cython.cygrpc.ComputeEngineChannelCredentials",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""ComputeEngineChannelCredentials", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_ChannelCredentials, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_4grpc_7_cython_6cygrpc_CensusContext[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext},
  {Py_tp_methods, (void *)__pyx_methods_4grpc_7_cython_6cygrpc_CensusContext},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec = {
  "grpc._cython.cygrpc.CensusContext",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_4grpc_7_cython_6cygrpc_CensusContext_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc_CensusContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""CensusContext", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_CensusContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc_CensusContext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4grpc_7_cython_6cygrpc_CensusContext, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc_CensusContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_call_state);
  Py_CLEAR(p->__pyx_v_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_call_state) {
    e = (*v)(((PyObject *)p->__pyx_v_call_state), a); if (e) return e;
  }
  if (p->__pyx_v_state) {
    e = (*v)(((PyObject *)p->__pyx_v_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call *)o;
  tmp = ((PyObject*)p->__pyx_v_call_state);
  p->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_state);
  p->__pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_SegregatedCall *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_1_next_event",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_1_next_event", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_call_state);
  Py_CLEAR(p->__pyx_v_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_call_state) {
    e = (*v)(((PyObject *)p->__pyx_v_call_state), a); if (e) return e;
  }
  if (p->__pyx_v_state) {
    e = (*v)(((PyObject *)p->__pyx_v_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call *)o;
  tmp = ((PyObject*)p->__pyx_v_call_state);
  p->__pyx_v_call_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_state);
  p->__pyx_v_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_Channel *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_3_next_call_event",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_3_next_call_event", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_6_genexpr",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_6_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_ctx);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_ctx) {
    e = (*v)(p->__pyx_v_ctx, a); if (e) return e;
  }
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context *)o;
  tmp = ((PyObject*)p->__pyx_v_ctx);
  p->__pyx_v_ctx = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_7__run_with_context",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_7__run_with_context", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context *)o;
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_8__run_with_context",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_8__run_with_context", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_target);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_target) {
    e = (*v)(p->__pyx_v_target, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ *)o;
  tmp = ((PyObject*)p->__pyx_v_target);
  p->__pyx_v_target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_9___init__",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_9___init__", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_agen);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_response);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_agen) {
    e = (*v)(p->__pyx_v_agen, a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_response) {
    e = (*v)(p->__pyx_v_response, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_10_async_generator_to_generator",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_10_async_generator_to_generator", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_gen);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_queue);
  Py_CLEAR(p->__pyx_v_response);
  Py_CLEAR(p->__pyx_v_thread_pool);
  Py_CLEAR(p->__pyx_v_yield_to_queue);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_gen) {
    e = (*v)(p->__pyx_v_gen, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_queue) {
    e = (*v)(p->__pyx_v_queue, a); if (e) return e;
  }
  if (p->__pyx_v_response) {
    e = (*v)(p->__pyx_v_response, a); if (e) return e;
  }
  if (p->__pyx_v_thread_pool) {
    e = (*v)(p->__pyx_v_thread_pool, a); if (e) return e;
  }
  if (p->__pyx_v_yield_to_queue) {
    e = (*v)(p->__pyx_v_yield_to_queue, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_11_generator_to_async_generator",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_11_generator_to_async_generator", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o);
  __Pyx_default_placement_construct(&(p->__pyx_v_c_event));
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->__pyx_v_c_event);
  Py_CLEAR(p->__pyx_v_batch_operation_tag);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_grpc_call_error_string);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_operations);
  Py_CLEAR(p->__pyx_v_wrapper);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_batch_operation_tag) {
    e = (*v)(((PyObject *)p->__pyx_v_batch_operation_tag), a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_error_string) {
    e = (*v)(p->__pyx_v_grpc_call_error_string, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_operations) {
    e = (*v)(p->__pyx_v_operations, a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_12_execute_batch",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_12_execute_batch", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_e);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_receive_op);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_e) {
    e = (*v)(p->__pyx_v_e, a); if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_receive_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_op), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_13__receive_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_13__receive_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_send_initial_metadata_op);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_send_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_initial_metadata_op), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_14__send_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_14__send_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_15__send_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_15__send_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_16__receive_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_16__receive_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_details);
  Py_CLEAR(p->__pyx_v_grpc_call_wrapper);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_send_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_trailing_metadata);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_grpc_call_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_grpc_call_wrapper), a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_send_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_trailing_metadata) {
    e = (*v)(p->__pyx_v_trailing_metadata, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_17__send_error_status_from_server",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_17__send_error_status_from_server", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_18_status",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_18_status", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_19_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_19_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_receive_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_receive_message_op);
  Py_CLEAR(p->__pyx_v_receive_status_on_client_op);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_send_close_op);
  Py_CLEAR(p->__pyx_v_send_message_op);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_receive_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_status_on_client_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_status_on_client_op), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_send_close_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_close_op), a); if (e) return e;
  }
  if (p->__pyx_v_send_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_message_op), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_20_unary_unary",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_20_unary_unary", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_21__handle_status_once_received",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_21__handle_status_once_received", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_received_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_22_receive_serialized_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_22_receive_serialized_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_23_send_serialized_message",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_23_send_serialized_message", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_24_send_receive_close",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_24_send_receive_close", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_batch_error);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_initial_metadata_op);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_outbound_ops);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_send_close_op);
  Py_CLEAR(p->__pyx_v_send_message_op);
  Py_CLEAR(p->__pyx_v_status_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_batch_error) {
    e = (*v)(p->__pyx_v_batch_error, a); if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_initial_metadata_op) {
    e = (*v)(((PyObject *)p->__pyx_v_initial_metadata_op), a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_ops) {
    e = (*v)(p->__pyx_v_outbound_ops, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_send_close_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_close_op), a); if (e) return e;
  }
  if (p->__pyx_v_send_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_send_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_status_task) {
    e = (*v)(p->__pyx_v_status_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_25_initiate_unary_stream",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_25_initiate_unary_stream", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_inbound_ops);
  Py_CLEAR(p->__pyx_v_metadata_sent_observer);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_receive_message_op);
  Py_CLEAR(p->__pyx_v_receive_status_on_client_op);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_inbound_ops) {
    e = (*v)(p->__pyx_v_inbound_ops, a); if (e) return e;
  }
  if (p->__pyx_v_metadata_sent_observer) {
    e = (*v)(p->__pyx_v_metadata_sent_observer, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_receive_message_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_message_op), a); if (e) return e;
  }
  if (p->__pyx_v_receive_status_on_client_op) {
    e = (*v)(((PyObject *)p->__pyx_v_receive_status_on_client_op), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_26_stream_unary",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_26_stream_unary", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_batch_error);
  Py_CLEAR(p->__pyx_v_context);
  Py_CLEAR(p->__pyx_v_metadata_sent_observer);
  Py_CLEAR(p->__pyx_v_outbound_initial_metadata);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_status_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_batch_error) {
    e = (*v)(p->__pyx_v_batch_error, a); if (e) return e;
  }
  if (p->__pyx_v_context) {
    e = (*v)(p->__pyx_v_context, a); if (e) return e;
  }
  if (p->__pyx_v_metadata_sent_observer) {
    e = (*v)(p->__pyx_v_metadata_sent_observer, a); if (e) return e;
  }
  if (p->__pyx_v_outbound_initial_metadata) {
    e = (*v)(p->__pyx_v_outbound_initial_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_status_task) {
    e = (*v)(p->__pyx_v_status_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_27_initiate_stream_stream",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_27_initiate_stream_stream", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  p = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o);
  __Pyx_default_placement_construct(&(p->__pyx_v_c_deadline));
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->__pyx_v_c_deadline);
  Py_CLEAR(p->__pyx_v_deadline);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_wrapper);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_deadline) {
    e = (*v)(p->__pyx_v_deadline, a); if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_28_watch_connectivity_state",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_28_watch_connectivity_state", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_raw_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_29_read",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_29_read", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_message) {
    e = (*v)(p->__pyx_v_message, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_30_write",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_30_write", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_31_send_initial_metadata",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_31_send_initial_metadata", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_code);
  Py_CLEAR(p->__pyx_v_details);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_trailing_metadata);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_code) {
    e = (*v)(p->__pyx_v_code, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_trailing_metadata) {
    e = (*v)(p->__pyx_v_trailing_metadata, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_32_abort",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_32_abort", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_status);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_status) {
    e = (*v)(p->__pyx_v_status, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_33_abort_with_status",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_33_abort_with_status", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_continuation);
  Py_CLEAR(p->__pyx_v_handler_call_details);
  Py_CLEAR(p->__pyx_v_interceptor);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_query_handler);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_continuation) {
    e = (*v)(p->__pyx_v_continuation, a); if (e) return e;
  }
  if (p->__pyx_v_handler_call_details) {
    e = (*v)(p->__pyx_v_handler_call_details, a); if (e) return e;
  }
  if (p->__pyx_v_interceptor) {
    e = (*v)(p->__pyx_v_interceptor, a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_query_handler) {
    e = (*v)(p->__pyx_v_query_handler, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_34__run_interceptor",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_34__run_interceptor", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_generic_handlers);
  Py_CLEAR(p->__pyx_v_handler_call_details);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_metadata);
  Py_CLEAR(p->__pyx_v_method);
  Py_CLEAR(p->__pyx_v_query_handlers);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_generic_handlers) {
    e = (*v)(p->__pyx_v_generic_handlers, a); if (e) return e;
  }
  if (p->__pyx_v_handler_call_details) {
    e = (*v)(((PyObject *)p->__pyx_v_handler_call_details), a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_metadata) {
    e = (*v)(p->__pyx_v_metadata, a); if (e) return e;
  }
  if (p->__pyx_v_query_handlers) {
    e = (*v)(p->__pyx_v_query_handlers, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_35__find_method_handler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_35__find_method_handler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_callback);
  Py_CLEAR(p->__pyx_v_finish_ops);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_response_message);
  Py_CLEAR(p->__pyx_v_response_raw);
  Py_CLEAR(p->__pyx_v_response_serializer);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  Py_CLEAR(p->__pyx_v_sync_servicer_context);
  Py_CLEAR(p->__pyx_v_unary_handler);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_callback) {
    e = (*v)(p->__pyx_v_callback, a); if (e) return e;
  }
  if (p->__pyx_v_finish_ops) {
    e = (*v)(p->__pyx_v_finish_ops, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_request) {
    e = (*v)(p->__pyx_v_request, a); if (e) return e;
  }
  if (p->__pyx_v_response_message) {
    e = (*v)(p->__pyx_v_response_message, a); if (e) return e;
  }
  if (p->__pyx_v_response_serializer) {
    e = (*v)(p->__pyx_v_response_serializer, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_sync_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_sync_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_unary_handler) {
    e = (*v)(p->__pyx_v_unary_handler, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_36__finish_handler_with_unary_response",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_36__finish_handler_with_unary_response", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_async_response_generator);
  Py_CLEAR(p->__pyx_v_finish_ops);
  Py_CLEAR(p->__pyx_v_gen);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_request);
  Py_CLEAR(p->__pyx_v_response_message);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  Py_CLEAR(p->__pyx_v_stream_handler);
  Py_CLEAR(p->__pyx_v_sync_servicer_context);
  Py_CLEAR(p->__pyx_t_0);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_async_response_generator) {
    e = (*v)(p->__pyx_v_async_response_generator, a); if (e) return e;
  }
  if (p->__pyx_v_finish_ops) {
    e = (*v)(p->__pyx_v_finish_ops, a); if (e) return e;
  }
  if (p->__pyx_v_gen) {
    e = (*v)(p->__pyx_v_gen, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_request) {
    e = (*v)(p->__pyx_v_request, a); if (e) return e;
  }
  if (p->__pyx_v_response_message) {
    e = (*v)(p->__pyx_v_response_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_v_stream_handler) {
    e = (*v)(p->__pyx_v_stream_handler, a); if (e) return e;
  }
  if (p->__pyx_v_sync_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_sync_servicer_context), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_37__finish_handler_with_stream_responses",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_37__finish_handler_with_stream_responses", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_message);
  Py_CLEAR(p->__pyx_v_request_raw);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_message) {
    e = (*v)(p->__pyx_v_request_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_38__handle_unary_unary_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_38__handle_unary_unary_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_message);
  Py_CLEAR(p->__pyx_v_request_raw);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_message) {
    e = (*v)(p->__pyx_v_request_message, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_39__handle_unary_stream_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_39__handle_unary_stream_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_message);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_message) {
    e = (*v)(p->__pyx_v_message, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_40__async_message_receiver",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_40__async_message_receiver", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_41___anext__",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_41___anext__", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_iterator);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_iterator) {
    e = (*v)(p->__pyx_v_request_iterator, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_42__handle_stream_unary_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_42__handle_stream_unary_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_request_iterator);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_servicer_context);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_request_iterator) {
    e = (*v)(p->__pyx_v_request_iterator, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_servicer_context) {
    e = (*v)(((PyObject *)p->__pyx_v_servicer_context), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_43__handle_stream_stream_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_43__handle_stream_stream_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_e);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_status_code);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  Py_CLEAR(p->__pyx_t_6);
  Py_CLEAR(p->__pyx_t_7);
  Py_CLEAR(p->__pyx_t_8);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_e) {
    e = (*v)(p->__pyx_v_e, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_status_code) {
    e = (*v)(p->__pyx_v_status_code, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  if (p->__pyx_t_6) {
    e = (*v)(p->__pyx_t_6, a); if (e) return e;
  }
  if (p->__pyx_t_7) {
    e = (*v)(p->__pyx_t_7, a); if (e) return e;
  }
  if (p->__pyx_t_8) {
    e = (*v)(p->__pyx_t_8, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_44__handle_exceptions",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_44__handle_exceptions", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_rpc_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler *)o;
  tmp = ((PyObject*)p->__pyx_v_rpc_state);
  p->__pyx_v_rpc_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_clear, (void *)__pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_traverse*/
  __pyx_tp_clear_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_op);
  Py_CLEAR(p->__pyx_v_ops);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_op) {
    e = (*v)(((PyObject *)p->__pyx_v_op), a); if (e) return e;
  }
  if (p->__pyx_v_ops) {
    e = (*v)(p->__pyx_v_ops, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_46__handle_cancellation_from_core",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_46__handle_cancellation_from_core", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_47__schedule_rpc_coro",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_47__schedule_rpc_coro", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_generic_handlers);
  Py_CLEAR(p->__pyx_v_interceptors);
  Py_CLEAR(p->__pyx_v_loop);
  Py_CLEAR(p->__pyx_v_method_handler);
  Py_CLEAR(p->__pyx_v_rpc_state);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_generic_handlers) {
    e = (*v)(p->__pyx_v_generic_handlers, a); if (e) return e;
  }
  if (p->__pyx_v_interceptors) {
    e = (*v)(p->__pyx_v_interceptors, a); if (e) return e;
  }
  if (p->__pyx_v_loop) {
    e = (*v)(p->__pyx_v_loop, a); if (e) return e;
  }
  if (p->__pyx_v_method_handler) {
    e = (*v)(p->__pyx_v_method_handler, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_48__handle_rpc",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_48__handle_rpc", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_future);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_wrapper);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_future) {
    e = (*v)(p->__pyx_v_future, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_wrapper) {
    e = (*v)(((PyObject *)p->__pyx_v_wrapper), a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_49__request_call",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_49__request_call", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_rpc_coro);
  Py_CLEAR(p->__pyx_v_rpc_state);
  Py_CLEAR(p->__pyx_v_rpc_task);
  Py_CLEAR(p->__pyx_v_rpc_tasks);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_server_started);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_rpc_coro) {
    e = (*v)(p->__pyx_v_rpc_coro, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_state) {
    e = (*v)(((PyObject *)p->__pyx_v_rpc_state), a); if (e) return e;
  }
  if (p->__pyx_v_rpc_task) {
    e = (*v)(p->__pyx_v_rpc_task, a); if (e) return e;
  }
  if (p->__pyx_v_rpc_tasks) {
    e = (*v)(p->__pyx_v_rpc_tasks, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_server_started) {
    e = (*v)(p->__pyx_v_server_started, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_50__server_main_loop",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_50__server_main_loop", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_server_started);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_server_started) {
    e = (*v)(p->__pyx_v_server_started, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_51_start",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_51_start", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_52__start_shutting_down",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_52__start_shutting_down", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_grace);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  Py_CLEAR(p->__pyx_t_3);
  Py_CLEAR(p->__pyx_t_4);
  Py_CLEAR(p->__pyx_t_5);
  Py_CLEAR(p->__pyx_t_6);
  Py_CLEAR(p->__pyx_t_7);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_grace) {
    e = (*v)(p->__pyx_v_grace, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  if (p->__pyx_t_3) {
    e = (*v)(p->__pyx_t_3, a); if (e) return e;
  }
  if (p->__pyx_t_4) {
    e = (*v)(p->__pyx_t_4, a); if (e) return e;
  }
  if (p->__pyx_t_5) {
    e = (*v)(p->__pyx_t_5, a); if (e) return e;
  }
  if (p->__pyx_t_6) {
    e = (*v)(p->__pyx_t_6, a); if (e) return e;
  }
  if (p->__pyx_t_7) {
    e = (*v)(p->__pyx_t_7, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_53_shutdown",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_53_shutdown", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[--__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination];
    memset(o, 0, sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyObject *o) {
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_timeout);
  Py_CLEAR(p->__pyx_t_0);
  Py_CLEAR(p->__pyx_t_1);
  Py_CLEAR(p->__pyx_t_2);
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)))) {
    __pyx_mstate_global->__pyx_freelist_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination[__pyx_mstate_global->__pyx_freecount_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination++] = ((struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *p = (struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_timeout) {
    e = (*v)(p->__pyx_v_timeout, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  if (p->__pyx_t_1) {
    e = (*v)(p->__pyx_t_1, a); if (e) return e;
  }
  if (p->__pyx_t_2) {
    e = (*v)(p->__pyx_t_2, a); if (e) return e;
  }
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {Py_tp_new, (void *)__pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination},
  {0, 0},
};
static PyType_Spec __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct_54_wait_for_termination",
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_slots,
};
#else

static PyTypeObject __pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct_54_wait_for_termination", /*tp_name*/
  sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[--__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)))) {
    __pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_[__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[--__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)))) {
    __pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg[__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[--__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)))) {
    __pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_[__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_USE_FREELISTS
  if (likely((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)))) {
    o = (PyObject*)__pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[--__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_FREELISTS
  if (((int)(__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)))) {
    __pyx_mstate_global->__pyx_freelist___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args[__pyx_mstate_global->__pyx_freecount___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec = {
  "grpc._cython.cygrpc.__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = {
  PyVarObject_HEAD_INIT(0, 0)
  "grpc._cython.cygrpc.""__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
/* #### Code section: initfunc_declarations ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
/* #### Code section: init_module ### */

static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__global_aio_state = ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER = ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)Py_None); Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  if (__Pyx_ExportVoidPtr(__pyx_mstate_global->__pyx_n_u_g_interrupt_check_period_ms, (void *)&__pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportVoidPtr(__pyx_mstate_global->__pyx_n_u_default_vtable, (void *)&__pyx_v_4grpc_7_cython_6cygrpc_default_vtable, "grpc_arg_pointer_vtable") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  if (__Pyx_ExportFunction("_wrap_grpc_arg", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__wrap_grpc_arg, "PyObject *(grpc_arg)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_unwrap_grpc_arg", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__unwrap_grpc_arg, "grpc_arg (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_call_error_no_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_call_error_no_metadata, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_and_raise_call_error_no_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_and_raise_call_error_no_metadata, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_check_call_error", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__check_call_error, "PyObject *(PyObject *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_get_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__get_metadata, "int (void *, grpc_auth_metadata_context, grpc_credentials_plugin_metadata_cb, void *, grpc_metadata *, size_t *, grpc_status_code *, char const **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_destroy", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__destroy, "void (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_composition", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__composition, "grpc_call_credentials *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_next", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__next, "grpc_event (grpc_completion_queue *, PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_interpret_event", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__interpret_event, "PyObject *(grpc_event)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_store_c_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__store_c_metadata, "void (PyObject *, grpc_metadata **, size_t *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_release_c_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__release_c_metadata, "void (grpc_metadata *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_metadatum", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__metadatum, "PyObject *(grpc_slice, grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_metadata", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__metadata, "PyObject *(grpc_metadata_array *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_slice_bytes", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__slice_bytes, "PyObject *(grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_copy_slice", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__copy_slice, "grpc_slice (grpc_slice)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_slice_from_bytes", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__slice_from_bytes, "grpc_slice (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ssl_roots_override_callback", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_ssl_roots_override_callback, "grpc_ssl_roots_override_result (char **)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_timespec_from_time", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__timespec_from_time, "gpr_timespec (PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_time_from_timespec", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__time_from_timespec, "double (gpr_timespec)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_copy_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer, "void *(void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_destroy_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer, "void (void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_compare_pointer", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__compare_pointer, "int (void *, void *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_custom_op_on_c_call", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__custom_op_on_c_call, "PyObject *(int, grpc_call *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gevent_increment_channel_count", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_gevent_increment_channel_count, "void (int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gevent_decrement_channel_count", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_gevent_decrement_channel_count, "void (int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__prefork", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___prefork, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__postfork_parent", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___postfork_parent, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__postfork_child", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc___postfork_child, "void (void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("_unified_socket_write", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc__unified_socket_write, "void (int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("global_completion_queue", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_global_completion_queue, "grpc_completion_queue *(void)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("init_grpc_aio", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_init_grpc_aio, "PyObject *(int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("shutdown_grpc_aio", (void (*)(void))__pyx_f_4grpc_7_cython_6cygrpc_shutdown_grpc_aio, "PyObject *(int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg = &__pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArg.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArg *, PyObject *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_11_ChannelArg_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg)) __PYX_ERR(3, 32, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ChannelArg, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArg) < 0) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs = &__pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ChannelArgs.c_args = (grpc_channel_args *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ChannelArgs *))__pyx_f_4grpc_7_cython_6cygrpc_12_ChannelArgs_c_args;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs)) __PYX_ERR(3, 64, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelArgs;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ChannelArgs, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelArgs) < 0) __PYX_ERR(3, 64, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Call_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call)) __PYX_ERR(4, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Call_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call = &__pyx_type_4grpc_7_cython_6cygrpc_Call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Call, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Call) < 0) __PYX_ERR(4, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState = &__pyx_vtable_4grpc_7_cython_6cygrpc__CallState;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.maybe_save_registered_method = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_save_registered_method;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.maybe_set_client_call_tracer_on_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *, PyObject *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_maybe_set_client_call_tracer_on_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc__CallState.delete_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__CallState *))__pyx_f_4grpc_7_cython_6cygrpc_10_CallState_delete_call;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__CallState_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState)) __PYX_ERR(12, 70, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__CallState_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState = &__pyx_type_4grpc_7_cython_6cygrpc__CallState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState, __pyx_vtabptr_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallState, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__CallState) < 0) __PYX_ERR(12, 70, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState)) __PYX_ERR(12, 97, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ChannelState_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState = &__pyx_type_4grpc_7_cython_6cygrpc__ChannelState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ChannelState, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ChannelState) < 0) __PYX_ERR(12, 97, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall)) __PYX_ERR(12, 320, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall = &__pyx_type_4grpc_7_cython_6cygrpc_IntegratedCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IntegratedCall, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall) < 0) __PYX_ERR(12, 320, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall)) __PYX_ERR(12, 366, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall = &__pyx_type_4grpc_7_cython_6cygrpc_SegregatedCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SegregatedCall, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall) < 0) __PYX_ERR(12, 366, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Channel_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel)) __PYX_ERR(12, 491, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Channel_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel = &__pyx_type_4grpc_7_cython_6cygrpc_Channel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Channel, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel) < 0) __PYX_ERR(12, 491, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle)) __PYX_ERR(12, 108, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallHandle_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle = &__pyx_type_4grpc_7_cython_6cygrpc_CallHandle;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallHandle, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallHandle) < 0) __PYX_ERR(12, 108, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallCredentials.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_15CallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials)) __PYX_ERR(5, 32, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials) < 0) __PYX_ERR(5, 32, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials.__pyx_base.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials)) __PYX_ERR(5, 122, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MetadataPluginCallCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_MetadataPluginCallCredentials) < 0) __PYX_ERR(5, 122, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_CallCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeCallCredentials.__pyx_base.c = (grpc_call_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials)) __PYX_ERR(5, 159, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CompositeCallCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CompositeCallCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeCallCredentials) < 0) __PYX_ERR(5, 159, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ChannelCredentials.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_18ChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials)) __PYX_ERR(5, 168, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials) < 0) __PYX_ERR(5, 168, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU)) __PYX_ERR(5, 174, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 174, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU = &__pyx_type_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 174, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SSLSessionCacheLRU, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 174, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLSessionCacheLRU) < 0) __PYX_ERR(5, 174, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SSLChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials)) __PYX_ERR(5, 189, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_SSLChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SSLChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SSLChannelCredentials) < 0) __PYX_ERR(5, 189, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompositeChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials)) __PYX_ERR(5, 223, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_CompositeChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CompositeChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompositeChannelCredentials) < 0) __PYX_ERR(5, 223, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_XDSChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials)) __PYX_ERR(5, 242, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_XDSChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_XDSChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_XDSChannelCredentials) < 0) __PYX_ERR(5, 242, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig)) __PYX_ERR(5, 254, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 254, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig = &__pyx_type_4grpc_7_cython_6cygrpc_ServerCertificateConfig;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 254, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ServerCertificateConfig, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 254, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCertificateConfig) < 0) __PYX_ERR(5, 254, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials)) __PYX_ERR(5, 269, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 269, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ServerCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 269, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ServerCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 269, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerCredentials) < 0) __PYX_ERR(5, 269, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_LocalChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials)) __PYX_ERR(5, 410, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_LocalChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LocalChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_LocalChannelCredentials) < 0) __PYX_ERR(5, 410, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ALTSChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials)) __PYX_ERR(5, 449, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ALTSChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ALTSChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ALTSChannelCredentials) < 0) __PYX_ERR(5, 449, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg)) __PYX_ERR(35, 22, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg = &__pyx_type_4grpc_7_cython_6cygrpc__LatentEventArg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LatentEventArg, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__LatentEventArg) < 0) __PYX_ERR(35, 22, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CompletionQueue._interpret_event = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15CompletionQueue__interpret_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue)) __PYX_ERR(15, 99, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_CompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CompletionQueue, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue) < 0) __PYX_ERR(15, 99, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent)) __PYX_ERR(17, 15, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent = &__pyx_type_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseEvent, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent) < 0) __PYX_ERR(17, 15, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent)) __PYX_ERR(16, 15, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent = &__pyx_type_4grpc_7_cython_6cygrpc_ConnectivityEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConnectivityEvent, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ConnectivityEvent) < 0) __PYX_ERR(16, 15, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent)) __PYX_ERR(16, 24, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent = &__pyx_type_4grpc_7_cython_6cygrpc_RequestCallEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RequestCallEvent, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RequestCallEvent) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent)) __PYX_ERR(16, 37, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent = &__pyx_type_4grpc_7_cython_6cygrpc_BatchOperationEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BatchOperationEvent, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BatchOperationEvent) < 0) __PYX_ERR(16, 37, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent)) __PYX_ERR(16, 48, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent = &__pyx_type_4grpc_7_cython_6cygrpc_ServerShutdownEvent;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseEvent;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ServerShutdownEvent, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ServerShutdownEvent) < 0) __PYX_ERR(16, 48, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation = &__pyx_vtable_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Operation.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_9Operation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Operation.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_9Operation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Operation_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation)) __PYX_ERR(19, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Operation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation = &__pyx_type_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Operation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation) < 0) __PYX_ERR(19, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation)) __PYX_ERR(19, 25, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SendInitialMetadataOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendMessageOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_20SendMessageOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation)) __PYX_ERR(19, 49, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendMessageOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SendMessageOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation) < 0) __PYX_ERR(19, 49, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation)) __PYX_ERR(19, 75, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SendCloseFromClientOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation) < 0) __PYX_ERR(19, 75, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation)) __PYX_ERR(19, 91, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation = &__pyx_type_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SendStatusFromServerOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation) < 0) __PYX_ERR(19, 91, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation)) __PYX_ERR(19, 122, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReceiveInitialMetadataOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveMessageOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation)) __PYX_ERR(19, 145, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveMessageOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReceiveMessageOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation) < 0) __PYX_ERR(19, 145, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation)) __PYX_ERR(19, 187, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation) < 0) __PYX_ERR(19, 187, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = &__pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_Operation;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base.c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_c;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation.__pyx_base.un_c = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *))__pyx_f_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_un_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation)) __PYX_ERR(19, 233, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation = &__pyx_type_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Operation;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReceiveCloseOnServerOperation, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation) < 0) __PYX_ERR(19, 233, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails)) __PYX_ERR(21, 130, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallDetails_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails = &__pyx_type_4grpc_7_cython_6cygrpc_CallDetails;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallDetails, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallDetails) < 0) __PYX_ERR(21, 130, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair)) __PYX_ERR(21, 155, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair = &__pyx_type_4grpc_7_cython_6cygrpc_SslPemKeyCertPair;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SslPemKeyCertPair, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_SslPemKeyCertPair) < 0) __PYX_ERR(21, 155, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions)) __PYX_ERR(21, 164, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions = &__pyx_type_4grpc_7_cython_6cygrpc_CompressionOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CompressionOptions, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions) < 0) __PYX_ERR(21, 164, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server = &__pyx_vtable_4grpc_7_cython_6cygrpc_Server;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_shutdown = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_shutdown;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_request_unregistered_call = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_unregistered_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server._c_request_registered_call = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *, struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CompletionQueue *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_6Server__c_request_registered_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc_Server.notify_shutdown_complete = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_Server *))__pyx_f_4grpc_7_cython_6cygrpc_6Server_notify_shutdown_complete;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_Server_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server)) __PYX_ERR(23, 38, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_Server_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server = &__pyx_type_4grpc_7_cython_6cygrpc_Server;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_vtabptr_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Server, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_Server) < 0) __PYX_ERR(23, 38, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod)) __PYX_ERR(23, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod = &__pyx_type_4grpc_7_cython_6cygrpc_RegisteredMethod;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RegisteredMethod, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RegisteredMethod) < 0) __PYX_ERR(23, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag = &__pyx_vtable_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__Tag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_4_Tag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__Tag_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag)) __PYX_ERR(24, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__Tag_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag = &__pyx_type_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Tag, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag) < 0) __PYX_ERR(24, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ConnectivityTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ConnectivityEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ConnectivityTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_16_ConnectivityTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag)) __PYX_ERR(24, 22, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag = &__pyx_type_4grpc_7_cython_6cygrpc__ConnectivityTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConnectivityTag, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConnectivityTag) < 0) __PYX_ERR(24, 22, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.prepare = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_prepare;
  __pyx_vtable_4grpc_7_cython_6cygrpc__RequestCallTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_RequestCallEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__RequestCallTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_15_RequestCallTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag)) __PYX_ERR(24, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag = &__pyx_type_4grpc_7_cython_6cygrpc__RequestCallTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RequestCallTag, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__RequestCallTag) < 0) __PYX_ERR(24, 31, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.prepare = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_prepare;
  __pyx_vtable_4grpc_7_cython_6cygrpc__BatchOperationTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BatchOperationEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__BatchOperationTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_BatchOperationTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag)) __PYX_ERR(24, 51, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag = &__pyx_type_4grpc_7_cython_6cygrpc__BatchOperationTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BatchOperationTag, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BatchOperationTag) < 0) __PYX_ERR(24, 51, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag = &__pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc__Tag;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.__pyx_base.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__Tag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event__pyx_wrap_1;
  __pyx_vtable_4grpc_7_cython_6cygrpc__ServerShutdownTag.event = (struct __pyx_obj_4grpc_7_cython_6cygrpc_ServerShutdownEvent *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__ServerShutdownTag *, grpc_event))__pyx_f_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_event;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag)) __PYX_ERR(24, 80, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag = &__pyx_type_4grpc_7_cython_6cygrpc__ServerShutdownTag;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag, __pyx_vtabptr_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ServerShutdownTag, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServerShutdownTag) < 0) __PYX_ERR(24, 80, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_BaseCompletionQueue.c_ptr = (grpc_completion_queue *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_BaseCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_c_ptr;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue)) __PYX_ERR(7, 38, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BaseCompletionQueue, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue) < 0) __PYX_ERR(7, 38, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop)) __PYX_ERR(7, 44, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop = &__pyx_type_4grpc_7_cython_6cygrpc__BoundEventLoop;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BoundEventLoop, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop) < 0) __PYX_ERR(7, 44, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue = &__pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue._poll = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue__poll;
  __pyx_vtable_4grpc_7_cython_6cygrpc_PollerCompletionQueue.shutdown = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_PollerCompletionQueue *))__pyx_f_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_shutdown;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue)) __PYX_ERR(7, 72, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue = &__pyx_type_4grpc_7_cython_6cygrpc_PollerCompletionQueue;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_BaseCompletionQueue;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_vtabptr_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue) < 0) __PYX_ERR(7, 72, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus = &__pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.code = (grpc_status_code (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_code;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.details = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_details;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.trailing_metadata = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_trailing_metadata;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.debug_error_string = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *, int __pyx_skip_dispatch))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_debug_error_string;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioRpcStatus.c_code = (grpc_status_code (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *))__pyx_f_4grpc_7_cython_6cygrpc_12AioRpcStatus_c_code;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)(((PyTypeObject*)PyExc_Exception))); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus)) __PYX_ERR(30, 17, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus = &__pyx_type_4grpc_7_cython_6cygrpc_AioRpcStatus;
  #endif
  if (sizeof(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus) != sizeof(PyBaseExceptionObject)) {
    if (__Pyx_validate_extern_base((((PyTypeObject*)PyExc_Exception))) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  }
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_base = (((PyTypeObject*)PyExc_Exception));
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AioRpcStatus, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus) < 0) __PYX_ERR(30, 17, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__AioState_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState)) __PYX_ERR(33, 36, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__AioState_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState = &__pyx_type_4grpc_7_cython_6cygrpc__AioState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AioState, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState) < 0) __PYX_ERR(33, 36, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackFailureHandler.handle = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_handle;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler)) __PYX_ERR(32, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler = &__pyx_type_4grpc_7_cython_6cygrpc_CallbackFailureHandler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallbackFailureHandler, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler) < 0) __PYX_ERR(32, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper = &__pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper.functor_run = (void (*)(grpc_completion_queue_functor *, int))__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_functor_run;
  __pyx_vtable_4grpc_7_cython_6cygrpc_CallbackWrapper.c_functor = (grpc_completion_queue_functor *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackWrapper *))__pyx_f_4grpc_7_cython_6cygrpc_15CallbackWrapper_c_functor;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper)) __PYX_ERR(32, 33, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper = &__pyx_type_4grpc_7_cython_6cygrpc_CallbackWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper, __pyx_vtabptr_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CallbackWrapper, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackWrapper) < 0) __PYX_ERR(32, 33, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper)) __PYX_ERR(36, 56, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper = &__pyx_type_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_GrpcCallWrapper, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper) < 0) __PYX_ERR(36, 56, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall = &__pyx_vtable_4grpc_7_cython_6cygrpc__AioCall;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._create_grpc_call = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *, PyObject *, struct __pyx_obj_4grpc_7_cython_6cygrpc_CallCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__create_grpc_call;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._set_status = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, struct __pyx_obj_4grpc_7_cython_6cygrpc_AioRpcStatus *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_status;
  __pyx_vtable_4grpc_7_cython_6cygrpc__AioCall._set_initial_metadata = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc__AioCall *, PyObject *))__pyx_f_4grpc_7_cython_6cygrpc_8_AioCall__set_initial_metadata;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall)) __PYX_ERR(34, 45, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__AioCall_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall = &__pyx_type_4grpc_7_cython_6cygrpc__AioCall;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_vtabptr_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AioCall, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall) < 0) __PYX_ERR(34, 45, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel)) __PYX_ERR(8, 28, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioChannel_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel = &__pyx_type_4grpc_7_cython_6cygrpc_AioChannel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AioChannel, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel) < 0) __PYX_ERR(8, 28, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails)) __PYX_ERR(9, 35, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails = &__pyx_type_4grpc_7_cython_6cygrpc__HandlerCallDetails;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HandlerCallDetails, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__HandlerCallDetails) < 0) __PYX_ERR(9, 35, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState = &__pyx_vtable_4grpc_7_cython_6cygrpc_RPCState;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.method = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_method;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.invocation_metadata = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_invocation_metadata;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.raise_for_termination = (void (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_raise_for_termination;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.get_write_flag = (int (*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_get_write_flag;
  __pyx_vtable_4grpc_7_cython_6cygrpc_RPCState.create_send_initial_metadata_op_if_not_sent = (struct __pyx_obj_4grpc_7_cython_6cygrpc_Operation *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_RPCState *))__pyx_f_4grpc_7_cython_6cygrpc_8RPCState_create_send_initial_metadata_op_if_not_sent;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState)) __PYX_ERR(9, 45, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_RPCState_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState = &__pyx_type_4grpc_7_cython_6cygrpc_RPCState;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_GrpcCallWrapper;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState, __pyx_vtabptr_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RPCState, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_RPCState) < 0) __PYX_ERR(9, 45, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext)) __PYX_ERR(9, 115, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext = &__pyx_type_4grpc_7_cython_6cygrpc__ServicerContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ServicerContext, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext) < 0) __PYX_ERR(9, 115, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext)) __PYX_ERR(9, 292, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext = &__pyx_type_4grpc_7_cython_6cygrpc__SyncServicerContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SyncServicerContext, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext) < 0) __PYX_ERR(9, 292, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver)) __PYX_ERR(9, 596, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver = &__pyx_type_4grpc_7_cython_6cygrpc__MessageReceiver;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MessageReceiver, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver) < 0) __PYX_ERR(9, 596, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter)) __PYX_ERR(9, 870, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter = &__pyx_type_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter) < 0) __PYX_ERR(9, 870, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer = &__pyx_vtable_4grpc_7_cython_6cygrpc_AioServer;
  __pyx_vtable_4grpc_7_cython_6cygrpc_AioServer.thread_pool = (PyObject *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_AioServer *))__pyx_f_4grpc_7_cython_6cygrpc_9AioServer_thread_pool;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer)) __PYX_ERR(9, 894, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_AioServer_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer = &__pyx_type_4grpc_7_cython_6cygrpc_AioServer;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_vtabptr_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AioServer, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer) < 0) __PYX_ERR(9, 894, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper)) __PYX_ERR(3, 16, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper = &__pyx_type_4grpc_7_cython_6cygrpc__GrpcArgWrapper;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_GrpcArgWrapper, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc__GrpcArgWrapper) < 0) __PYX_ERR(3, 16, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_InsecureChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials)) __PYX_ERR(5, 423, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_InsecureChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_InsecureChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials) < 0) __PYX_ERR(5, 423, __pyx_L1_error)
  __pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = &__pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials.__pyx_base = *__pyx_vtabptr_4grpc_7_cython_6cygrpc_ChannelCredentials;
  __pyx_vtable_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials.__pyx_base.c = (grpc_channel_credentials *(*)(struct __pyx_obj_4grpc_7_cython_6cygrpc_ChannelCredentials *))__pyx_f_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_c;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials)) __PYX_ERR(5, 479, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials = &__pyx_type_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_base = __pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials, __pyx_vtabptr_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ComputeEngineChannelCredentials, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_ComputeEngineChannelCredentials) < 0) __PYX_ERR(5, 479, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext)) __PYX_ERR(26, 31, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc_CensusContext_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext = &__pyx_type_4grpc_7_cython_6cygrpc_CensusContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CensusContext, (PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext) < 0) __PYX_ERR(26, 31, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call)) __PYX_ERR(12, 334, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) < 0) __PYX_ERR(12, 334, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call) < 0) __PYX_ERR(12, 334, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct____pyx_f_4grpc_7_cython_6cygrpc__integrated_call->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event)) __PYX_ERR(12, 379, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_1_next_event->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call)) __PYX_ERR(12, 392, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) < 0) __PYX_ERR(12, 392, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call) < 0) __PYX_ERR(12, 392, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_2___pyx_f_4grpc_7_cython_6cygrpc__segregated_call->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event)) __PYX_ERR(12, 529, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_3_next_call_event->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata)) __PYX_ERR(5, 38, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) < 0) __PYX_ERR(5, 38, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata) < 0) __PYX_ERR(5, 38, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_4___pyx_f_4grpc_7_cython_6cygrpc__get_metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata)) __PYX_ERR(18, 68, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) < 0) __PYX_ERR(18, 68, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata) < 0) __PYX_ERR(18, 68, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_5___pyx_f_4grpc_7_cython_6cygrpc__metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr)) __PYX_ERR(18, 70, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(18, 70, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(18, 70, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_6_genexpr->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context)) __PYX_ERR(29, 50, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_7__run_with_context->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context)) __PYX_ERR(29, 56, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_8__run_with_context->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__)) __PYX_ERR(1, 107, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init___spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__ = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_9___init__->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator)) __PYX_ERR(6, 123, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_10_async_generator_to_generator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator)) __PYX_ERR(6, 141, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_11_generator_to_async_generator->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch)) __PYX_ERR(32, 77, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_12_execute_batch->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message)) __PYX_ERR(32, 115, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_13__receive_message->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message)) __PYX_ERR(32, 139, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_14__send_message->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata)) __PYX_ERR(32, 151, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_15__send_initial_metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata)) __PYX_ERR(32, 162, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_16__receive_initial_metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server)) __PYX_ERR(32, 169, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_17__send_error_status_from_server->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status)) __PYX_ERR(34, 235, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_18_status->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata)) __PYX_ERR(34, 258, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_19_initial_metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary)) __PYX_ERR(34, 296, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_20_unary_unary->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received)) __PYX_ERR(34, 347, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_21__handle_status_once_received->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message)) __PYX_ERR(34, 364, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_22_receive_serialized_message->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message)) __PYX_ERR(34, 381, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_23_send_serialized_message->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close)) __PYX_ERR(34, 389, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_24_send_receive_close->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream)) __PYX_ERR(34, 395, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_25_initiate_unary_stream->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary)) __PYX_ERR(34, 437, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_26_stream_unary->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream)) __PYX_ERR(34, 496, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_27_initiate_stream_stream->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state)) __PYX_ERR(8, 71, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_28_watch_connectivity_state->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read)) __PYX_ERR(9, 127, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_29_read->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write)) __PYX_ERR(9, 140, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_30_write->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata)) __PYX_ERR(9, 150, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_31_send_initial_metadata->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort)) __PYX_ERR(9, 164, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_32_abort->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status)) __PYX_ERR(9, 203, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_33_abort_with_status->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor)) __PYX_ERR(9, 354, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_34__run_interceptor->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler)) __PYX_ERR(9, 370, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_35__find_method_handler->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response)) __PYX_ERR(9, 389, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_36__finish_handler_with_unary_response->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses)) __PYX_ERR(9, 460, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_37__finish_handler_with_stream_responses->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc)) __PYX_ERR(9, 530, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_38__handle_unary_unary_rpc->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc)) __PYX_ERR(9, 564, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_39__handle_unary_stream_rpc->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver)) __PYX_ERR(9, 603, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_40__async_message_receiver->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__)) __PYX_ERR(9, 619, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext___spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) < 0) __PYX_ERR(9, 619, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__ = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__) < 0) __PYX_ERR(9, 619, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_41___anext__->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc)) __PYX_ERR(9, 623, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_42__handle_stream_unary_rpc->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc)) __PYX_ERR(9, 655, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_43__handle_stream_stream_rpc->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions)) __PYX_ERR(9, 686, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_44__handle_exceptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler)) __PYX_ERR(9, 742, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) < 0) __PYX_ERR(9, 742, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler) < 0) __PYX_ERR(9, 742, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_45___pyx_f_4grpc_7_cython_6cygrpc__add_callback_handler->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core)) __PYX_ERR(9, 755, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_46__handle_cancellation_from_core->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro)) __PYX_ERR(9, 772, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_47__schedule_rpc_coro->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc)) __PYX_ERR(9, 795, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_48__handle_rpc->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call)) __PYX_ERR(9, 942, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_49__request_call->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop)) __PYX_ERR(9, 962, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_50__server_main_loop->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start)) __PYX_ERR(9, 1022, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_51_start->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down)) __PYX_ERR(9, 1036, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_52__start_shutting_down->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown)) __PYX_ERR(9, 1053, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_53_shutdown->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination)) __PYX_ERR(9, 1093, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination_spec, __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination = &__pyx_type_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_dictoffset && __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_4grpc_7_cython_6cygrpc___pyx_scope_struct_54_wait_for_termination->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_)) __PYX_ERR(10, 65, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py__spec, __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_ = &__pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_dictoffset && __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_7f0cf6__4grpc_7_cython_6cygrpc_void__lParen__rParennoe__etc_to_py_->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg)) __PYX_ERR(10, 65, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg_spec, __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg = &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_dictoffset && __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen_LatentEventArg__rParen_to_py_16latent_event_arg->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_)) __PYX_ERR(10, 65, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py__spec, __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_ = &__pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_dictoffset && __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_4grpc_7_cython_6cygrpc_object__lParen__rParen_to_py_->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args)) __PYX_ERR(10, 65, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args_spec, __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args = &__pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args) < 0) __PYX_ERR(10, 65, __pyx_L1_error)
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_dictoffset && __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_1f6ebd__4grpc_7_cython_6cygrpc_object__lParenobject__c__etc_to_py_2cb_4args->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_1_1(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_1_1); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(37, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType_3_1_1(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyLongObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyLongObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyLongObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyLongObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_1_1); if (!__pyx_mstate->__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(38, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType_3_1_1(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyComplexObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyComplexObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyComplexObject), __PYX_GET_STRUCT_ALIGNMENT_3_1_1(PyComplexObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_1_1); if (!__pyx_mstate->__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(39, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_cygrpc(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_cygrpc},
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  {Py_mod_gil, Py_MOD_GIL_USED},
  #endif
  #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
  {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
  #endif
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "cygrpc",
      0, /* m_doc */
    #if CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstatetype), /* m_size */
    #else
      (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif

/* PyModInitFuncType */
#ifndef CYTHON_NO_PYINIT_EXPORT
  #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#else
  #ifdef __cplusplus
  #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
  #else
  #define __Pyx_PyMODINIT_FUNC PyObject *
  #endif
#endif

__Pyx_PyMODINIT_FUNC PyInit_cygrpc(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_cygrpc(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
/* ModuleCreationPEP489 */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
    {
        PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
        if (!module) {
            PyErr_Clear(); // just try the 3.8-3.12 version
            module = PyImport_ImportModule("_xxsubinterpreters");
            if (!module) goto bad;
        }
        PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
        Py_DECREF(module);
        if (!current) goto bad;
        if (PyTuple_Check(current)) {
            PyObject *new_current = PySequence_GetItem(current, 0);
            Py_DECREF(current);
            current = new_current;
            if (!new_current) goto bad;
        }
        long long as_c_int = PyLong_AsLongLong(current);
        Py_DECREF(current);
        return as_c_int;
    }
  bad:
    PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
    return -1;
}
#endif
#if !CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    static PY_INT64_T main_interpreter_id = -1;
#if CYTHON_COMPILING_IN_GRAAL
    PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x03090000
    PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
#elif CYTHON_COMPILING_IN_LIMITED_API
    PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
#else
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
#endif
    if (unlikely(current_id == -1)) {
        return -1;
    }
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return 0;
    } else if (unlikely(main_interpreter_id != current_id)) {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#endif
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    #if !CYTHON_USE_MODULE_STATE
    if (__Pyx_check_single_interpreter())
        return NULL;
    #endif
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_cygrpc(PyObject *__pyx_pyinit_module)
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  __pyx_mstatetype *__pyx_mstate = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'cygrpc' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #else
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_t_1 = __pyx_pyinit_module;
  Py_INCREF(__pyx_t_1);
  #else
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #if CYTHON_USE_MODULE_STATE
  {
    int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "cygrpc" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = __pyx_t_1;
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED);
  #endif
  __pyx_mstate = __pyx_mstate_global;
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_mstate->__pyx_d);
  __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /* ImportRefnannyAPI */
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif

__Pyx_RefNannySetupContext("PyInit_cygrpc", 0);
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__pyx_module_is_main_grpc___cython__cygrpc) {
    if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "grpc._cython.cygrpc")) {
      if (unlikely((PyDict_SetItemString(modules, "grpc._cython.cygrpc", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_CreateCodeObjects(__pyx_mstate) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_variable_export_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_function_export_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_init_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
  (void)__Pyx_modinit_function_import_code(__pyx_mstate);
  /*--- Execution code ---*/

  /* "grpc/_cython/cygrpc.pyx":18
 * cimport cpython
 * 
 * import logging             # <<<<<<<<<<<<<<
 * import os
 * import sys
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_logging, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_logging, __pyx_t_2) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":19
 * 
 * import logging
 * import os             # <<<<<<<<<<<<<<
 * import sys
 * import threading
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_os, __pyx_t_2) < 0) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":20
 * import logging
 * import os
 * import sys             # <<<<<<<<<<<<<<
 * import threading
 * import time
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_2) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":21
 * import os
 * import sys
 * import threading             # <<<<<<<<<<<<<<
 * import time
 * 
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_threading, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_2) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":22
 * import sys
 * import threading
 * import time             # <<<<<<<<<<<<<<
 * 
 * import grpc
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_time, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_time, __pyx_t_2) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":24
 * import time
 * 
 * import grpc             # <<<<<<<<<<<<<<
 * 
 * try:
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_grpc, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_grpc, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_3, &__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    /*try:*/ {

      /* "grpc/_cython/cygrpc.pyx":27
 * 
 * try:
 *     import asyncio             # <<<<<<<<<<<<<<
 * except ImportError:
 *     # TODO(https://github.com/grpc/grpc/issues/19728) Improve how Aio Cython is
*/
      __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_asyncio, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_asyncio, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "grpc/_cython/cygrpc.pyx":28
 * try:
 *     import asyncio
 * except ImportError:             # <<<<<<<<<<<<<<
 *     # TODO(https://github.com/grpc/grpc/issues/19728) Improve how Aio Cython is
 *     # distributed without breaking none compatible Python versions. For now, if
*/
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_5) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;

    /* "grpc/_cython/cygrpc.pyx":26
 * import grpc
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import asyncio
 * except ImportError:
*/
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_3, __pyx_t_4);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_3, __pyx_t_4);
    __pyx_L7_try_end:;
  }

  /* "grpc/_cython/cygrpc.pyx":35
 * 
 * # The only copy of Python logger for the Cython extension
 * _LOGGER = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 * 
 * # TODO(atash): figure out why the coverage tool gets confused about the Cython
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_logging); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_getLogger); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOGGER, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GrpcArgWrapper___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.arg cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_GrpcArgWrapper_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_GrpcArgWrapper___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelArg___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_argument cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11_ChannelArg_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelArg___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelArgs___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12_ChannelArgs_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelArgs___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":24
 *     self.references = []
 * 
 *   def _start_batch(self, operations, tag, retain_self):             # <<<<<<<<<<<<<<
 *     if not self.is_valid:
 *       raise ValueError("invalid call object cannot be used from Python")
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_3_start_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call__start_batch, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_start_batch, __pyx_t_2) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":38
 *     return error
 * 
 *   def start_client_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     # We don't reference this call in the operations tag because
 *     # it should be cancelled when it goes out of scope
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_5start_client_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call_start_client_batch, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_start_client_batch, __pyx_t_2) < 0) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":43
 *     return self._start_batch(operations, tag, False)
 * 
 *   def start_server_batch(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return self._start_batch(operations, tag, True)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_7start_server_batch, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call_start_server_batch, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_start_server_batch, __pyx_t_2) < 0) __PYX_ERR(4, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":47
 * 
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,             # <<<<<<<<<<<<<<
 *       details=None):
 *     details = str_to_bytes(details)
*/
  __pyx_mstate_global->__pyx_k__2 = GRPC_STATUS__DO_NOT_USE;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS__DO_NOT_USE); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":48
 *   def cancel(
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):             # <<<<<<<<<<<<<<
 *     details = str_to_bytes(details)
 *     if not self.is_valid:
*/
  __pyx_t_8 = PyTuple_Pack(2, __pyx_t_2, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":46
 *     return self._start_batch(operations, tag, True)
 * 
 *   def cancel(             # <<<<<<<<<<<<<<
 *       self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE,
 *       details=None):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_9cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call_cancel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_cancel, __pyx_t_2) < 0) __PYX_ERR(4, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":69
 *       return result
 * 
 *   def set_credentials(self, CallCredentials call_credentials not None):             # <<<<<<<<<<<<<<
 *     cdef grpc_call_credentials *c_call_credentials = call_credentials.c()
 *     cdef grpc_call_error call_error = grpc_call_set_credentials(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_11set_credentials, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call_set_credentials, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_set_credentials, __pyx_t_2) < 0) __PYX_ERR(4, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":76
 *     return call_error
 * 
 *   def peer(self):             # <<<<<<<<<<<<<<
 *     cdef char *peer = NULL
 *     with nogil:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_13peer, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call_peer, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_peer, __pyx_t_2) < 0) __PYX_ERR(4, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi":96
 *     return self.c_call != NULL
 * 
 *   def _custom_op_on_c_call(self, int op):             # <<<<<<<<<<<<<<
 *     return _custom_op_on_c_call(op, self.c_call)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_17_custom_op_on_c_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call__custom_op_on_c_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Call, __pyx_mstate_global->__pyx_n_u_custom_op_on_c_call, __pyx_t_2) < 0) __PYX_ERR(4, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_19__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4Call_21__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Call___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":15
 * # limitations under the License.
 * 
 * from grpc import _observability             # <<<<<<<<<<<<<<
 * 
 * _INTERNAL_CALL_ERROR_MESSAGE_FORMAT = (
*/
  __pyx_t_2 = __Pyx_PyList_Pack(1, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_grpc, __pyx_t_2, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_observability, __pyx_t_2) < 0) __PYX_ERR(12, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":18
 * 
 * _INTERNAL_CALL_ERROR_MESSAGE_FORMAT = (
 *     'Internal gRPC call error %d. ' +             # <<<<<<<<<<<<<<
 *     'Please report to https://github.com/grpc/grpc/issues')
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INTERNAL_CALL_ERROR_MESSAGE_FOR, __pyx_mstate_global->__pyx_kp_u_Internal_gRPC_call_error_d_Pleas) < 0) __PYX_ERR(12, 17, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallState___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_CallState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallState___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelState___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13_ChannelState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelState___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallHandle___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10CallHandle_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallHandle___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":326
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_integrated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_3operate, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IntegratedCall_operate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall, __pyx_mstate_global->__pyx_n_u_operate, __pyx_t_8) < 0) __PYX_ERR(12, 326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":330
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_5cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IntegratedCall_cancel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_IntegratedCall, __pyx_mstate_global->__pyx_n_u_cancel, __pyx_t_8) < 0) __PYX_ERR(12, 330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IntegratedCall___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14IntegratedCall_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IntegratedCall___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":372
 *     self._call_state = call_state
 * 
 *   def operate(self, operations, tag):             # <<<<<<<<<<<<<<
 *     return _operate_from_segregated_call(
 *         self._channel_state, self._call_state, operations, tag)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_3operate, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SegregatedCall_operate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_mstate_global->__pyx_n_u_operate, __pyx_t_8) < 0) __PYX_ERR(12, 372, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":376
 *         self._channel_state, self._call_state, operations, tag)
 * 
 *   def cancel(self, code, details):             # <<<<<<<<<<<<<<
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_5cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SegregatedCall_cancel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_mstate_global->__pyx_n_u_cancel, __pyx_t_8) < 0) __PYX_ERR(12, 376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":379
 *     _cancel(self._channel_state, self._call_state, code, details)
 * 
 *   def next_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       _process_segregated_call_tag(
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_7next_event, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SegregatedCall_next_event, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SegregatedCall, __pyx_mstate_global->__pyx_n_u_next_event, __pyx_t_8) < 0) __PYX_ERR(12, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SegregatedCall___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_14SegregatedCall_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SegregatedCall___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":513
 *     grpc_channel_credentials_release(c_channel_credentials)
 * 
 *   def target(self):             # <<<<<<<<<<<<<<
 *     cdef char *c_target
 *     with self._state.condition:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_3target, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_target, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_target, __pyx_t_8) < 0) __PYX_ERR(12, 513, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_5integrated_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_integrated_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[5]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_integrated_call, __pyx_t_8) < 0) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":529
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def next_call_event(self):             # <<<<<<<<<<<<<<
 *     def on_success(tag):
 *       if tag is not None:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_7next_call_event, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_next_call_event, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_next_call_event, __pyx_t_8) < 0) __PYX_ERR(12, 529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":543
 *                             on_success, None, queue_deadline)
 * 
 *   def segregated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_9segregated_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_segregated_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[5]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_segregated_call, __pyx_t_8) < 0) __PYX_ERR(12, 543, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":551
 *         operationses_and_tags, context, registered_call_handle)
 * 
 *   def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *     with self._state.condition:
 *       if self._state.open:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_11check_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_check_connectivity_state, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_check_connectivity_state, __pyx_t_8) < 0) __PYX_ERR(12, 551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":559
 *         raise ValueError('Cannot invoke RPC: %s' % self._state.closed_reason)
 * 
 *   def watch_connectivity_state(             # <<<<<<<<<<<<<<
 *       self, grpc_connectivity_state last_observed_state, object deadline):
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_13watch_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_watch_connectivity_state, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_watch_connectivity_state, __pyx_t_8) < 0) __PYX_ERR(12, 559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":563
 *     return _watch_connectivity_state(self._state, last_observed_state, deadline)
 * 
 *   def close(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, False)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_15close, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_close, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_close, __pyx_t_8) < 0) __PYX_ERR(12, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":566
 *     _close(self, code, details, False)
 * 
 *   def close_on_fork(self, code, details):             # <<<<<<<<<<<<<<
 *     _close(self, code, details, True)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_17close_on_fork, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_close_on_fork, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_close_on_fork_2, __pyx_t_8) < 0) __PYX_ERR(12, 566, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":569
 *     _close(self, code, details, True)
 * 
 *   def get_registered_call_handle(self, method):             # <<<<<<<<<<<<<<
 *     """
 *     Get or registers a call handler for a method.
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_19get_registered_call_handle, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel_get_registered_call_hand, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Channel, __pyx_mstate_global->__pyx_n_u_get_registered_call_handle, __pyx_t_8) < 0) __PYX_ERR(12, 569, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_21__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7Channel_23__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Channel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":16
 * 
 * 
 * def channelz_get_top_channels(start_channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_top_channels(
 *         start_channel_id,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_1channelz_get_top_channels, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_top_channels, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_top_channels, __pyx_t_8) < 0) __PYX_ERR(13, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":25
 *     return c_returned_str
 * 
 * def channelz_get_servers(start_server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_servers(start_server_id)
 *     if c_returned_str == NULL:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_3channelz_get_servers, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_servers, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_servers, __pyx_t_8) < 0) __PYX_ERR(13, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":32
 *     return c_returned_str
 * 
 * def channelz_get_server(server_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server(server_id)
 *     if c_returned_str == NULL:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_5channelz_get_server, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_server, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_server, __pyx_t_8) < 0) __PYX_ERR(13, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":39
 *     return c_returned_str
 * 
 * def channelz_get_server_sockets(server_id, start_socket_id, max_results):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_server_sockets(
 *         server_id,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_7channelz_get_server_sockets, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_server_sockets, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_server_sockets, __pyx_t_8) < 0) __PYX_ERR(13, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":52
 *     return c_returned_str
 * 
 * def channelz_get_channel(channel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_channel(channel_id)
 *     if c_returned_str == NULL:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9channelz_get_channel, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_channel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_channel, __pyx_t_8) < 0) __PYX_ERR(13, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":59
 *     return c_returned_str
 * 
 * def channelz_get_subchannel(subchannel_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_subchannel(subchannel_id)
 *     if c_returned_str == NULL:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11channelz_get_subchannel, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_subchannel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_subchannel, __pyx_t_8) < 0) __PYX_ERR(13, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channelz.pyx.pxi":66
 *     return c_returned_str
 * 
 * def channelz_get_socket(socket_id):             # <<<<<<<<<<<<<<
 *     cdef char *c_returned_str = grpc_channelz_get_socket(socket_id)
 *     if c_returned_str == NULL:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13channelz_get_socket, 0, __pyx_mstate_global->__pyx_n_u_channelz_get_socket, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channelz_get_socket, __pyx_t_8) < 0) __PYX_ERR(13, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/csds.pyx.pxi":16
 * 
 * 
 * def dump_xds_configs():             # <<<<<<<<<<<<<<
 *     cdef grpc_slice client_config_in_slice
 *     with nogil:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15dump_xds_configs, 0, __pyx_mstate_global->__pyx_n_u_dump_xds_configs, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_dump_xds_configs, __pyx_t_8) < 0) __PYX_ERR(14, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":15
 * # limitations under the License.
 * 
 * import atexit             # <<<<<<<<<<<<<<
 * 
 * def _spawn_callback_in_thread(cb_func, args):
*/
  __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_atexit, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_atexit, __pyx_t_8) < 0) __PYX_ERR(5, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":17
 * import atexit
 * 
 * def _spawn_callback_in_thread(cb_func, args):             # <<<<<<<<<<<<<<
 *   t = ForkManagedThread(target=cb_func, args=args)
 *   t.setDaemon(True)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17_spawn_callback_in_thread, 0, __pyx_mstate_global->__pyx_n_u_spawn_callback_in_thread, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_spawn_callback_in_thread, __pyx_t_8) < 0) __PYX_ERR(5, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":22
 *   t.start()
 * 
 * async_callback_func = _spawn_callback_in_thread             # <<<<<<<<<<<<<<
 * 
 * def set_async_callback_func(callback_func):
*/
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_spawn_callback_in_thread); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_async_callback_func, __pyx_t_8) < 0) __PYX_ERR(5, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":24
 * async_callback_func = _spawn_callback_in_thread
 * 
 * def set_async_callback_func(callback_func):             # <<<<<<<<<<<<<<
 *   global async_callback_func
 *   async_callback_func = callback_func
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19set_async_callback_func, 0, __pyx_mstate_global->__pyx_n_u_set_async_callback_func, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_set_async_callback_func, __pyx_t_8) < 0) __PYX_ERR(5, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":28
 *   async_callback_func = callback_func
 * 
 * def _spawn_callback_async(callback, args):             # <<<<<<<<<<<<<<
 *   async_callback_func(callback, args)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_spawn_callback_async, 0, __pyx_mstate_global->__pyx_n_u_spawn_callback_async, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_spawn_callback_async, __pyx_t_8) < 0) __PYX_ERR(5, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallCredentials___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_credentials cannot be converted to a Python object for pickling"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallCredentials___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":74
 * # Number of C-core clean up calls in progress. Set to -1 when Python is shutting
 * # down.
 * cdef int g_shutting_down = 0             # <<<<<<<<<<<<<<
 * 
 * # This is called by C-core when the plugin is destroyed, which may race between
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_shutting_down = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":95
 * 
 * 
 * g_shutdown_handler_registered = False             # <<<<<<<<<<<<<<
 * 
 * def _maybe_register_shutdown_handler():
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_shutdown_handler_registered, Py_False) < 0) __PYX_ERR(5, 95, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":97
 * g_shutdown_handler_registered = False
 * 
 * def _maybe_register_shutdown_handler():             # <<<<<<<<<<<<<<
 *   global g_shutdown_handler_registered
 *   if g_shutdown_handler_registered:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23_maybe_register_shutdown_handler, 0, __pyx_mstate_global->__pyx_n_u_maybe_register_shutdown_handler, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_maybe_register_shutdown_handler, __pyx_t_8) < 0) __PYX_ERR(5, 97, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MetadataPluginCallCredentials_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29MetadataPluginCallCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MetadataPluginCallCredentials_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompositeCallCredentials___reduc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_24CompositeCallCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompositeCallCredentials___setst, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelCredentials___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ChannelCredentials__set_state(self, __pyx_state)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18ChannelCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ChannelCredentials___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ChannelCredentials, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SSLSessionCacheLRU___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18SSLSessionCacheLRU_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SSLSessionCacheLRU___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SSLChannelCredentials___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21SSLChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SSLChannelCredentials___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompositeChannelCredentials___re, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27CompositeChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompositeChannelCredentials___se, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XDSChannelCredentials___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21XDSChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_XDSChannelCredentials___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerCertificateConfig___reduce, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ServerCertificateConfig_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerCertificateConfig___setsta, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerCredentials___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ServerCredentials_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerCredentials___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":307
 *   return c_ssl_pem_key_cert_pairs
 * 
 * def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs,             # <<<<<<<<<<<<<<
 *                            bint force_client_auth):
 *   pem_root_certs = str_to_bytes(pem_root_certs)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_25server_credentials_ssl, 0, __pyx_mstate_global->__pyx_n_u_server_credentials_ssl, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_server_credentials_ssl, __pyx_t_8) < 0) __PYX_ERR(5, 307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":332
 *   return credentials
 * 
 * def server_certificate_config_ssl(pem_root_certs, pem_key_cert_pairs):             # <<<<<<<<<<<<<<
 *   pem_root_certs = str_to_bytes(pem_root_certs)
 *   pem_key_cert_pairs = list(pem_key_cert_pairs)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_27server_certificate_config_ssl, 0, __pyx_mstate_global->__pyx_n_u_server_certificate_config_ssl, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_server_certificate_config_ssl, __pyx_t_8) < 0) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":346
 *   return cert_config
 * 
 * def server_credentials_ssl_dynamic_cert_config(initial_cert_config,             # <<<<<<<<<<<<<<
 *                                                cert_config_fetcher,
 *                                                bint force_client_auth):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29server_credentials_ssl_dynamic_cert_config, 0, __pyx_mstate_global->__pyx_n_u_server_credentials_ssl_dynamic_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_server_credentials_ssl_dynamic_c, __pyx_t_8) < 0) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":406
 * 
 * 
 * class LocalConnectionType:             # <<<<<<<<<<<<<<
 *   uds = UDS
 *   local_tcp = LOCAL_TCP
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_LocalConnectionType, __pyx_mstate_global->__pyx_n_u_LocalConnectionType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":407
 * 
 * class LocalConnectionType:
 *   uds = UDS             # <<<<<<<<<<<<<<
 *   local_tcp = LOCAL_TCP
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_local_connect_type(UDS); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_uds, __pyx_t_2) < 0) __PYX_ERR(5, 407, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":408
 * class LocalConnectionType:
 *   uds = UDS
 *   local_tcp = LOCAL_TCP             # <<<<<<<<<<<<<<
 * 
 * cdef class LocalChannelCredentials(ChannelCredentials):
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_local_connect_type(LOCAL_TCP); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_local_tcp, __pyx_t_2) < 0) __PYX_ERR(5, 408, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":406
 * 
 * 
 * class LocalConnectionType:             # <<<<<<<<<<<<<<
 *   uds = UDS
 *   local_tcp = LOCAL_TCP
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_LocalConnectionType, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LocalConnectionType, __pyx_t_2) < 0) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LocalChannelCredentials___reduce, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23LocalChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LocalChannelCredentials___setsta, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":420
 *     return grpc_local_credentials_create(local_connect_type)
 * 
 * def channel_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   return LocalChannelCredentials(local_connect_type)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31channel_credentials_local, 0, __pyx_mstate_global->__pyx_n_u_channel_credentials_local, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channel_credentials_local, __pyx_t_8) < 0) __PYX_ERR(5, 420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InsecureChannelCredentials___red, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InsecureChannelCredentials, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InsecureChannelCredentials__set_state(self, __pyx_state)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_26InsecureChannelCredentials_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InsecureChannelCredentials___set, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_InsecureChannelCredentials, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":428
 *     return grpc_insecure_credentials_create()
 * 
 * def channel_credentials_insecure():             # <<<<<<<<<<<<<<
 *   return InsecureChannelCredentials()
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_33channel_credentials_insecure, 0, __pyx_mstate_global->__pyx_n_u_channel_credentials_insecure, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channel_credentials_insecure, __pyx_t_8) < 0) __PYX_ERR(5, 428, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":431
 *   return InsecureChannelCredentials()
 * 
 * def server_credentials_local(grpc_local_connect_type local_connect_type):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_local_server_credentials_create(local_connect_type)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_35server_credentials_local, 0, __pyx_mstate_global->__pyx_n_u_server_credentials_local, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_server_credentials_local, __pyx_t_8) < 0) __PYX_ERR(5, 431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":436
 *   return credentials
 * 
 * def xds_server_credentials(ServerCredentials fallback_credentials):             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_xds_server_credentials_create(fallback_credentials.c_credentials)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_37xds_server_credentials, 0, __pyx_mstate_global->__pyx_n_u_xds_server_credentials, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_xds_server_credentials, __pyx_t_8) < 0) __PYX_ERR(5, 436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":444
 *   return credentials
 * 
 * def insecure_server_credentials():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   credentials.c_credentials = grpc_insecure_server_credentials_create()
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_39insecure_server_credentials, 0, __pyx_mstate_global->__pyx_n_u_insecure_server_credentials, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_insecure_server_credentials, __pyx_t_8) < 0) __PYX_ERR(5, 444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ALTSChannelCredentials___reduce, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22ALTSChannelCredentials_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ALTSChannelCredentials___setstat, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":466
 * 
 * 
 * def channel_credentials_alts(list service_accounts):             # <<<<<<<<<<<<<<
 *   return ALTSChannelCredentials(service_accounts)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_41channel_credentials_alts, 0, __pyx_mstate_global->__pyx_n_u_channel_credentials_alts, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channel_credentials_alts, __pyx_t_8) < 0) __PYX_ERR(5, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":470
 * 
 * 
 * def server_credentials_alts():             # <<<<<<<<<<<<<<
 *   cdef ServerCredentials credentials = ServerCredentials()
 *   cdef grpc_alts_credentials_options* c_options = grpc_alts_credentials_server_options_create()
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_43server_credentials_alts, 0, __pyx_mstate_global->__pyx_n_u_server_credentials_alts, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_server_credentials_alts, __pyx_t_8) < 0) __PYX_ERR(5, 470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ComputeEngineChannelCredentials_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ComputeEngineChannelCredentials_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ComputeEngineChannelCredentials_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi":495
 * 
 * 
 * def channel_credentials_compute_engine(call_creds):             # <<<<<<<<<<<<<<
 *   return ComputeEngineChannelCredentials(call_creds)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_45channel_credentials_compute_engine, 0, __pyx_mstate_global->__pyx_n_u_channel_credentials_compute_engi, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_channel_credentials_compute_engi, __pyx_t_8) < 0) __PYX_ERR(5, 495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":15
 * # limitations under the License.
 * 
 * import threading             # <<<<<<<<<<<<<<
 * 
 * g_interrupt_check_period_ms = 200
*/
  __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_threading, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_8) < 0) __PYX_ERR(15, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":17
 * import threading
 * 
 * g_interrupt_check_period_ms = 200             # <<<<<<<<<<<<<<
 * 
 * cdef grpc_event _next(grpc_completion_queue *c_completion_queue, deadline) except *:
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_interrupt_check_period_ms = 0xC8;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":122
 *     return event
 * 
 *   def _internal_poll(self, deadline):             # <<<<<<<<<<<<<<
 *     return self._interpret_event(_next(self.c_completion_queue, deadline))
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_3_internal_poll, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue__internal_poll, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_mstate_global->__pyx_n_u_internal_poll, __pyx_t_8) < 0) __PYX_ERR(15, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":127
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_5poll, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue_poll, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_mstate_global->__pyx_n_u_poll, __pyx_t_8) < 0) __PYX_ERR(15, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":134
 *       return self._internal_poll(deadline)
 * 
 *   def shutdown(self):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_completion_queue_shutdown(self.c_completion_queue)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_7shutdown, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_mstate_global->__pyx_n_u_shutdown, __pyx_t_8) < 0) __PYX_ERR(15, 134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":139
 *     self.is_shutting_down = True
 * 
 *   def clear(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise ValueError('queue must be shutting down to be cleared')
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_9clear, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue_clear, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_8)) __PYX_ERR(15, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompletionQueue, __pyx_mstate_global->__pyx_n_u_clear, __pyx_t_8) < 0) __PYX_ERR(15, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CompletionQueue_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompletionQueue___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConnectivityEvent___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ConnectivityEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConnectivityEvent___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestCallEvent___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RequestCallEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestCallEvent___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BatchOperationEvent___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BatchOperationEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BatchOperationEvent___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerShutdownEvent___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19ServerShutdownEvent_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerShutdownEvent___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":15
 * # limitations under the License.
 * 
 * import collections             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_collections, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_collections, __pyx_t_8) < 0) __PYX_ERR(18, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":18
 * 
 * 
 * class InitialMetadataFlags:             # <<<<<<<<<<<<<<
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":19
 * 
 * class InitialMetadataFlags:
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK             # <<<<<<<<<<<<<<
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_INITIAL_METADATA_USED_MASK); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_used_mask, __pyx_t_2) < 0) __PYX_ERR(18, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":20
 * class InitialMetadataFlags:
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY             # <<<<<<<<<<<<<<
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_INITIAL_METADATA_WAIT_FOR_READY); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_wait_for_ready, __pyx_t_2) < 0) __PYX_ERR(18, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":21
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
 *   wait_for_ready_explicitly_set = GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_wait_for_ready_explicitly_set, __pyx_t_2) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":18
 * 
 * 
 * class InitialMetadataFlags:             # <<<<<<<<<<<<<<
 *   used_mask = GRPC_INITIAL_METADATA_USED_MASK
 *   wait_for_ready = GRPC_INITIAL_METADATA_WAIT_FOR_READY
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_InitialMetadataFlags, __pyx_t_2) < 0) __PYX_ERR(18, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":24
 * 
 * 
 * _Metadatum = collections.namedtuple('_Metadatum', ('key', 'value',))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_collections); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[8], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Metadatum, __pyx_t_8) < 0) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Operation___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_op cannot be converted to a Python object for pickling"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9Operation_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Operation___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":31
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_INITIAL_METADATA
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendInitialMetadataOperation_typ, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendInitialMetadataOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendInitialMetadataOperation___r, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendInitialMetadataOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendInitialMetadataOperation___s, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":58
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_MESSAGE
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendMessageOperation_type, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendMessageOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendMessageOperation___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20SendMessageOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendMessageOperation___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":80
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_CLOSE_FROM_CLIENT
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendCloseFromClientOperation_typ, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendCloseFromClientOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendCloseFromClientOperation___r, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_28SendCloseFromClientOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendCloseFromClientOperation___s, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":99
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_SEND_STATUS_FROM_SERVER
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendStatusFromServerOperation_ty, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_SendStatusFromServerOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendStatusFromServerOperation_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29SendStatusFromServerOperation_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SendStatusFromServerOperation_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":127
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_INITIAL_METADATA
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveInitialMetadataOperation_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":141
 *     grpc_metadata_array_destroy(&self._c_initial_metadata)
 * 
 *   def initial_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._initial_metadata
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_5initial_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveInitialMetadataOperation_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveInitialMetadataOperation, __pyx_mstate_global->__pyx_n_u_initial_metadata, __pyx_t_8) < 0) __PYX_ERR(19, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveInitialMetadataOperation_4, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_31ReceiveInitialMetadataOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveInitialMetadataOperation_5, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":150
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_MESSAGE
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveMessageOperation_type, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":183
 *       self._message = None
 * 
 *   def message(self):             # <<<<<<<<<<<<<<
 *     return self._message
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_5message, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveMessageOperation_message, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveMessageOperation, __pyx_mstate_global->__pyx_n_u_message, __pyx_t_8) < 0) __PYX_ERR(19, 183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveMessageOperation___reduce, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_23ReceiveMessageOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveMessageOperation___setsta, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":192
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_STATUS_ON_CLIENT
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_t, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":220
 *       self._error_string = ""
 * 
 *   def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *     return self._trailing_metadata
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_5trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_t_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_t_8) < 0) __PYX_ERR(19, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":223
 *     return self._trailing_metadata
 * 
 *   def code(self):             # <<<<<<<<<<<<<<
 *     return self._code
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_7code, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_mstate_global->__pyx_n_u_code, __pyx_t_8) < 0) __PYX_ERR(19, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":226
 *     return self._code
 * 
 *   def details(self):             # <<<<<<<<<<<<<<
 *     return self._details
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_9details, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_d, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_mstate_global->__pyx_n_u_details, __pyx_t_8) < 0) __PYX_ERR(19, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":229
 *     return self._details
 * 
 *   def error_string(self):             # <<<<<<<<<<<<<<
 *     return self._error_string
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_11error_string, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_e, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveStatusOnClientOperation, __pyx_mstate_global->__pyx_n_u_error_string, __pyx_t_8) < 0) __PYX_ERR(19, 229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_13__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_30ReceiveStatusOnClientOperation_15__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveStatusOnClientOperation_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":238
 *     self._flags = flags
 * 
 *   def type(self):             # <<<<<<<<<<<<<<
 *     return GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_3type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveCloseOnServerOperation_ty, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_8) < 0) __PYX_ERR(19, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi":249
 *     self._cancelled = bool(self._c_cancelled)
 * 
 *   def cancelled(self):             # <<<<<<<<<<<<<<
 *     return self._cancelled
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_5cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveCloseOnServerOperation_ca, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_ReceiveCloseOnServerOperation, __pyx_mstate_global->__pyx_n_u_cancelled, __pyx_t_8) < 0) __PYX_ERR(19, 249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveCloseOnServerOperation_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_29ReceiveCloseOnServerOperation_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReceiveCloseOnServerOperation_3, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":15
 * # limitations under the License.
 * 
 * class PropagationConstants:             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_PropagationConstants, __pyx_mstate_global->__pyx_n_u_PropagationConstants, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":16
 * 
 * class PropagationConstants:
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_PROPAGATE_DEADLINE); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_GRPC_PROPAGATE_DEADLINE, __pyx_t_2) < 0) __PYX_ERR(40, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":17
 * class PropagationConstants:
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_PROPAGATE_CENSUS_STATS_CONTEXT); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_GRPC_PROPAGATE_CENSUS_STATS_CONT, __pyx_t_2) < 0) __PYX_ERR(40, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":18
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_GRPC_PROPAGATE_CENSUS_TRACING_CO, __pyx_t_2) < 0) __PYX_ERR(40, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":19
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_PROPAGATE_CANCELLATION); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_GRPC_PROPAGATE_CANCELLATION, __pyx_t_2) < 0) __PYX_ERR(40, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":20
 *     GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT = _GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT
 *     GRPC_PROPAGATE_CANCELLATION = _GRPC_PROPAGATE_CANCELLATION
 *     GRPC_PROPAGATE_DEFAULTS = _GRPC_PROPAGATE_DEFAULTS             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_PROPAGATE_DEFAULTS); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_GRPC_PROPAGATE_DEFAULTS, __pyx_t_2) < 0) __PYX_ERR(40, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/propagation_bits.pyx.pxi":15
 * # limitations under the License.
 * 
 * class PropagationConstants:             # <<<<<<<<<<<<<<
 *     GRPC_PROPAGATE_DEADLINE = _GRPC_PROPAGATE_DEADLINE
 *     GRPC_PROPAGATE_CENSUS_STATS_CONTEXT = _GRPC_PROPAGATE_CENSUS_STATS_CONTEXT
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_PropagationConstants, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PropagationConstants, __pyx_t_2) < 0) __PYX_ERR(40, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":35
 * 
 * 
 * class ConnectivityState:             # <<<<<<<<<<<<<<
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_ConnectivityState, __pyx_mstate_global->__pyx_n_u_ConnectivityState, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":36
 * 
 * class ConnectivityState:
 *   idle = GRPC_CHANNEL_IDLE             # <<<<<<<<<<<<<<
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(GRPC_CHANNEL_IDLE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_idle, __pyx_t_2) < 0) __PYX_ERR(21, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":37
 * class ConnectivityState:
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING             # <<<<<<<<<<<<<<
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(GRPC_CHANNEL_CONNECTING); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_connecting, __pyx_t_2) < 0) __PYX_ERR(21, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":38
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY             # <<<<<<<<<<<<<<
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
 *   shutdown = GRPC_CHANNEL_SHUTDOWN
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(GRPC_CHANNEL_READY); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ready, __pyx_t_2) < 0) __PYX_ERR(21, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":39
 *   connecting = GRPC_CHANNEL_CONNECTING
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE             # <<<<<<<<<<<<<<
 *   shutdown = GRPC_CHANNEL_SHUTDOWN
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(GRPC_CHANNEL_TRANSIENT_FAILURE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_transient_failure, __pyx_t_2) < 0) __PYX_ERR(21, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":40
 *   ready = GRPC_CHANNEL_READY
 *   transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE
 *   shutdown = GRPC_CHANNEL_SHUTDOWN             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_connectivity_state(GRPC_CHANNEL_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_shutdown, __pyx_t_2) < 0) __PYX_ERR(21, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":35
 * 
 * 
 * class ConnectivityState:             # <<<<<<<<<<<<<<
 *   idle = GRPC_CHANNEL_IDLE
 *   connecting = GRPC_CHANNEL_CONNECTING
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_ConnectivityState, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ConnectivityState, __pyx_t_2) < 0) __PYX_ERR(21, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":43
 * 
 * 
 * class ChannelArgKey:             # <<<<<<<<<<<<<<
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_ChannelArgKey, __pyx_mstate_global->__pyx_n_u_ChannelArgKey, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":44
 * 
 * class ChannelArgKey:
 *   enable_census = GRPC_ARG_ENABLE_CENSUS             # <<<<<<<<<<<<<<
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_ENABLE_CENSUS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_enable_census, __pyx_t_2) < 0) __PYX_ERR(21, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":45
 * class ChannelArgKey:
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS             # <<<<<<<<<<<<<<
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_CONCURRENT_STREAMS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_max_concurrent_streams, __pyx_t_2) < 0) __PYX_ERR(21, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":46
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH             # <<<<<<<<<<<<<<
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_max_receive_message_length, __pyx_t_2) < 0) __PYX_ERR(21, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":47
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH             # <<<<<<<<<<<<<<
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_max_send_message_length, __pyx_t_2) < 0) __PYX_ERR(21, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":48
 *   max_receive_message_length = GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER             # <<<<<<<<<<<<<<
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_http2_initial_sequence_number, __pyx_t_2) < 0) __PYX_ERR(21, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":49
 *   max_send_message_length = GRPC_ARG_MAX_SEND_MESSAGE_LENGTH
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY             # <<<<<<<<<<<<<<
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_DEFAULT_AUTHORITY); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_default_authority, __pyx_t_2) < 0) __PYX_ERR(21, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":50
 *   http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING             # <<<<<<<<<<<<<<
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_PRIMARY_USER_AGENT_STRING); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_primary_user_agent_string, __pyx_t_2) < 0) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":51
 *   default_authority = GRPC_ARG_DEFAULT_AUTHORITY
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING             # <<<<<<<<<<<<<<
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_ARG_SECONDARY_USER_AGENT_STRING); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_secondary_user_agent_string, __pyx_t_2) < 0) __PYX_ERR(21, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":52
 *   primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG             # <<<<<<<<<<<<<<
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
 * 
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_SSL_SESSION_CACHE_ARG); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ssl_session_cache, __pyx_t_2) < 0) __PYX_ERR(21, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":53
 *   secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING
 *   ssl_session_cache = GRPC_SSL_SESSION_CACHE_ARG
 *   ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyBytes_FromString(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ssl_target_name_override, __pyx_t_2) < 0) __PYX_ERR(21, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":43
 * 
 * 
 * class ChannelArgKey:             # <<<<<<<<<<<<<<
 *   enable_census = GRPC_ARG_ENABLE_CENSUS
 *   max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_ChannelArgKey, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ChannelArgKey, __pyx_t_2) < 0) __PYX_ERR(21, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":56
 * 
 * 
 * class WriteFlag:             # <<<<<<<<<<<<<<
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_WriteFlag, __pyx_mstate_global->__pyx_n_u_WriteFlag, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":57
 * 
 * class WriteFlag:
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT             # <<<<<<<<<<<<<<
 *   no_compress = GRPC_WRITE_NO_COMPRESS
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_WRITE_BUFFER_HINT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_buffer_hint, __pyx_t_2) < 0) __PYX_ERR(21, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":58
 * class WriteFlag:
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_int(GRPC_WRITE_NO_COMPRESS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_no_compress, __pyx_t_2) < 0) __PYX_ERR(21, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":56
 * 
 * 
 * class WriteFlag:             # <<<<<<<<<<<<<<
 *   buffer_hint = GRPC_WRITE_BUFFER_HINT
 *   no_compress = GRPC_WRITE_NO_COMPRESS
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_WriteFlag, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WriteFlag, __pyx_t_2) < 0) __PYX_ERR(21, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":61
 * 
 * 
 * class StatusCode:             # <<<<<<<<<<<<<<
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_StatusCode, __pyx_mstate_global->__pyx_n_u_StatusCode, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":62
 * 
 * class StatusCode:
 *   ok = GRPC_STATUS_OK             # <<<<<<<<<<<<<<
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_OK); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ok, __pyx_t_2) < 0) __PYX_ERR(21, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":63
 * class StatusCode:
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED             # <<<<<<<<<<<<<<
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_CANCELLED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_cancelled, __pyx_t_2) < 0) __PYX_ERR(21, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":64
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN             # <<<<<<<<<<<<<<
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_UNKNOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_unknown, __pyx_t_2) < 0) __PYX_ERR(21, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":65
 *   cancelled = GRPC_STATUS_CANCELLED
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT             # <<<<<<<<<<<<<<
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_INVALID_ARGUMENT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_invalid_argument, __pyx_t_2) < 0) __PYX_ERR(21, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":66
 *   unknown = GRPC_STATUS_UNKNOWN
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED             # <<<<<<<<<<<<<<
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_DEADLINE_EXCEEDED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_deadline_exceeded, __pyx_t_2) < 0) __PYX_ERR(21, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":67
 *   invalid_argument = GRPC_STATUS_INVALID_ARGUMENT
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND             # <<<<<<<<<<<<<<
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_NOT_FOUND); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_not_found, __pyx_t_2) < 0) __PYX_ERR(21, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":68
 *   deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS             # <<<<<<<<<<<<<<
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_ALREADY_EXISTS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_already_exists, __pyx_t_2) < 0) __PYX_ERR(21, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":69
 *   not_found = GRPC_STATUS_NOT_FOUND
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED             # <<<<<<<<<<<<<<
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_PERMISSION_DENIED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_permission_denied, __pyx_t_2) < 0) __PYX_ERR(21, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":70
 *   already_exists = GRPC_STATUS_ALREADY_EXISTS
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED             # <<<<<<<<<<<<<<
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_UNAUTHENTICATED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_unauthenticated, __pyx_t_2) < 0) __PYX_ERR(21, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":71
 *   permission_denied = GRPC_STATUS_PERMISSION_DENIED
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED             # <<<<<<<<<<<<<<
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_RESOURCE_EXHAUSTED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_resource_exhausted, __pyx_t_2) < 0) __PYX_ERR(21, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":72
 *   unauthenticated = GRPC_STATUS_UNAUTHENTICATED
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION             # <<<<<<<<<<<<<<
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_FAILED_PRECONDITION); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_failed_precondition, __pyx_t_2) < 0) __PYX_ERR(21, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":73
 *   resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED             # <<<<<<<<<<<<<<
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_ABORTED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_aborted, __pyx_t_2) < 0) __PYX_ERR(21, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":74
 *   failed_precondition = GRPC_STATUS_FAILED_PRECONDITION
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE             # <<<<<<<<<<<<<<
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_OUT_OF_RANGE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_out_of_range, __pyx_t_2) < 0) __PYX_ERR(21, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":75
 *   aborted = GRPC_STATUS_ABORTED
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED             # <<<<<<<<<<<<<<
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_UNIMPLEMENTED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_unimplemented, __pyx_t_2) < 0) __PYX_ERR(21, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":76
 *   out_of_range = GRPC_STATUS_OUT_OF_RANGE
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL             # <<<<<<<<<<<<<<
 *   unavailable = GRPC_STATUS_UNAVAILABLE
 *   data_loss = GRPC_STATUS_DATA_LOSS
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_INTERNAL); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_internal, __pyx_t_2) < 0) __PYX_ERR(21, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":77
 *   unimplemented = GRPC_STATUS_UNIMPLEMENTED
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE             # <<<<<<<<<<<<<<
 *   data_loss = GRPC_STATUS_DATA_LOSS
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_UNAVAILABLE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_unavailable, __pyx_t_2) < 0) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":78
 *   internal = GRPC_STATUS_INTERNAL
 *   unavailable = GRPC_STATUS_UNAVAILABLE
 *   data_loss = GRPC_STATUS_DATA_LOSS             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_status_code(GRPC_STATUS_DATA_LOSS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_data_loss, __pyx_t_2) < 0) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":61
 * 
 * 
 * class StatusCode:             # <<<<<<<<<<<<<<
 *   ok = GRPC_STATUS_OK
 *   cancelled = GRPC_STATUS_CANCELLED
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_StatusCode, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_StatusCode, __pyx_t_2) < 0) __PYX_ERR(21, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":81
 * 
 * 
 * class CallError:             # <<<<<<<<<<<<<<
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_CallError, __pyx_mstate_global->__pyx_n_u_CallError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":82
 * 
 * class CallError:
 *   ok = GRPC_CALL_OK             # <<<<<<<<<<<<<<
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_OK); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ok, __pyx_t_2) < 0) __PYX_ERR(21, 82, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":83
 * class CallError:
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR             # <<<<<<<<<<<<<<
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_error, __pyx_t_2) < 0) __PYX_ERR(21, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":84
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER             # <<<<<<<<<<<<<<
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_NOT_ON_SERVER); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_not_on_server, __pyx_t_2) < 0) __PYX_ERR(21, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":85
 *   error = GRPC_CALL_ERROR
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT             # <<<<<<<<<<<<<<
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_NOT_ON_CLIENT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_not_on_client, __pyx_t_2) < 0) __PYX_ERR(21, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":86
 *   not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED             # <<<<<<<<<<<<<<
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_ACCEPTED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_already_accepted, __pyx_t_2) < 0) __PYX_ERR(21, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":87
 *   not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED             # <<<<<<<<<<<<<<
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_INVOKED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_already_invoked, __pyx_t_2) < 0) __PYX_ERR(21, 87, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":88
 *   already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED             # <<<<<<<<<<<<<<
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_NOT_INVOKED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_not_invoked, __pyx_t_2) < 0) __PYX_ERR(21, 88, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":89
 *   already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED             # <<<<<<<<<<<<<<
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_ALREADY_FINISHED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_already_finished, __pyx_t_2) < 0) __PYX_ERR(21, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":90
 *   not_invoked = GRPC_CALL_ERROR_NOT_INVOKED
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS             # <<<<<<<<<<<<<<
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_TOO_MANY_OPERATIONS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_too_many_operations, __pyx_t_2) < 0) __PYX_ERR(21, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":91
 *   already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS             # <<<<<<<<<<<<<<
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_FLAGS); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_invalid_flags, __pyx_t_2) < 0) __PYX_ERR(21, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":92
 *   too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
 *   invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS
 *   invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_call_error(GRPC_CALL_ERROR_INVALID_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_invalid_metadata, __pyx_t_2) < 0) __PYX_ERR(21, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":81
 * 
 * 
 * class CallError:             # <<<<<<<<<<<<<<
 *   ok = GRPC_CALL_OK
 *   error = GRPC_CALL_ERROR
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_CallError, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CallError, __pyx_t_2) < 0) __PYX_ERR(21, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":95
 * 
 * 
 * class CompletionType:             # <<<<<<<<<<<<<<
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_CompletionType, __pyx_mstate_global->__pyx_n_u_CompletionType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":96
 * 
 * class CompletionType:
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN             # <<<<<<<<<<<<<<
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 *   operation_complete = GRPC_OP_COMPLETE
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_SHUTDOWN); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_queue_shutdown, __pyx_t_2) < 0) __PYX_ERR(21, 96, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":97
 * class CompletionType:
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT             # <<<<<<<<<<<<<<
 *   operation_complete = GRPC_OP_COMPLETE
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_completion_type(GRPC_QUEUE_TIMEOUT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_queue_timeout, __pyx_t_2) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":98
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
 *   operation_complete = GRPC_OP_COMPLETE             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_completion_type(GRPC_OP_COMPLETE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_operation_complete, __pyx_t_2) < 0) __PYX_ERR(21, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":95
 * 
 * 
 * class CompletionType:             # <<<<<<<<<<<<<<
 *   queue_shutdown = GRPC_QUEUE_SHUTDOWN
 *   queue_timeout = GRPC_QUEUE_TIMEOUT
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_CompletionType, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CompletionType, __pyx_t_2) < 0) __PYX_ERR(21, 95, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":101
 * 
 * 
 * class OperationType:             # <<<<<<<<<<<<<<
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_OperationType, __pyx_mstate_global->__pyx_n_u_OperationType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":102
 * 
 * class OperationType:
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_INITIAL_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_send_initial_metadata_2, __pyx_t_2) < 0) __PYX_ERR(21, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":103
 * class OperationType:
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE             # <<<<<<<<<<<<<<
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_MESSAGE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_send_message_2, __pyx_t_2) < 0) __PYX_ERR(21, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":104
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT             # <<<<<<<<<<<<<<
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_CLOSE_FROM_CLIENT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_send_close_from_client, __pyx_t_2) < 0) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":105
 *   send_message = GRPC_OP_SEND_MESSAGE
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER             # <<<<<<<<<<<<<<
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_SEND_STATUS_FROM_SERVER); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_send_status_from_server, __pyx_t_2) < 0) __PYX_ERR(21, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":106
 *   send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA             # <<<<<<<<<<<<<<
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_INITIAL_METADATA); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata_2, __pyx_t_2) < 0) __PYX_ERR(21, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":107
 *   send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE             # <<<<<<<<<<<<<<
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_MESSAGE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_receive_message_2, __pyx_t_2) < 0) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":108
 *   receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT             # <<<<<<<<<<<<<<
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_STATUS_ON_CLIENT); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_receive_status_on_client, __pyx_t_2) < 0) __PYX_ERR(21, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":109
 *   receive_message = GRPC_OP_RECV_MESSAGE
 *   receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT
 *   receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER             # <<<<<<<<<<<<<<
 * 
 * GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM= (
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_op_type(GRPC_OP_RECV_CLOSE_ON_SERVER); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_receive_close_on_server, __pyx_t_2) < 0) __PYX_ERR(21, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":101
 * 
 * 
 * class OperationType:             # <<<<<<<<<<<<<<
 *   send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA
 *   send_message = GRPC_OP_SEND_MESSAGE
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_OperationType, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OperationType, __pyx_t_2) < 0) __PYX_ERR(21, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":112
 * 
 * GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM= (
 *   _GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM)             # <<<<<<<<<<<<<<
 * 
 * GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY = (
*/
  __pyx_t_8 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_GRPC_COMPRESSION_CHANNEL_DEFAULT, __pyx_t_8) < 0) __PYX_ERR(21, 111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":115
 * 
 * GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY = (
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)             # <<<<<<<<<<<<<<
 * 
 * class CompressionAlgorithm:
*/
  __pyx_t_8 = __Pyx_PyBytes_FromString(GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_GRPC_COMPRESSION_REQUEST_ALGORIT, __pyx_t_8) < 0) __PYX_ERR(21, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":117
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)
 * 
 * class CompressionAlgorithm:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":118
 * 
 * class CompressionAlgorithm:
 *   none = GRPC_COMPRESS_NONE             # <<<<<<<<<<<<<<
 *   deflate = GRPC_COMPRESS_DEFLATE
 *   gzip = GRPC_COMPRESS_GZIP
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_algorithm(GRPC_COMPRESS_NONE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_none, __pyx_t_2) < 0) __PYX_ERR(21, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":119
 * class CompressionAlgorithm:
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE             # <<<<<<<<<<<<<<
 *   gzip = GRPC_COMPRESS_GZIP
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_algorithm(GRPC_COMPRESS_DEFLATE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_deflate, __pyx_t_2) < 0) __PYX_ERR(21, 119, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":120
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
 *   gzip = GRPC_COMPRESS_GZIP             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_algorithm(GRPC_COMPRESS_GZIP); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_gzip, __pyx_t_2) < 0) __PYX_ERR(21, 120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":117
 *   _GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY)
 * 
 * class CompressionAlgorithm:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_NONE
 *   deflate = GRPC_COMPRESS_DEFLATE
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm, __pyx_t_2) < 0) __PYX_ERR(21, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":123
 * 
 * 
 * class CompressionLevel:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
*/
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_CompressionLevel, __pyx_mstate_global->__pyx_n_u_CompressionLevel, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":124
 * 
 * class CompressionLevel:
 *   none = GRPC_COMPRESS_LEVEL_NONE             # <<<<<<<<<<<<<<
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_NONE); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_none, __pyx_t_2) < 0) __PYX_ERR(21, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":125
 * class CompressionLevel:
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW             # <<<<<<<<<<<<<<
 *   medium = GRPC_COMPRESS_LEVEL_MED
 *   high = GRPC_COMPRESS_LEVEL_HIGH
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_low, __pyx_t_2) < 0) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":126
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED             # <<<<<<<<<<<<<<
 *   high = GRPC_COMPRESS_LEVEL_HIGH
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_MED); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_medium, __pyx_t_2) < 0) __PYX_ERR(21, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":127
 *   low = GRPC_COMPRESS_LEVEL_LOW
 *   medium = GRPC_COMPRESS_LEVEL_MED
 *   high = GRPC_COMPRESS_LEVEL_HIGH             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_grpc_compression_level(GRPC_COMPRESS_LEVEL_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_high, __pyx_t_2) < 0) __PYX_ERR(21, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":123
 * 
 * 
 * class CompressionLevel:             # <<<<<<<<<<<<<<
 *   none = GRPC_COMPRESS_LEVEL_NONE
 *   low = GRPC_COMPRESS_LEVEL_LOW
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_CompressionLevel, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CompressionLevel, __pyx_t_2) < 0) __PYX_ERR(21, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallDetails___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_11CallDetails_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallDetails___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SslPemKeyCertPair___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17SslPemKeyCertPair_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SslPemKeyCertPair___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":170
 *       grpc_compression_options_init(&self.c_options)
 * 
 *   def enable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_3enable_algorithm, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions_enable_algori, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_mstate_global->__pyx_n_u_enable_algorithm, __pyx_t_8) < 0) __PYX_ERR(21, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":174
 *       grpc_compression_options_enable_algorithm(&self.c_options, algorithm)
 * 
 *   def disable_algorithm(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     with nogil:
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_5disable_algorithm, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions_disable_algor, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_mstate_global->__pyx_n_u_disable_algorithm, __pyx_t_8) < 0) __PYX_ERR(21, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":178
 *       grpc_compression_options_disable_algorithm(&self.c_options, algorithm)
 * 
 *   def is_algorithm_enabled(self, grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *     cdef int result
 *     with nogil:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_7is_algorithm_enabled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions_is_algorithm, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_mstate_global->__pyx_n_u_is_algorithm_enabled, __pyx_t_8) < 0) __PYX_ERR(21, 178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":185
 *     return result
 * 
 *   def to_channel_arg(self):             # <<<<<<<<<<<<<<
 *     return (
 *         GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_9to_channel_arg, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions_to_channel_ar, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CompressionOptions, __pyx_mstate_global->__pyx_n_u_to_channel_arg, __pyx_t_8) < 0) __PYX_ERR(21, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18CompressionOptions_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CompressionOptions___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":192
 * 
 * 
 * def compression_algorithm_name(grpc_compression_algorithm algorithm):             # <<<<<<<<<<<<<<
 *   cdef const char* name
 *   with nogil:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_47compression_algorithm_name, 0, __pyx_mstate_global->__pyx_n_u_compression_algorithm_name, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_compression_algorithm_name, __pyx_t_8) < 0) __PYX_ERR(21, 192, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi":200
 * 
 * 
 * def reset_grpc_config_vars():             # <<<<<<<<<<<<<<
 *   ConfigVars.Reset()
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_49reset_grpc_config_vars, 0, __pyx_mstate_global->__pyx_n_u_reset_grpc_config_vars, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reset_grpc_config_vars, __pyx_t_8) < 0) __PYX_ERR(21, 200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":17
 * from libc.string cimport memcpy
 * 
 * import pkgutil             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_pkgutil, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pkgutil, __pyx_t_8) < 0) __PYX_ERR(22, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":36
 * 
 * 
 * def peer_identities(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_51peer_identities, 0, __pyx_mstate_global->__pyx_n_u_peer_identities, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_peer_identities, __pyx_t_8) < 0) __PYX_ERR(22, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":55
 *   return identities if identities else None
 * 
 * def peer_identity_key(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef const char* c_key
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_53peer_identity_key, 0, __pyx_mstate_global->__pyx_n_u_peer_identity_key, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_peer_identity_key, __pyx_t_8) < 0) __PYX_ERR(22, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi":69
 *   return key
 * 
 * def auth_context(Call call):             # <<<<<<<<<<<<<<
 *   cdef grpc_auth_context* auth_context
 *   cdef grpc_auth_property_iterator properties
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_55auth_context, 0, __pyx_mstate_global->__pyx_n_u_auth_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_auth_context, __pyx_t_8) < 0) __PYX_ERR(22, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RegisteredMethod___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16RegisteredMethod_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RegisteredMethod___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":59
 *     self.references.append(arguments)
 * 
 *   def request_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None, tag):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_3request_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_request_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_request_call_2, __pyx_t_8) < 0) __PYX_ERR(23, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":69
 *     return self._c_request_unregistered_call(request_call_tag, call_queue, server_queue)
 * 
 *   def request_registered_call(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue call_queue not None,
 *       CompletionQueue server_queue not None,
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_5request_registered_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_request_registered_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_request_registered_call, __pyx_t_8) < 0) __PYX_ERR(23, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":124
 *     return c_call_error
 * 
 *   def register_completion_queue(             # <<<<<<<<<<<<<<
 *       self, CompletionQueue queue not None):
 *     if self.is_started:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_7register_completion_queue, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_register_completion_queue, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_register_completion_queue, __pyx_t_8) < 0) __PYX_ERR(23, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":133
 *     self.registered_completion_queues.append(queue)
 * 
 *   def register_method(self, str fully_qualified_method):             # <<<<<<<<<<<<<<
 *     method_bytes = str_to_bytes(fully_qualified_method)
 *     if method_bytes in self.registered_methods.keys():
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_9register_method, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_register_method, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_register_method, __pyx_t_8) < 0) __PYX_ERR(23, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_11start, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_start, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[9]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_start, __pyx_t_8) < 0) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":161
 *       self.backup_shutdown_queue.poll(deadline=time.time())
 * 
 *   def add_http2_port(self, bytes address,             # <<<<<<<<<<<<<<
 *                      ServerCredentials server_credentials=None):
 *     address = str_to_bytes(address)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_13add_http2_port, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_add_http2_port, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_add_http2_port, __pyx_t_8) < 0) __PYX_ERR(23, 161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":189
 *           <cpython.PyObject *>server_shutdown_tag)
 * 
 *   def shutdown(self, CompletionQueue queue not None, tag):             # <<<<<<<<<<<<<<
 *     if queue.is_shutting_down:
 *       raise ValueError("queue must be live")
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_15shutdown, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_shutdown, __pyx_t_8) < 0) __PYX_ERR(23, 189, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":206
 *     self.is_shutdown = True
 * 
 *   def cancel_all_calls(self):             # <<<<<<<<<<<<<<
 *     if not self.is_shutting_down:
 *       raise UsageError("the server must be shutting down to cancel all calls")
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_17cancel_all_calls, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_cancel_all_calls, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_cancel_all_calls, __pyx_t_8) < 0) __PYX_ERR(23, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":218
 *   # portion of this is safe to call from __dealloc__, and potentially remove
 *   # backup_shutdown_queue.
 *   def destroy(self):             # <<<<<<<<<<<<<<
 *     if self.c_server != NULL:
 *       if not self.is_started:
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_19destroy, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server_destroy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_Server, __pyx_mstate_global->__pyx_n_u_destroy, __pyx_t_8) < 0) __PYX_ERR(23, 218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_23__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_6Server_25__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Server___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Tag___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle__Tag, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle__Tag__set_state(self, __pyx_state)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_Tag_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Tag___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__Tag, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConnectivityTag___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ConnectivityTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConnectivityTag___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestCallTag___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_RequestCallTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RequestCallTag___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BatchOperationTag___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_BatchOperationTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BatchOperationTag___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerShutdownTag___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ServerShutdownTag_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServerShutdownTag___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":34
 * 
 * cdef grpc_arg_pointer_vtable default_vtable
 * default_vtable.copy = &_copy_pointer             # <<<<<<<<<<<<<<
 * default_vtable.destroy = &_destroy_pointer
 * default_vtable.cmp = &_compare_pointer
*/
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.copy = (&__pyx_f_4grpc_7_cython_6cygrpc__copy_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":35
 * cdef grpc_arg_pointer_vtable default_vtable
 * default_vtable.copy = &_copy_pointer
 * default_vtable.destroy = &_destroy_pointer             # <<<<<<<<<<<<<<
 * default_vtable.cmp = &_compare_pointer
*/
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.destroy = (&__pyx_f_4grpc_7_cython_6cygrpc__destroy_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi":36
 * default_vtable.copy = &_copy_pointer
 * default_vtable.destroy = &_destroy_pointer
 * default_vtable.cmp = &_compare_pointer             # <<<<<<<<<<<<<<
*/
  __pyx_v_4grpc_7_cython_6cygrpc_default_vtable.cmp = (&__pyx_f_4grpc_7_cython_6cygrpc__compare_pointer);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":19
 *   raise NotImplementedError("No custom hooks are implemented")
 * 
 * def install_context_from_request_call_event(RequestCallEvent event):             # <<<<<<<<<<<<<<
 *   maybe_save_server_trace_context(event)
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_57install_context_from_request_call_event, 0, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal_2, __pyx_t_8) < 0) __PYX_ERR(26, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":22
 *   maybe_save_server_trace_context(event)
 * 
 * def install_context_from_request_call_event_aio(GrpcCallWrapper event):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_59install_context_from_request_call_event_aio, 0, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_install_context_from_request_cal, __pyx_t_8) < 0) __PYX_ERR(26, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":25
 *   pass
 * 
 * def uninstall_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_61uninstall_context, 0, __pyx_mstate_global->__pyx_n_u_uninstall_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_uninstall_context, __pyx_t_8) < 0) __PYX_ERR(26, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":28
 *   pass
 * 
 * def build_census_context():             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_63build_census_context, 0, __pyx_mstate_global->__pyx_n_u_build_census_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_build_census_context, __pyx_t_8) < 0) __PYX_ERR(26, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CensusContext___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_8) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CensusContext, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CensusContext__set_state(self, __pyx_state)
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_13CensusContext_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CensusContext___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CensusContext, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_8) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":34
 *   pass
 * 
 * def set_census_context_on_call(_CallState call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_65set_census_context_on_call, 0, __pyx_mstate_global->__pyx_n_u_set_census_context_on_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_set_census_context_on_call, __pyx_t_8) < 0) __PYX_ERR(26, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":37
 *   pass
 * 
 * def set_instrumentation_context_on_call_aio(GrpcCallWrapper call_state, CensusContext census_ctx):             # <<<<<<<<<<<<<<
 *   pass
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_67set_instrumentation_context_on_call_aio, 0, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_set_instrumentation_context_on_c, __pyx_t_8) < 0) __PYX_ERR(26, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/_hooks.pyx.pxi":40
 *   pass
 * 
 * def get_deadline_from_context():             # <<<<<<<<<<<<<<
 *   return None
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_69get_deadline_from_context, 0, __pyx_mstate_global->__pyx_n_u_get_deadline_from_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_deadline_from_context, __pyx_t_8) < 0) __PYX_ERR(26, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":14
 * # See the License for the specific language governing permissions and
 * # limitations under the License.
 * import codecs             # <<<<<<<<<<<<<<
 * from typing import Optional
 * 
*/
  __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_codecs, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 14, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_codecs, __pyx_t_8) < 0) __PYX_ERR(27, 14, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":15
 * # limitations under the License.
 * import codecs
 * from typing import Optional             # <<<<<<<<<<<<<<
 * 
 * from libcpp.cast cimport static_cast
*/
  __pyx_t_8 = __Pyx_PyList_Pack(1, __pyx_mstate_global->__pyx_n_u_Optional); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_typing, __pyx_t_8, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Optional); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Optional, __pyx_t_8) < 0) __PYX_ERR(27, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":19
 * from libcpp.cast cimport static_cast
 * 
 * from grpc import _observability             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __Pyx_PyList_Pack(1, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_grpc, __pyx_t_2, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_observability); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_observability, __pyx_t_2) < 0) __PYX_ERR(27, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":22
 * 
 * 
 * cdef const char* CLIENT_CALL_TRACER = "client_call_tracer"             # <<<<<<<<<<<<<<
 * cdef const char* SERVER_CALL_TRACER_FACTORY = "server_call_tracer_factory"
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc_CLIENT_CALL_TRACER = ((char const *)"client_call_tracer");

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":23
 * 
 * cdef const char* CLIENT_CALL_TRACER = "client_call_tracer"
 * cdef const char* SERVER_CALL_TRACER_FACTORY = "server_call_tracer_factory"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc_SERVER_CALL_TRACER_FACTORY = ((char const *)"server_call_tracer_factory");

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":26
 * 
 * 
 * def get_server_call_tracer_factory_address(object observability_plugin, bint xds) -> Optional[int]:             # <<<<<<<<<<<<<<
 *   capsule = observability_plugin.create_server_call_tracer_factory(xds=xds)
 *   if capsule:
*/
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_kp_u_Optional_int) < 0) __PYX_ERR(27, 26, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_71get_server_call_tracer_factory_address, 0, __pyx_mstate_global->__pyx_n_u_get_server_call_tracer_factory_a, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_8);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_server_call_tracer_factory_a, __pyx_t_2) < 0) __PYX_ERR(27, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":34
 *     return None
 * 
 * def clear_server_call_tracer_factory() -> None:             # <<<<<<<<<<<<<<
 *   _register_server_call_tracer_factory(NULL)
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_None) < 0) __PYX_ERR(27, 34, __pyx_L1_error)
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_73clear_server_call_tracer_factory, 0, __pyx_mstate_global->__pyx_n_u_clear_server_call_tracer_factory, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_8, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_clear_server_call_tracer_factory, __pyx_t_8) < 0) __PYX_ERR(27, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/observability.pyx.pxi":38
 * 
 * 
 * def maybe_save_server_trace_context(RequestCallEvent event) -> None:             # <<<<<<<<<<<<<<
 *   cdef ServerCallTracer* server_call_tracer
 *   with _observability.get_plugin() as plugin:
*/
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_None) < 0) __PYX_ERR(27, 38, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_75maybe_save_server_trace_context, 0, __pyx_mstate_global->__pyx_n_u_maybe_save_server_trace_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_8);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_maybe_save_server_trace_context, __pyx_t_2) < 0) __PYX_ERR(27, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":21
 * from cpython cimport Py_INCREF, Py_DECREF
 * 
 * import atexit             # <<<<<<<<<<<<<<
 * import errno
 * import sys
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_atexit, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_atexit, __pyx_t_2) < 0) __PYX_ERR(28, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":22
 * 
 * import atexit
 * import errno             # <<<<<<<<<<<<<<
 * import sys
 * 
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_errno, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_errno, __pyx_t_2) < 0) __PYX_ERR(28, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":23
 * import atexit
 * import errno
 * import sys             # <<<<<<<<<<<<<<
 * 
 * gevent_hub = None
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_2) < 0) __PYX_ERR(28, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":25
 * import sys
 * 
 * gevent_hub = None             # <<<<<<<<<<<<<<
 * g_gevent_pool = None
 * g_gevent_threadpool = None
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_gevent_hub, Py_None) < 0) __PYX_ERR(28, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":26
 * 
 * gevent_hub = None
 * g_gevent_pool = None             # <<<<<<<<<<<<<<
 * g_gevent_threadpool = None
 * g_gevent_activated = False
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_pool, Py_None) < 0) __PYX_ERR(28, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":27
 * gevent_hub = None
 * g_gevent_pool = None
 * g_gevent_threadpool = None             # <<<<<<<<<<<<<<
 * g_gevent_activated = False
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_threadpool, Py_None) < 0) __PYX_ERR(28, 27, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":28
 * g_gevent_pool = None
 * g_gevent_threadpool = None
 * g_gevent_activated = False             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_g_gevent_activated, Py_False) < 0) __PYX_ERR(28, 28, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":34
 * cdef condition_variable g_greenlets_cv
 * cdef mutex g_greenlets_mu
 * cdef bint g_shutdown_greenlets_to_run_queue = False             # <<<<<<<<<<<<<<
 * cdef int g_channel_count = 0
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_shutdown_greenlets_to_run_queue = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":35
 * cdef mutex g_greenlets_mu
 * cdef bint g_shutdown_greenlets_to_run_queue = False
 * cdef int g_channel_count = 0             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc_g_channel_count = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":49
 * 
 * 
 * cpdef void gevent_increment_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   cdef int old_channel_count
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_77gevent_increment_channel_count, 0, __pyx_mstate_global->__pyx_n_u_gevent_increment_channel_count, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_gevent_increment_channel_count, __pyx_t_2) < 0) __PYX_ERR(28, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":61
 * 
 * 
 * cpdef void gevent_decrement_channel_count():             # <<<<<<<<<<<<<<
 *   global g_channel_count
 *   with nogil:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_79gevent_decrement_channel_count, 0, __pyx_mstate_global->__pyx_n_u_gevent_decrement_channel_count, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_gevent_decrement_channel_count, __pyx_t_2) < 0) __PYX_ERR(28, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":93
 *   return to_call
 * 
 * def spawn_greenlets():             # <<<<<<<<<<<<<<
 *   while True:
 *     to_call = g_gevent_threadpool.apply(await_next_greenlet, ())
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_81spawn_greenlets, 0, __pyx_mstate_global->__pyx_n_u_spawn_greenlets, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_spawn_greenlets, __pyx_t_2) < 0) __PYX_ERR(28, 93, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":102
 *     fn(*args)
 * 
 * def run_spawn_greenlets():             # <<<<<<<<<<<<<<
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_83run_spawn_greenlets, 0, __pyx_mstate_global->__pyx_n_u_run_spawn_greenlets, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_run_spawn_greenlets, __pyx_t_2) < 0) __PYX_ERR(28, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":105
 *   g_gevent_pool.spawn(spawn_greenlets)
 * 
 * def shutdown_await_next_greenlet():             # <<<<<<<<<<<<<<
 *   global g_shutdown_greenlets_to_run_queue
 *   cdef unique_lock[mutex]* lk
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_85shutdown_await_next_greenlet, 0, __pyx_mstate_global->__pyx_n_u_shutdown_await_next_greenlet, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_shutdown_await_next_greenlet, __pyx_t_2) < 0) __PYX_ERR(28, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":114
 *   g_greenlets_cv.notify_all()
 * 
 * def init_grpc_gevent():             # <<<<<<<<<<<<<<
 *   # Lazily import gevent
 *   global gevent_hub
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_87init_grpc_gevent, 0, __pyx_mstate_global->__pyx_n_u_init_grpc_gevent, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_2)) __PYX_ERR(28, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_init_grpc_gevent, __pyx_t_2) < 0) __PYX_ERR(28, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":15
 * # limitations under the License.
 * 
 * def _contextvars_supported():             # <<<<<<<<<<<<<<
 *     """Determines if the contextvars module is supported.
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_89_contextvars_supported, 0, __pyx_mstate_global->__pyx_n_u_contextvars_supported, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_contextvars_supported, __pyx_t_2) < 0) __PYX_ERR(29, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":33
 * 
 * 
 * def _run_with_context(target):             # <<<<<<<<<<<<<<
 *     """Runs a callable with contextvars propagated.
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_91_run_with_context, 0, __pyx_mstate_global->__pyx_n_u_run_with_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_run_with_context, __pyx_t_2) < 0) __PYX_ERR(29, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":48
 * 
 * 
 * if _contextvars_supported():             # <<<<<<<<<<<<<<
 *     import contextvars
 *     def _run_with_context(target):
*/
  __pyx_t_8 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_contextvars_supported); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(29, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_10) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":49
 * 
 * if _contextvars_supported():
 *     import contextvars             # <<<<<<<<<<<<<<
 *     def _run_with_context(target):
 *         ctx = contextvars.copy_context()
*/
    __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_contextvars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 49, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_contextvars, __pyx_t_2) < 0) __PYX_ERR(29, 49, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":50
 * if _contextvars_supported():
 *     import contextvars
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         ctx = contextvars.copy_context()
 *         def _run(*args):
*/
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_93_run_with_context, 0, __pyx_mstate_global->__pyx_n_u_run_with_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_run_with_context, __pyx_t_2) < 0) __PYX_ERR(29, 50, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":48
 * 
 * 
 * if _contextvars_supported():             # <<<<<<<<<<<<<<
 *     import contextvars
 *     def _run_with_context(target):
*/
    goto __pyx_L10;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/thread.pyx.pxi":56
 *         return _run
 * else:
 *     def _run_with_context(target):             # <<<<<<<<<<<<<<
 *         def _run(*args):
 *             target(*args)
*/
  /*else*/ {
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_95_run_with_context, 0, __pyx_mstate_global->__pyx_n_u_run_with_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_run_with_context, __pyx_t_2) < 0) __PYX_ERR(29, 56, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L10:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":15
 * # limitations under the License.
 * 
 * import os             # <<<<<<<<<<<<<<
 * 
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_os, __pyx_t_2) < 0) __PYX_ERR(1, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":17
 * import os
 * 
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5             # <<<<<<<<<<<<<<
 * 
 * _TRUE_VALUES = ['yes',  'Yes',  'YES', 'true', 'True', 'TRUE', '1']
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AWAIT_THREADS_TIMEOUT_SECONDS, __pyx_mstate_global->__pyx_int_5) < 0) __PYX_ERR(1, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":19
 * _AWAIT_THREADS_TIMEOUT_SECONDS = 5
 * 
 * _TRUE_VALUES = ['yes',  'Yes',  'YES', 'true', 'True', 'TRUE', '1']             # <<<<<<<<<<<<<<
 * 
 * # This flag enables experimental support within gRPC Python for applications
*/
  __pyx_t_2 = __Pyx_PyList_Pack(7, __pyx_mstate_global->__pyx_n_u_yes, __pyx_mstate_global->__pyx_n_u_Yes, __pyx_mstate_global->__pyx_n_u_YES, __pyx_mstate_global->__pyx_n_u_true, __pyx_mstate_global->__pyx_n_u_True, __pyx_mstate_global->__pyx_n_u_TRUE, __pyx_mstate_global->__pyx_kp_u_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRUE_VALUES, __pyx_t_2) < 0) __PYX_ERR(1, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":33
 * # This flag is also not supported for non-native IO manager.
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')             # <<<<<<<<<<<<<<
 *         .lower() in _TRUE_VALUES)
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_environ); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[10], NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_7 = __pyx_t_6;
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_9 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":34
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')
 *         .lower() in _TRUE_VALUES)             # <<<<<<<<<<<<<<
 * 
 * _fork_handler_failed = False
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TRUE_VALUES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_6, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT, __pyx_t_6) < 0) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":36
 *         .lower() in _TRUE_VALUES)
 * 
 * _fork_handler_failed = False             # <<<<<<<<<<<<<<
 * 
 * cdef void __prefork() noexcept nogil:
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_handler_failed, Py_False) < 0) __PYX_ERR(1, 36, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":93
 * 
 * 
 * def fork_handlers_and_grpc_init():             # <<<<<<<<<<<<<<
 *     grpc_init()
 *     if _GRPC_ENABLE_FORK_SUPPORT:
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_97fork_handlers_and_grpc_init, 0, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_handlers_and_grpc_init, __pyx_t_6) < 0) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
*/
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[12]); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_ForkManagedThread, __pyx_mstate_global->__pyx_n_u_ForkManagedThread, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_6 != __pyx_mstate_global->__pyx_tuple[12]) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[12]) < 0))) __PYX_ERR(1, 106, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ForkManagedThread___init, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_mstate_global->__pyx_tuple[13]);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_8) < 0) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":118
 *             self._thread = threading.Thread(target=_run_with_context(target), args=args)
 * 
 *     def setDaemon(self, daemonic):             # <<<<<<<<<<<<<<
 *         self._thread.daemon = daemonic
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_3setDaemon, 0, __pyx_mstate_global->__pyx_n_u_ForkManagedThread_setDaemon, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_setDaemon, __pyx_t_8) < 0) __PYX_ERR(1, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":121
 *         self._thread.daemon = daemonic
 * 
 *     def start(self):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             _fork_state.active_thread_count.increment()
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_5start, 0, __pyx_mstate_global->__pyx_n_u_ForkManagedThread_start, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_start, __pyx_t_8) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":126
 *         self._thread.start()
 * 
 *     def join(self):             # <<<<<<<<<<<<<<
 *         self._thread.join()
 * 
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_17ForkManagedThread_7join, 0, __pyx_mstate_global->__pyx_n_u_ForkManagedThread_join, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_join, __pyx_t_8) < 0) __PYX_ERR(1, 126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
*/
  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ForkManagedThread, __pyx_t_6, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ForkManagedThread, __pyx_t_8) < 0) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":130
 * 
 * 
 * def block_if_fork_in_progress(postfork_state_to_reset=None):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         with _fork_state.fork_in_progress_condition:
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_99block_if_fork_in_progress, 0, __pyx_mstate_global->__pyx_n_u_block_if_fork_in_progress, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_mstate_global->__pyx_tuple[6]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_block_if_fork_in_progress, __pyx_t_6) < 0) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":142
 * 
 * 
 * def enter_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.decrement()
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_101enter_user_request_generator, 0, __pyx_mstate_global->__pyx_n_u_enter_user_request_generator, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_enter_user_request_generator, __pyx_t_6) < 0) __PYX_ERR(1, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":147
 * 
 * 
 * def return_from_user_request_generator():             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.active_thread_count.increment()
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_103return_from_user_request_generator, 0, __pyx_mstate_global->__pyx_n_u_return_from_user_request_generat, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_return_from_user_request_generat, __pyx_t_6) < 0) __PYX_ERR(1, 147, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":153
 * 
 * 
 * def get_fork_epoch():             # <<<<<<<<<<<<<<
 *     return _fork_state.fork_epoch
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_105get_fork_epoch, 0, __pyx_mstate_global->__pyx_n_u_get_fork_epoch, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_fork_epoch, __pyx_t_6) < 0) __PYX_ERR(1, 153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":157
 * 
 * 
 * def is_fork_support_enabled():             # <<<<<<<<<<<<<<
 *     return _GRPC_ENABLE_FORK_SUPPORT
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_107is_fork_support_enabled, 0, __pyx_mstate_global->__pyx_n_u_is_fork_support_enabled, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_is_fork_support_enabled, __pyx_t_6) < 0) __PYX_ERR(1, 157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":161
 * 
 * 
 * def fork_register_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.add(channel)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_109fork_register_channel, 0, __pyx_mstate_global->__pyx_n_u_fork_register_channel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_register_channel, __pyx_t_6) < 0) __PYX_ERR(1, 161, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":166
 * 
 * 
 * def fork_unregister_channel(channel):             # <<<<<<<<<<<<<<
 *     if _GRPC_ENABLE_FORK_SUPPORT:
 *         _fork_state.channels.discard(channel)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_111fork_unregister_channel, 0, __pyx_mstate_global->__pyx_n_u_fork_unregister_channel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_unregister_channel, __pyx_t_6) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
*/
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[15]); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_6 != __pyx_mstate_global->__pyx_tuple[15]) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[15]) < 0))) __PYX_ERR(1, 171, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":172
 * 
 * class _ActiveThreadCount(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._num_active_threads = 0
 *         self._condition = threading.Condition()
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount___init, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_8) < 0) __PYX_ERR(1, 172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":176
 *         self._condition = threading.Condition()
 * 
 *     def increment(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads += 1
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_3increment, 0, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount_increment, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_increment, __pyx_t_8) < 0) __PYX_ERR(1, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":180
 *             self._num_active_threads += 1
 * 
 *     def decrement(self):             # <<<<<<<<<<<<<<
 *         with self._condition:
 *             self._num_active_threads -= 1
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_5decrement, 0, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount_decrement, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_decrement, __pyx_t_8) < 0) __PYX_ERR(1, 180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":186
 *                 self._condition.notify_all()
 * 
 *     def await_zero_threads(self, timeout_secs):             # <<<<<<<<<<<<<<
 *         end_time = time.time() + timeout_secs
 *         wait_time = timeout_secs
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_18_ActiveThreadCount_7await_zero_threads, 0, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount_await_zero_th, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_await_zero_threads, __pyx_t_8) < 0) __PYX_ERR(1, 186, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
*/
  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount, __pyx_t_6, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ActiveThreadCount, __pyx_t_8) < 0) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
*/
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[17]); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_ForkState, __pyx_mstate_global->__pyx_n_u_ForkState, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_6 != __pyx_mstate_global->__pyx_tuple[17]) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[17]) < 0))) __PYX_ERR(1, 203, __pyx_L1_error)
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":204
 * 
 * class _ForkState(object):
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.fork_in_progress_condition = threading.Condition()
 *         self.fork_in_progress = False
*/
  __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10_ForkState_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ForkState___init, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_8) < 0) __PYX_ERR(1, 204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
*/
  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ForkState, __pyx_t_6, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ForkState, __pyx_t_8) < 0) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":215
 * 
 * 
 * _fork_state = _ForkState()             # <<<<<<<<<<<<<<
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_ForkState); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_fork_state, __pyx_t_6) < 0) __PYX_ERR(1, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":15
 * # limitations under the License.
 * 
 * import warnings             # <<<<<<<<<<<<<<
 * 
 * from cpython.version cimport PY_MAJOR_VERSION, PY_MINOR_VERSION
*/
  __pyx_t_6 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_warnings, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_warnings, __pyx_t_6) < 0) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":19
 * from cpython.version cimport PY_MAJOR_VERSION, PY_MINOR_VERSION
 * 
 * TYPE_METADATA_STRING = "Tuple[Tuple[str, Union[str, bytes]]...]"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPE_METADATA_STRING, __pyx_mstate_global->__pyx_kp_u_Tuple_Tuple_str_Union_str_bytes) < 0) __PYX_ERR(6, 19, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":59
 * 
 * 
 * class _EOF:             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
*/
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_mstate_global->__pyx_empty_tuple, __pyx_mstate_global->__pyx_n_u_EOF_2, __pyx_mstate_global->__pyx_n_u_EOF_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":61
 * class _EOF:
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         return False
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_1__bool__, 0, __pyx_mstate_global->__pyx_n_u_EOF___bool, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bool, __pyx_t_7) < 0) __PYX_ERR(6, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":64
 *         return False
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return 0
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_3__len__, 0, __pyx_mstate_global->__pyx_n_u_EOF___len, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_len, __pyx_t_7) < 0) __PYX_ERR(6, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":67
 *         return 0
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         return '<grpc.aio.EOF>'
 * 
*/
  __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_str) < 0) __PYX_ERR(6, 67, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_5_repr, 0, __pyx_mstate_global->__pyx_n_u_EOF__repr, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_2) < 0) __PYX_ERR(6, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":70
 *         return '<grpc.aio.EOF>'
 * 
 *     def __repr__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_str) < 0) __PYX_ERR(6, 70, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_7__repr__, 0, __pyx_mstate_global->__pyx_n_u_EOF___repr, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr_2, __pyx_t_7) < 0) __PYX_ERR(6, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":73
 *         return self._repr()
 * 
 *     def __str__(self) -> str:             # <<<<<<<<<<<<<<
 *         return self._repr()
 * 
*/
  __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_str) < 0) __PYX_ERR(6, 73, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_4_EOF_9__str__, 0, __pyx_mstate_global->__pyx_n_u_EOF___str, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_str_2, __pyx_t_2) < 0) __PYX_ERR(6, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":59
 * 
 * 
 * class _EOF:             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_mstate_global->__pyx_n_u_EOF_2, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EOF_2, __pyx_t_2) < 0) __PYX_ERR(6, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":77
 * 
 * 
 * EOF = _EOF()             # <<<<<<<<<<<<<<
 * 
 * _COMPRESSION_METADATA_STRING_MAPPING = {
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_EOF_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EOF, __pyx_t_6) < 0) __PYX_ERR(6, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":80
 * 
 * _COMPRESSION_METADATA_STRING_MAPPING = {
 *     CompressionAlgorithm.none: 'identity',             # <<<<<<<<<<<<<<
 *     CompressionAlgorithm.deflate: 'deflate',
 *     CompressionAlgorithm.gzip: 'gzip',
*/
  __pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_none); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_identity) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":81
 * _COMPRESSION_METADATA_STRING_MAPPING = {
 *     CompressionAlgorithm.none: 'identity',
 *     CompressionAlgorithm.deflate: 'deflate',             # <<<<<<<<<<<<<<
 *     CompressionAlgorithm.gzip: 'gzip',
 * }
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_deflate); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_deflate) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":82
 *     CompressionAlgorithm.none: 'identity',
 *     CompressionAlgorithm.deflate: 'deflate',
 *     CompressionAlgorithm.gzip: 'gzip',             # <<<<<<<<<<<<<<
 * }
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_CompressionAlgorithm); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_gzip); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_gzip) < 0) __PYX_ERR(6, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COMPRESSION_METADATA_STRING_MAP, __pyx_t_6) < 0) __PYX_ERR(6, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":85
 * }
 * 
 * class BaseError(Exception):             # <<<<<<<<<<<<<<
 *     """The base class for exceptions generated by gRPC AsyncIO stack."""
 * 
*/
  __pyx_t_6 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_BaseError, __pyx_mstate_global->__pyx_n_u_BaseError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_The_base_class_for_exceptions_ge); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_8, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(6, 85, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_BaseError, __pyx_t_2, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BaseError, __pyx_t_6) < 0) __PYX_ERR(6, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":89
 * 
 * 
 * class UsageError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised when the usage of API by applications is inappropriate.
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_UsageError, __pyx_mstate_global->__pyx_n_u_UsageError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Raised_when_the_usage_of_API_by); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__pyx_t_2 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(6, 89, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_UsageError, __pyx_t_2, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_UsageError, __pyx_t_7) < 0) __PYX_ERR(6, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":98
 * 
 * 
 * class AbortError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised when calling abort in servicer methods.
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_AbortError, __pyx_mstate_global->__pyx_n_u_AbortError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Raised_when_calling_abort_in_ser); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_2 != __pyx_t_8) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_8) < 0))) __PYX_ERR(6, 98, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_AbortError, __pyx_t_2, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AbortError, __pyx_t_8) < 0) __PYX_ERR(6, 98, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":106
 * 
 * 
 * class InternalError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised upon unexpected errors in native code."""
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_BaseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_InternalError, __pyx_mstate_global->__pyx_n_u_InternalError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Raised_upon_unexpected_errors_in); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__pyx_t_2 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_8, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(6, 106, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_InternalError, __pyx_t_2, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_InternalError, __pyx_t_6) < 0) __PYX_ERR(6, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":110
 * 
 * 
 * def schedule_coro_threadsafe(object coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         return loop.create_task(coro)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_113schedule_coro_threadsafe, 0, __pyx_mstate_global->__pyx_n_u_schedule_coro_threadsafe, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_schedule_coro_threadsafe, __pyx_t_2) < 0) __PYX_ERR(6, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":123
 * 
 * 
 * def async_generator_to_generator(object agen, object loop):             # <<<<<<<<<<<<<<
 *     """Converts an async generator into generator."""
 *     try:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_115async_generator_to_generator, 0, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_async_generator_to_generator, __pyx_t_2) < 0) __PYX_ERR(6, 123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":141
 * 
 * 
 * async def generator_to_async_generator(object gen, object loop, object thread_pool):             # <<<<<<<<<<<<<<
 *     """Converts a generator into async generator.
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_118generator_to_async_generator, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_generator_to_async_generator, __pyx_t_2) < 0) __PYX_ERR(6, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":176
 * 
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:             # <<<<<<<<<<<<<<
 *     def get_working_loop():
 *         """Returns a running event loop.
*/
  __pyx_t_11 = (PY_MAJOR_VERSION >= 3);
  if (__pyx_t_11) {
  } else {
    __pyx_t_10 = __pyx_t_11;
    goto __pyx_L12_bool_binop_done;
  }
  __pyx_t_11 = (PY_MINOR_VERSION >= 7);
  __pyx_t_10 = __pyx_t_11;
  __pyx_L12_bool_binop_done:;
  if (__pyx_t_10) {

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":177
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop.
 * 
*/
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_121get_working_loop, 0, __pyx_mstate_global->__pyx_n_u_get_working_loop, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_working_loop, __pyx_t_2) < 0) __PYX_ERR(6, 177, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":176
 * 
 * 
 * if PY_MAJOR_VERSION >= 3 and PY_MINOR_VERSION >= 7:             # <<<<<<<<<<<<<<
 *     def get_working_loop():
 *         """Returns a running event loop.
*/
    goto __pyx_L11;
  }

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":196
 *                     return asyncio.get_event_loop_policy().new_event_loop()
 * else:
 *     def get_working_loop():             # <<<<<<<<<<<<<<
 *         """Returns a running event loop."""
 *         return asyncio.get_event_loop()
*/
  /*else*/ {
    __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_123get_working_loop, 0, __pyx_mstate_global->__pyx_n_u_get_working_loop, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_working_loop, __pyx_t_2) < 0) __PYX_ERR(6, 196, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L11:;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":201
 * 
 * 
 * def raise_if_not_valid_trailing_metadata(object metadata):             # <<<<<<<<<<<<<<
 *     if not hasattr(metadata, '__iter__') or isinstance(metadata, dict):
 *         raise TypeError(f'Invalid trailing metadata type, expected {TYPE_METADATA_STRING}: {metadata}')
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_125raise_if_not_valid_trailing_metadata, 0, __pyx_mstate_global->__pyx_n_u_raise_if_not_valid_trailing_meta, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_raise_if_not_valid_trailing_meta, __pyx_t_2) < 0) __PYX_ERR(6, 201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":31
 *         self._debug_error_string = debug_error_string
 * 
 *     cpdef grpc_status_code code(self):             # <<<<<<<<<<<<<<
 *         return self._code
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_3code, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus_code, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_mstate_global->__pyx_n_u_code, __pyx_t_2) < 0) __PYX_ERR(30, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":34
 *         return self._code
 * 
 *     cpdef str details(self):             # <<<<<<<<<<<<<<
 *         return self._details
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_5details, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus_details, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_mstate_global->__pyx_n_u_details, __pyx_t_2) < 0) __PYX_ERR(30, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":37
 *         return self._details
 * 
 *     cpdef tuple trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._trailing_metadata
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_7trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus_trailing_metadata, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_t_2) < 0) __PYX_ERR(30, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi":40
 *         return self._trailing_metadata
 * 
 *     cpdef str debug_error_string(self):             # <<<<<<<<<<<<<<
 *         return self._debug_error_string
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_9debug_error_string, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus_debug_error_string, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_2)) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioRpcStatus, __pyx_mstate_global->__pyx_n_u_debug_error_string, __pyx_t_2) < 0) __PYX_ERR(30, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_12AioRpcStatus_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioRpcStatus___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":15
 * # limitations under the License.
 * 
 * import socket             # <<<<<<<<<<<<<<
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_socket, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_socket, __pyx_t_2) < 0) __PYX_ERR(7, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":17
 * import socket
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)             # <<<<<<<<<<<<<<
 * cdef float _POLL_AWAKE_INTERVAL_S = 0.2
 * 
*/
  __pyx_v_4grpc_7_cython_6cygrpc__GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":18
 * 
 * cdef gpr_timespec _GPR_INF_FUTURE = gpr_inf_future(GPR_CLOCK_REALTIME)
 * cdef float _POLL_AWAKE_INTERVAL_S = 0.2             # <<<<<<<<<<<<<<
 * 
 * # This bool indicates if the event loop impl can monitor a given fd, or has
*/
  __pyx_v_4grpc_7_cython_6cygrpc__POLL_AWAKE_INTERVAL_S = 0.2;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":22
 * # This bool indicates if the event loop impl can monitor a given fd, or has
 * # loop.add_reader method.
 * cdef bint _has_fd_monitoring = True             # <<<<<<<<<<<<<<
 * 
 * IF UNAME_SYSNAME == "Windows":
*/
  __pyx_v_4grpc_7_cython_6cygrpc__has_fd_monitoring = 1;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":34
 * 
 * 
 * def _handle_callback_wrapper(CallbackWrapper callback_wrapper, int success):             # <<<<<<<<<<<<<<
 *     CallbackWrapper.functor_run(callback_wrapper.c_functor(), success)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_127_handle_callback_wrapper, 0, __pyx_mstate_global->__pyx_n_u_handle_callback_wrapper, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_callback_wrapper, __pyx_t_2) < 0) __PYX_ERR(7, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseCompletionQueue___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self._cq cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19BaseCompletionQueue_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BaseCompletionQueue___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":66
 *                 self._has_reader = False
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         if self.loop:
 *             if self._has_reader:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_3close, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BoundEventLoop_close, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__BoundEventLoop, __pyx_mstate_global->__pyx_n_u_close, __pyx_t_2) < 0) __PYX_ERR(7, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BoundEventLoop___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15_BoundEventLoop_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BoundEventLoop___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":91
 *         self._queue = cpp_event_queue()
 * 
 *     def bind_loop(self, object loop):             # <<<<<<<<<<<<<<
 *         if loop in self._loops:
 *             return
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_3bind_loop, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue_bind_loop, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_mstate_global->__pyx_n_u_bind_loop, __pyx_t_2) < 0) __PYX_ERR(7, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":124
 *                         self._handle_events(None)
 * 
 *     def _poll_wrapper(self):             # <<<<<<<<<<<<<<
 *         with nogil:
 *             self._poll()
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_5_poll_wrapper, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue__poll_wrap, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_mstate_global->__pyx_n_u_poll_wrapper, __pyx_t_2) < 0) __PYX_ERR(7, 124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi":143
 *         self._write_socket.close()
 * 
 *     def _handle_events(self, object context_loop):             # <<<<<<<<<<<<<<
 *         cdef bytes data
 *         if _has_fd_monitoring:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_7_handle_events, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue__handle_ev, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_PollerCompletionQueue, __pyx_mstate_global->__pyx_n_u_handle_events, __pyx_t_2) < 0) __PYX_ERR(7, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21PollerCompletionQueue_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PollerCompletionQueue___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallbackFailureHandler___reduce, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_22CallbackFailureHandler_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallbackFailureHandler___setstat, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallbackWrapper___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_15CallbackWrapper_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CallbackWrapper___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":67
 * 
 * 
 * cdef CallbackFailureHandler CQ_SHUTDOWN_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_completion_queue_shutdown',
 *     'Unknown',
*/
  __pyx_t_7 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  __pyx_t_8 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":70
 *     'grpc_completion_queue_shutdown',
 *     'Unknown',
 *     InternalError)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_grpc_completion_queue_shutdown, __pyx_mstate_global->__pyx_n_u_Unknown, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 67, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_2);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_CQ_SHUTDOWN_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_2));
  __Pyx_GIVEREF((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":73
 * 
 * 
 * class ExecuteBatchError(InternalError):             # <<<<<<<<<<<<<<
 *     """Raised when execute batch returns a failure from Core."""
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Raised_when_execute_batch_return); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_2 != __pyx_t_8) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_8) < 0))) __PYX_ERR(32, 73, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError, __pyx_t_2, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ExecuteBatchError, __pyx_t_8) < 0) __PYX_ERR(32, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":77
 * 
 * 
 * async def execute_batch(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                tuple operations,
 *                                object loop):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_129execute_batch, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_execute_batch, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_execute_batch, __pyx_t_2) < 0) __PYX_ERR(32, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":115
 * 
 * 
 * async def _receive_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                            object loop):
 *     """Retrieves parsed messages from Core.
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_132_receive_message, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_receive_message, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_receive_message, __pyx_t_2) < 0) __PYX_ERR(32, 115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":139
 * 
 * 
 * async def _send_message(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                         bytes message,
 *                         Operation send_initial_metadata_op,
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_135_send_message, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_send_message, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_send_message, __pyx_t_2) < 0) __PYX_ERR(32, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":151
 * 
 * 
 * async def _send_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                  tuple metadata,
 *                                  int flags,
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_138_send_initial_metadata, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_send_initial_metadata, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_send_initial_metadata, __pyx_t_2) < 0) __PYX_ERR(32, 151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":162
 * 
 * 
 * async def _receive_initial_metadata(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                     object loop):
 *     cdef ReceiveInitialMetadataOperation op = ReceiveInitialMetadataOperation(_EMPTY_FLAGS)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_141_receive_initial_metadata, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_receive_initial_metadata, __pyx_t_2) < 0) __PYX_ERR(32, 162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi":169
 *     return op.initial_metadata()
 * 
 * async def _send_error_status_from_server(GrpcCallWrapper grpc_call_wrapper,             # <<<<<<<<<<<<<<
 *                                          grpc_status_code code,
 *                                          str details,
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_144_send_error_status_from_server, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_send_error_status_from_server, __pyx_t_2) < 0) __PYX_ERR(32, 169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":15
 * # limitations under the License.
 * 
 * import enum             # <<<<<<<<<<<<<<
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()
*/
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_enum, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_enum, __pyx_t_2) < 0) __PYX_ERR(33, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":17
 * import enum
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()             # <<<<<<<<<<<<<<
 * cdef _AioState _global_aio_state = _AioState()
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_7)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_environ); if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[18], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __pyx_t_8;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_9 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 17, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__GRPC_ASYNCIO_ENGINE, ((PyObject*)__pyx_t_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":18
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()
 * cdef _AioState _global_aio_state = _AioState()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState);
  __pyx_t_6 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioState); 
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 18, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_2);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__global_aio_state, ((struct __pyx_obj_4grpc_7_cython_6cygrpc__AioState *)__pyx_t_2));
  __Pyx_GIVEREF((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":21
 * 
 * 
 * class AsyncIOEngine(enum.Enum):             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_6 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(33, 21, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":24
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
 *     CUSTOM_IO_MANAGER = 'custom_io_manager'             # <<<<<<<<<<<<<<
 *     POLLER = 'poller'
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_CUSTOM_IO_MANAGER, __pyx_mstate_global->__pyx_n_u_custom_io_manager) < 0) __PYX_ERR(33, 24, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":25
 *     # EventEngine project, which will be the only IO platform in Core.
 *     CUSTOM_IO_MANAGER = 'custom_io_manager'
 *     POLLER = 'poller'             # <<<<<<<<<<<<<<
 * 
 * 
*/
  if (__Pyx_SetNameInClass(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_POLLER, __pyx_mstate_global->__pyx_n_u_poller) < 0) __PYX_ERR(33, 25, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":21
 * 
 * 
 * class AsyncIOEngine(enum.Enum):             # <<<<<<<<<<<<<<
 *     # NOTE(lidiz) the support for custom_io_manager is removed in favor of the
 *     # EventEngine project, which will be the only IO platform in Core.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine, __pyx_t_6, __pyx_t_7, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AsyncIOEngine, __pyx_t_2) < 0) __PYX_ERR(33, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioState___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9_AioState_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioState___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":68
 * 
 * 
 * def _grpc_shutdown_wrapper(_):             # <<<<<<<<<<<<<<
 *     """A thin Python wrapper of Core's shutdown function.
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_147_grpc_shutdown_wrapper, 0, __pyx_mstate_global->__pyx_n_u_grpc_shutdown_wrapper, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_grpc_shutdown_wrapper, __pyx_t_6) < 0) __PYX_ERR(33, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":91
 * 
 * 
 * cpdef init_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Initializes the gRPC AsyncIO module.
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_149init_grpc_aio, 0, __pyx_mstate_global->__pyx_n_u_init_grpc_aio, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_init_grpc_aio, __pyx_t_6) < 0) __PYX_ERR(33, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":104
 * 
 * 
 * cpdef shutdown_grpc_aio():             # <<<<<<<<<<<<<<
 *     """Shuts down the gRPC AsyncIO module.
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_151shutdown_grpc_aio, 0, __pyx_mstate_global->__pyx_n_u_shutdown_grpc_aio, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_6)) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_shutdown_grpc_aio, __pyx_t_6) < 0) __PYX_ERR(33, 104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":16
 * 
 * 
 * _EMPTY_FLAGS = 0             # <<<<<<<<<<<<<<
 * _EMPTY_MASK = 0
 * _IMMUTABLE_EMPTY_METADATA = tuple()
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMPTY_FLAGS, __pyx_mstate_global->__pyx_int_0) < 0) __PYX_ERR(34, 16, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":17
 * 
 * _EMPTY_FLAGS = 0
 * _EMPTY_MASK = 0             # <<<<<<<<<<<<<<
 * _IMMUTABLE_EMPTY_METADATA = tuple()
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMPTY_MASK, __pyx_mstate_global->__pyx_int_0) < 0) __PYX_ERR(34, 17, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":18
 * _EMPTY_FLAGS = 0
 * _EMPTY_MASK = 0
 * _IMMUTABLE_EMPTY_METADATA = tuple()             # <<<<<<<<<<<<<<
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'
*/
  __pyx_t_8 = NULL;
  __Pyx_INCREF((PyObject *)(&PyTuple_Type));
  __pyx_t_7 = ((PyObject *)(&PyTuple_Type)); 
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 18, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA, __pyx_t_6) < 0) __PYX_ERR(34, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":20
 * _IMMUTABLE_EMPTY_METADATA = tuple()
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'             # <<<<<<<<<<<<<<
 * _OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'
 *                            '\tstatus = {}\n'
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_UNKNOWN_CANCELLATION_DETAILS, __pyx_mstate_global->__pyx_kp_u_RPC_cancelled_for_unknown_reason) < 0) __PYX_ERR(34, 20, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":21
 * 
 * _UNKNOWN_CANCELLATION_DETAILS = 'RPC cancelled for unknown reason.'
 * _OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'             # <<<<<<<<<<<<<<
 *                            '\tstatus = {}\n'
 *                            '\tdetails = "{}"\n'
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OK_CALL_REPRESENTATION, __pyx_mstate_global->__pyx_kp_u_of_RPC_that_terminated_with_sta) < 0) __PYX_ERR(34, 21, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":26
 *                            '>')
 * 
 * _NON_OK_CALL_REPRESENTATION = ('<{} of RPC that terminated with:\n'             # <<<<<<<<<<<<<<
 *                                '\tstatus = {}\n'
 *                                '\tdetails = "{}"\n'
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NON_OK_CALL_REPRESENTATION, __pyx_mstate_global->__pyx_kp_u_of_RPC_that_terminated_with_sta_2) < 0) __PYX_ERR(34, 26, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":69
 *         shutdown_grpc_aio()
 * 
 *     def _repr(self) -> str:             # <<<<<<<<<<<<<<
 *         """Assembles the RPC representation string."""
 *         # This needs to be loaded at run time once everything
*/
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_str) < 0) __PYX_ERR(34, 69, __pyx_L1_error)
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_5_repr, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall__repr, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_6);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_7) < 0) __PYX_ERR(34, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":170
 *         self._waiters_initial_metadata = []
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         if self.done():
 *             callback()
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_11add_done_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_add_done_callback, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_t_7) < 0) __PYX_ERR(34, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":176
 *             self._done_callbacks.append(callback)
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._deadline is None:
 *             return None
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_13time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_time_remaining, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_time_remaining, __pyx_t_7) < 0) __PYX_ERR(34, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":182
 *             return max(0, self._deadline - time.time())
 * 
 *     def cancel(self, str details):             # <<<<<<<<<<<<<<
 *         """Cancels the RPC in Core with given RPC status.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_15cancel, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_cancel, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_cancel, __pyx_t_7) < 0) __PYX_ERR(34, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":213
 *         assert error == GRPC_CALL_OK
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC call has finished.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_17done, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_done, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_done, __pyx_t_7) < 0) __PYX_ERR(34, 213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":224
 *         return self._status is not None
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_19cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_cancelled, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_cancelled, __pyx_t_7) < 0) __PYX_ERR(34, 224, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":235
 *         return self._status.code() == StatusCode.cancelled
 * 
 *     async def status(self):             # <<<<<<<<<<<<<<
 *         """Returns the status of the RPC call.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_21status, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_status, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_status, __pyx_t_7) < 0) __PYX_ERR(34, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":254
 *         return self._status
 * 
 *     def is_ok(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC is ended with ok."""
 *         return self.done() and self._status.code() == StatusCode.ok
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_24is_ok, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_is_ok, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_is_ok, __pyx_t_7) < 0) __PYX_ERR(34, 254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":258
 *         return self.done() and self._status.code() == StatusCode.ok
 * 
 *     async def initial_metadata(self):             # <<<<<<<<<<<<<<
 *         """Returns the initial metadata of the RPC call.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_26initial_metadata, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_initial_metadata, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_initial_metadata, __pyx_t_7) < 0) __PYX_ERR(34, 258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":276
 *         return self._initial_metadata
 * 
 *     def is_locally_cancelled(self):             # <<<<<<<<<<<<<<
 *         """Returns if the RPC was cancelled locally.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_29is_locally_cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_is_locally_cancelled, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_is_locally_cancelled, __pyx_t_7) < 0) __PYX_ERR(34, 276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":288
 *         return False
 * 
 *     def set_internal_error(self, str error_str):             # <<<<<<<<<<<<<<
 *         self._set_status(AioRpcStatus(
 *             StatusCode.internal,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_31set_internal_error, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall_set_internal_error, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_set_internal_error, __pyx_t_7) < 0) __PYX_ERR(34, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":296
 *         ))
 * 
 *     async def unary_unary(self,             # <<<<<<<<<<<<<<
 *                           bytes request,
 *                           tuple outbound_initial_metadata,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_33unary_unary, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_unary_unary, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_unary_unary, __pyx_t_7) < 0) __PYX_ERR(34, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":347
 *             return None
 * 
 *     async def _handle_status_once_received(self):             # <<<<<<<<<<<<<<
 *         """Handles the status sent by peer once received."""
 *         cdef ReceiveStatusOnClientOperation op = ReceiveStatusOnClientOperation(_EMPTY_FLAGS)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_36_handle_status_once_received, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall__handle_status_once_rec, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_handle_status_once_received, __pyx_t_7) < 0) __PYX_ERR(34, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":364
 *         ))
 * 
 *     async def receive_serialized_message(self):             # <<<<<<<<<<<<<<
 *         """Receives one single raw message in bytes."""
 *         cdef bytes received_message
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_39receive_serialized_message, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_receive_serialized_mess, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_receive_serialized_message, __pyx_t_7) < 0) __PYX_ERR(34, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":381
 *             return EOF
 * 
 *     async def send_serialized_message(self, bytes message):             # <<<<<<<<<<<<<<
 *         """Sends one single raw message in bytes."""
 *         await _send_message(self,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_42send_serialized_message, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_send_serialized_message, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_send_serialized_message, __pyx_t_7) < 0) __PYX_ERR(34, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":389
 *                             self._loop)
 * 
 *     async def send_receive_close(self):             # <<<<<<<<<<<<<<
 *         """Half close the RPC on the client-side."""
 *         cdef SendCloseFromClientOperation op = SendCloseFromClientOperation(_EMPTY_FLAGS)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_45send_receive_close, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_send_receive_close, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_send_receive_close, __pyx_t_7) < 0) __PYX_ERR(34, 389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":395
 *         await execute_batch(self, ops, self._loop)
 * 
 *     async def initiate_unary_stream(self,             # <<<<<<<<<<<<<<
 *                            bytes request,
 *                            tuple outbound_initial_metadata,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_48initiate_unary_stream, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_initiate_unary_stream, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_initiate_unary_stream, __pyx_t_7) < 0) __PYX_ERR(34, 395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":437
 *             await status_task
 * 
 *     async def stream_unary(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_51stream_unary, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_stream_unary, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_stream_unary, __pyx_t_7) < 0) __PYX_ERR(34, 437, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/call.pyx.pxi":496
 *             return None
 * 
 *     async def initiate_stream_stream(self,             # <<<<<<<<<<<<<<
 *                            tuple outbound_initial_metadata,
 *                            object metadata_sent_observer,
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_54initiate_stream_stream, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioCall_initiate_stream_stream, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__AioCall, __pyx_mstate_global->__pyx_n_u_initiate_stream_stream, __pyx_t_7) < 0) __PYX_ERR(34, 496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_57__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8_AioCall_59__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioCall___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":17
 * 
 * 
 * class _WatchConnectivityFailed(Exception):             # <<<<<<<<<<<<<<
 *     """Dedicated exception class for watch connectivity failed.
 * 
*/
  __pyx_t_7 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Dedicated_exception_class_for_wa); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_6 != __pyx_t_7) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(8, 17, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed, __pyx_t_6, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed, __pyx_t_7) < 0) __PYX_ERR(8, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":22
 *     It might be failed due to deadline exceeded.
 *     """
 * cdef CallbackFailureHandler _WATCH_CONNECTIVITY_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'watch_connectivity_state',
 *     'Timed out',
*/
  __pyx_t_8 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":25
 *     'watch_connectivity_state',
 *     'Timed out',
 *     _WatchConnectivityFailed)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_WatchConnectivityFailed); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_mstate_global->__pyx_n_u_watch_connectivity_state, __pyx_mstate_global->__pyx_kp_u_Timed_out, __pyx_t_7};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 22, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_6);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__WATCH_CONNECTIVITY_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_6));
  __Pyx_GIVEREF((PyObject *)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":61
 *         return f"<{class_name} {id_}>"
 * 
 *     def check_connectivity_state(self, bint try_to_connect):             # <<<<<<<<<<<<<<
 *         """A Cython wrapper for Core's check connectivity state API."""
 *         if self._status == AIO_CHANNEL_STATUS_DESTROYED:
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_7check_connectivity_state, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel_check_connectivity_st, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_check_connectivity_state, __pyx_t_6) < 0) __PYX_ERR(8, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":71
 *             )
 * 
 *     async def watch_connectivity_state(self,             # <<<<<<<<<<<<<<
 *                                        grpc_connectivity_state last_observed_state,
 *                                        object deadline):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_9watch_connectivity_state, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioChannel_watch_connectivity_st, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_watch_connectivity_state, __pyx_t_6) < 0) __PYX_ERR(8, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":103
 *             return True
 * 
 *     def closing(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_12closing, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel_closing, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_closing, __pyx_t_6) < 0) __PYX_ERR(8, 103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":106
 *         self._status = AIO_CHANNEL_STATUS_CLOSING
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         self._status = AIO_CHANNEL_STATUS_DESTROYED
 *         grpc_channel_destroy(self.channel)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_14close, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel_close, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_close, __pyx_t_6) < 0) __PYX_ERR(8, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":110
 *         grpc_channel_destroy(self.channel)
 * 
 *     def closed(self):             # <<<<<<<<<<<<<<
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_16closed, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel_closed, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_closed, __pyx_t_6) < 0) __PYX_ERR(8, 110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/channel.pyx.pxi":113
 *         return self._status in (AIO_CHANNEL_STATUS_CLOSING, AIO_CHANNEL_STATUS_DESTROYED)
 * 
 *     def call(self,             # <<<<<<<<<<<<<<
 *              bytes method,
 *              object deadline,
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_18call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioChannel, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_6) < 0) __PYX_ERR(8, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_20__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_10AioChannel_22__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioChannel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":16
 * 
 * 
 * import inspect             # <<<<<<<<<<<<<<
 * import traceback
 * import functools
*/
  __pyx_t_6 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_inspect, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_inspect, __pyx_t_6) < 0) __PYX_ERR(9, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":17
 * 
 * import inspect
 * import traceback             # <<<<<<<<<<<<<<
 * import functools
 * 
*/
  __pyx_t_6 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_traceback, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_traceback, __pyx_t_6) < 0) __PYX_ERR(9, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":18
 * import inspect
 * import traceback
 * import functools             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = __Pyx_ImportDottedModule(__pyx_mstate_global->__pyx_n_u_functools, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_functools, __pyx_t_6) < 0) __PYX_ERR(9, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":21
 * 
 * 
 * cdef int _EMPTY_FLAG = 0             # <<<<<<<<<<<<<<
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
*/
  __pyx_v_4grpc_7_cython_6cygrpc__EMPTY_FLAG = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":22
 * 
 * cdef int _EMPTY_FLAG = 0
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'             # <<<<<<<<<<<<<<
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'
 * 
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_RPC_already_finished);
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__RPC_FINISHED_DETAILS, __pyx_mstate_global->__pyx_kp_u_RPC_already_finished);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_RPC_already_finished);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":23
 * cdef int _EMPTY_FLAG = 0
 * cdef str _RPC_FINISHED_DETAILS = 'RPC already finished.'
 * cdef str _SERVER_STOPPED_DETAILS = 'Server already stopped.'             # <<<<<<<<<<<<<<
 * 
 * cdef _augment_metadata(tuple metadata, object compression):
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Server_already_stopped);
  __Pyx_XGOTREF(__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc__SERVER_STOPPED_DETAILS, __pyx_mstate_global->__pyx_kp_u_Server_already_stopped);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_Server_already_stopped);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HandlerCallDetails___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_19_HandlerCallDetails_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HandlerCallDetails___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":41
 * 
 * 
 * class _ServerStoppedError(BaseError):             # <<<<<<<<<<<<<<
 *     """Raised if the server is stopped."""
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BaseError); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_ServerStoppedError, __pyx_mstate_global->__pyx_n_u_ServerStoppedError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_kp_u_Raised_if_the_server_is_stopped); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (__pyx_t_6 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_8, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(9, 41, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_ServerStoppedError, __pyx_t_6, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ServerStoppedError, __pyx_t_2) < 0) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RPCState___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_8RPCState_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RPCState___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":127
 *         self._loop = loop
 * 
 *     async def read(self):             # <<<<<<<<<<<<<<
 *         cdef bytes raw_message
 *         self._rpc_state.raise_for_termination()
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_3read, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_ServicerContext_read, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_read, __pyx_t_6) < 0) __PYX_ERR(9, 127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":140
 *                             raw_message)
 * 
 *     async def write(self, object message):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_6write, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_ServicerContext_write, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_write, __pyx_t_6) < 0) __PYX_ERR(9, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":150
 *         self._rpc_state.metadata_sent = True
 * 
 *     async def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._rpc_state.raise_for_termination()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_9send_initial_metadata, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_ServicerContext_send_initial_me, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_send_initial_metadata_2, __pyx_t_6) < 0) __PYX_ERR(9, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":167
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_6))) __PYX_ERR(9, 167, __pyx_L1_error)
  __pyx_mstate_global->__pyx_k__10 = ((PyObject*)__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":167
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.abort_exception is not None:
 *             raise UsageError('Abort already called!')
*/
  if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_6))) __PYX_ERR(9, 167, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":164
 *             self._rpc_state.metadata_sent = True
 * 
 *     async def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/
  __pyx_t_7 = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_12abort, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_ServicerContext_abort, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_abort, __pyx_t_6) < 0) __PYX_ERR(9, 164, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":203
 *             raise self._rpc_state.abort_exception
 * 
 *     async def abort_with_status(self, object status):             # <<<<<<<<<<<<<<
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_15abort_with_status, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_ServicerContext_abort_with_stat, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_abort_with_status, __pyx_t_6) < 0) __PYX_ERR(9, 203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":206
 *         await self.abort(status.code, status.details, status.trailing_metadata)
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         raise_if_not_valid_trailing_metadata(metadata)
 *         self._rpc_state.trailing_metadata = tuple(metadata)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_18set_trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_set_trailing_me, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_set_trailing_metadata, __pyx_t_6) < 0) __PYX_ERR(9, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":210
 *         self._rpc_state.trailing_metadata = tuple(metadata)
 * 
 *     def trailing_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.trailing_metadata
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_20trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_trailing_metada, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_trailing_metadata, __pyx_t_6) < 0) __PYX_ERR(9, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":213
 *         return self._rpc_state.trailing_metadata
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.invocation_metadata()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_22invocation_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_invocation_meta, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_invocation_metadata, __pyx_t_6) < 0) __PYX_ERR(9, 213, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":216
 *         return self._rpc_state.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_code = get_status_code(code)
 *         self._rpc_state.py_status_code = code
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_24set_code, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_set_code, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_set_code, __pyx_t_6) < 0) __PYX_ERR(9, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":220
 *         self._rpc_state.py_status_code = code
 * 
 *     def code(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.py_status_code
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_26code, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_code, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_code, __pyx_t_6) < 0) __PYX_ERR(9, 220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":223
 *         return self._rpc_state.py_status_code
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._rpc_state.status_details = details
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_28set_details, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_set_details, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_set_details, __pyx_t_6) < 0) __PYX_ERR(9, 223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":226
 *         self._rpc_state.status_details = details
 * 
 *     def details(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_details
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_30details, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_details, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_details, __pyx_t_6) < 0) __PYX_ERR(9, 226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":229
 *         return self._rpc_state.status_details
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.metadata_sent:
 *             raise RuntimeError('Compression setting must be specified before sending initial metadata')
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_32set_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_set_compression, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_set_compression, __pyx_t_6) < 0) __PYX_ERR(9, 229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":235
 *             self._rpc_state.compression_algorithm = compression
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._rpc_state.disable_next_compression = True
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_34disable_next_message_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_disable_next_me, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_disable_next_message_compression, __pyx_t_6) < 0) __PYX_ERR(9, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":238
 *         self._rpc_state.disable_next_compression = True
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         cdef char *c_peer = NULL
 *         c_peer = grpc_call_get_peer(self._rpc_state.call)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_36peer, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_peer, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_peer, __pyx_t_6) < 0) __PYX_ERR(9, 238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":245
 *         return peer
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_38peer_identities, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_peer_identities, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_peer_identities, __pyx_t_6) < 0) __PYX_ERR(9, 245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":252
 *         return identities
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_40peer_identity_key, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_peer_identity_k, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_peer_identity_key, __pyx_t_6) < 0) __PYX_ERR(9, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":262
 *             return None
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         cdef Call query_call = Call()
 *         query_call.c_call = self._rpc_state.call
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_42auth_context, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_auth_context, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_auth_context, __pyx_t_6) < 0) __PYX_ERR(9, 262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":275
 *             return {}
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         if self._rpc_state.details.deadline.seconds == _GPR_INF_FUTURE.seconds:
 *             return None
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_44time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_time_remaining, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_time_remaining, __pyx_t_6) < 0) __PYX_ERR(9, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":281
 *             return max(_time_from_timespec(self._rpc_state.details.deadline) - time.time(), 0)
 * 
 *     def add_done_callback(self, callback):             # <<<<<<<<<<<<<<
 *         cb = functools.partial(callback, self)
 *         self._rpc_state.callbacks.append(cb)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_46add_done_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_add_done_callba, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_add_done_callback, __pyx_t_6) < 0) __PYX_ERR(9, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":285
 *         self._rpc_state.callbacks.append(cb)
 * 
 *     def done(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_sent
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_48done, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_done, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_done, __pyx_t_6) < 0) __PYX_ERR(9, 285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":288
 *         return self._rpc_state.status_sent
 * 
 *     def cancelled(self):             # <<<<<<<<<<<<<<
 *         return self._rpc_state.status_code == StatusCode.cancelled
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_50cancelled, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext_cancelled, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ServicerContext, __pyx_mstate_global->__pyx_n_u_cancelled, __pyx_t_6) < 0) __PYX_ERR(9, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_52__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_ServicerContext_54__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ServicerContext___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":304
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_6))) __PYX_ERR(9, 304, __pyx_L1_error)
  __pyx_mstate_global->__pyx_k__11 = ((PyObject*)__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_IMMUTABLE_EMPTY_METADATA); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":304
 *               object code,
 *               str details='',
 *               tuple trailing_metadata=_IMMUTABLE_EMPTY_METADATA):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.abort(code, details, trailing_metadata),
*/
  if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_6))) __PYX_ERR(9, 304, __pyx_L1_error)

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":301
 *         self._loop = context._loop
 * 
 *     def abort(self,             # <<<<<<<<<<<<<<
 *               object code,
 *               str details='',
*/
  __pyx_t_7 = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_3abort, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_abort, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_abort, __pyx_t_6) < 0) __PYX_ERR(9, 301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":311
 *         future.exception()
 * 
 *     def send_initial_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         future = asyncio.run_coroutine_threadsafe(
 *             self._context.send_initial_metadata(metadata),
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_5send_initial_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_send_initia, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_send_initial_metadata_2, __pyx_t_6) < 0) __PYX_ERR(9, 311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":317
 *         future.result()
 * 
 *     def set_trailing_metadata(self, object metadata):             # <<<<<<<<<<<<<<
 *         self._context.set_trailing_metadata(metadata)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_7set_trailing_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_set_trailin, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_set_trailing_metadata, __pyx_t_6) < 0) __PYX_ERR(9, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":320
 *         self._context.set_trailing_metadata(metadata)
 * 
 *     def invocation_metadata(self):             # <<<<<<<<<<<<<<
 *         return self._context.invocation_metadata()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_9invocation_metadata, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_invocation, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_invocation_metadata, __pyx_t_6) < 0) __PYX_ERR(9, 320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":323
 *         return self._context.invocation_metadata()
 * 
 *     def set_code(self, object code):             # <<<<<<<<<<<<<<
 *         self._context.set_code(code)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_11set_code, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_set_code, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_set_code, __pyx_t_6) < 0) __PYX_ERR(9, 323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":326
 *         self._context.set_code(code)
 * 
 *     def set_details(self, str details):             # <<<<<<<<<<<<<<
 *         self._context.set_details(details)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_13set_details, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_set_details, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_set_details, __pyx_t_6) < 0) __PYX_ERR(9, 326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":329
 *         self._context.set_details(details)
 * 
 *     def set_compression(self, object compression):             # <<<<<<<<<<<<<<
 *         self._context.set_compression(compression)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_15set_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_set_compres, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_set_compression, __pyx_t_6) < 0) __PYX_ERR(9, 329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":332
 *         self._context.set_compression(compression)
 * 
 *     def disable_next_message_compression(self):             # <<<<<<<<<<<<<<
 *         self._context.disable_next_message_compression()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_17disable_next_message_compression, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_disable_nex, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_disable_next_message_compression, __pyx_t_6) < 0) __PYX_ERR(9, 332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":335
 *         self._context.disable_next_message_compression()
 * 
 *     def add_callback(self, object callback):             # <<<<<<<<<<<<<<
 *         self._callbacks.append(callback)
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_19add_callback, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_add_callbac, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_add_callback, __pyx_t_6) < 0) __PYX_ERR(9, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":338
 *         self._callbacks.append(callback)
 * 
 *     def peer(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_21peer, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_peer, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_peer, __pyx_t_6) < 0) __PYX_ERR(9, 338, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":341
 *         return self._context.peer()
 * 
 *     def peer_identities(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identities()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_23peer_identities, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_peer_identi, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_peer_identities, __pyx_t_6) < 0) __PYX_ERR(9, 341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":344
 *         return self._context.peer_identities()
 * 
 *     def peer_identity_key(self):             # <<<<<<<<<<<<<<
 *         return self._context.peer_identity_key()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_25peer_identity_key, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_peer_identi_2, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_peer_identity_key, __pyx_t_6) < 0) __PYX_ERR(9, 344, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":347
 *         return self._context.peer_identity_key()
 * 
 *     def auth_context(self):             # <<<<<<<<<<<<<<
 *         return self._context.auth_context()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_27auth_context, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_auth_contex, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_auth_context, __pyx_t_6) < 0) __PYX_ERR(9, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":350
 *         return self._context.auth_context()
 * 
 *     def time_remaining(self):             # <<<<<<<<<<<<<<
 *         return self._context.time_remaining()
 * 
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_29time_remaining, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext_time_remain, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__SyncServicerContext, __pyx_mstate_global->__pyx_n_u_time_remaining, __pyx_t_6) < 0) __PYX_ERR(9, 350, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_31__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_20_SyncServicerContext_33__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SyncServicerContext___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":354
 * 
 * 
 * async def _run_interceptor(object interceptors, object query_handler,             # <<<<<<<<<<<<<<
 *                            object handler_call_details):
 *     interceptor = next(interceptors, None)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_153_run_interceptor, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_run_interceptor, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_run_interceptor, __pyx_t_6) < 0) __PYX_ERR(9, 354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":365
 * 
 * 
 * def _is_async_handler(object handler):             # <<<<<<<<<<<<<<
 *     """Inspect if a method handler is async or sync."""
 *     return inspect.isawaitable(handler) or inspect.iscoroutinefunction(handler) or inspect.isasyncgenfunction(handler)
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_156_is_async_handler, 0, __pyx_mstate_global->__pyx_n_u_is_async_handler, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_is_async_handler, __pyx_t_6) < 0) __PYX_ERR(9, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":370
 * 
 * 
 * async def _find_method_handler(str method, tuple metadata, list generic_handlers,             # <<<<<<<<<<<<<<
 *                           tuple interceptors):
 *     def query_handlers(handler_call_details):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_158_find_method_handler, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_find_method_handler, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_find_method_handler, __pyx_t_6) < 0) __PYX_ERR(9, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":389
 * 
 * 
 * async def _finish_handler_with_unary_response(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                               object unary_handler,
 *                                               object request,
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_161_finish_handler_with_unary_response, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_finish_handler_with_unary_respo, __pyx_t_6) < 0) __PYX_ERR(9, 389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":460
 * 
 * 
 * async def _finish_handler_with_stream_responses(RPCState rpc_state,             # <<<<<<<<<<<<<<
 *                                                 object stream_handler,
 *                                                 object request,
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_164_finish_handler_with_stream_responses, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_finish_handler_with_stream_resp, __pyx_t_6) < 0) __PYX_ERR(9, 460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":530
 * 
 * 
 * async def _handle_unary_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                   RPCState rpc_state,
 *                                   object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_167_handle_unary_unary_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_unary_unary_rpc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_unary_unary_rpc, __pyx_t_6) < 0) __PYX_ERR(9, 530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":564
 * 
 * 
 * async def _handle_unary_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_170_handle_unary_stream_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_unary_stream_rpc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_unary_stream_rpc, __pyx_t_6) < 0) __PYX_ERR(9, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":603
 *         self._agen = None
 * 
 *     async def _async_message_receiver(self):             # <<<<<<<<<<<<<<
 *         """An async generator that receives messages."""
 *         cdef object message
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_3_async_message_receiver, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_MessageReceiver__async_message, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__MessageReceiver, __pyx_mstate_global->__pyx_n_u_async_message_receiver, __pyx_t_6) < 0) __PYX_ERR(9, 603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MessageReceiver___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_16_MessageReceiver_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MessageReceiver___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_6) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":623
 * 
 * 
 * async def _handle_stream_unary_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                    RPCState rpc_state,
 *                                    object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_173_handle_stream_unary_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_stream_unary_rpc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_stream_unary_rpc, __pyx_t_6) < 0) __PYX_ERR(9, 623, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":655
 * 
 * 
 * async def _handle_stream_stream_rpc(object method_handler,             # <<<<<<<<<<<<<<
 *                                     RPCState rpc_state,
 *                                     object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_176_handle_stream_stream_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_stream_stream_rpc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_stream_stream_rpc, __pyx_t_6) < 0) __PYX_ERR(9, 655, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":686
 * 
 * 
 * async def _handle_exceptions(RPCState rpc_state, object rpc_coro, object loop):             # <<<<<<<<<<<<<<
 *     try:
 *         try:
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_179_handle_exceptions, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_exceptions, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_exceptions, __pyx_t_6) < 0) __PYX_ERR(9, 686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":755
 * 
 * 
 * async def _handle_cancellation_from_core(object rpc_task,             # <<<<<<<<<<<<<<
 *                                          RPCState rpc_state,
 *                                          object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_182_handle_cancellation_from_core, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_cancellation_from_core, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_cancellation_from_core, __pyx_t_6) < 0) __PYX_ERR(9, 755, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":772
 * 
 * 
 * async def _schedule_rpc_coro(object rpc_coro,             # <<<<<<<<<<<<<<
 *                              RPCState rpc_state,
 *                              object loop):
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_185_schedule_rpc_coro, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_schedule_rpc_coro, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_schedule_rpc_coro, __pyx_t_6) < 0) __PYX_ERR(9, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":795
 * 
 * 
 * async def _handle_rpc(list generic_handlers, tuple interceptors,             # <<<<<<<<<<<<<<
 *                       RPCState rpc_state, object loop, bint concurrency_exceeded):
 *     cdef object method_handler
*/
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_188_handle_rpc, __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_handle_rpc, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_handle_rpc, __pyx_t_6) < 0) __PYX_ERR(9, 795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":858
 * 
 * 
 * class _RequestCallError(Exception): pass             # <<<<<<<<<<<<<<
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(
*/
  __pyx_t_6 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PEP560_update_bases(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_CalculateMetaclass(NULL, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_8, __pyx_t_7, __pyx_mstate_global->__pyx_n_u_RequestCallError, __pyx_mstate_global->__pyx_n_u_RequestCallError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_7 != __pyx_t_6) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_6) < 0))) __PYX_ERR(9, 858, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_Py3ClassCreate(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_RequestCallError, __pyx_t_7, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RequestCallError, __pyx_t_6) < 0) __PYX_ERR(9, 858, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":860
 * class _RequestCallError(Exception): pass
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_server_request_call', None, _RequestCallError)
 * 
*/
  __pyx_t_8 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":861
 * 
 * cdef CallbackFailureHandler REQUEST_CALL_FAILURE_HANDLER = CallbackFailureHandler(
 *     'grpc_server_request_call', None, _RequestCallError)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_RequestCallError); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_mstate_global->__pyx_n_u_grpc_server_request_call, Py_None, __pyx_t_6};
    __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 860, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_7);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_REQUEST_CALL_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_7));
  __Pyx_GIVEREF((PyObject *)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":864
 * 
 * 
 * cdef CallbackFailureHandler SERVER_SHUTDOWN_FAILURE_HANDLER = CallbackFailureHandler(             # <<<<<<<<<<<<<<
 *     'grpc_server_shutdown_and_notify',
 *     None,
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler);
  __pyx_t_6 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_CallbackFailureHandler); 

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":867
 *     'grpc_server_shutdown_and_notify',
 *     None,
 *     InternalError)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_InternalError); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = 1;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_grpc_server_shutdown_and_notify, Py_None, __pyx_t_8};
    __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+__pyx_t_9, (4-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 864, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_7);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER);
  __Pyx_DECREF_SET(__pyx_v_4grpc_7_cython_6cygrpc_SERVER_SHUTDOWN_FAILURE_HANDLER, ((struct __pyx_obj_4grpc_7_cython_6cygrpc_CallbackFailureHandler *)__pyx_t_7));
  __Pyx_GIVEREF((PyObject *)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":879
 *         self.limiter_concurrency_exceeded = False
 * 
 *     def check_before_request_call(self):             # <<<<<<<<<<<<<<
 *         if self._active_rpcs >= self._maximum_concurrent_rpcs:
 *             self.limiter_concurrency_exceeded = True
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_3check_before_request_call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter_check_befo, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_mstate_global->__pyx_n_u_check_before_request_call, __pyx_t_7) < 0) __PYX_ERR(9, 879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":885
 *             self._active_rpcs += 1
 * 
 *     def _decrease_active_rpcs_count(self, unused_future):             # <<<<<<<<<<<<<<
 *         self._active_rpcs -= 1
 *         if self._active_rpcs < self._maximum_concurrent_rpcs:
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_5_decrease_active_rpcs_count, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter__decrease, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_mstate_global->__pyx_n_u_decrease_active_rpcs_count, __pyx_t_7) < 0) __PYX_ERR(9, 885, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":890
 *             self.limiter_concurrency_exceeded = False
 * 
 *     def decrease_once_finished(self, object rpc_task):             # <<<<<<<<<<<<<<
 *         rpc_task.add_done_callback(self._decrease_active_rpcs_count)
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_7decrease_once_finished, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter_decrease_o, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc__ConcurrentRpcLimiter, __pyx_mstate_global->__pyx_n_u_decrease_once_finished, __pyx_t_7) < 0) __PYX_ERR(9, 890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_21_ConcurrentRpcLimiter_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ConcurrentRpcLimiter___setstate, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":932
 *             self._limiter = _ConcurrentRpcLimiter(maximum_concurrent_rpcs)
 * 
 *     def add_generic_rpc_handlers(self, object generic_rpc_handlers):             # <<<<<<<<<<<<<<
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_3add_generic_rpc_handlers, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer_add_generic_rpc_handle, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 932, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_add_generic_rpc_handlers, __pyx_t_7) < 0) __PYX_ERR(9, 932, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":935
 *         self._generic_handlers.extend(generic_rpc_handlers)
 * 
 *     def add_insecure_port(self, address):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address)
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_5add_insecure_port, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer_add_insecure_port, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_add_insecure_port, __pyx_t_7) < 0) __PYX_ERR(9, 935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":938
 *         return self._server.add_http2_port(address)
 * 
 *     def add_secure_port(self, address, server_credentials):             # <<<<<<<<<<<<<<
 *         return self._server.add_http2_port(address,
 *                                            server_credentials._credentials)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_7add_secure_port, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer_add_secure_port, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_add_secure_port, __pyx_t_7) < 0) __PYX_ERR(9, 938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":942
 *                                            server_credentials._credentials)
 * 
 *     async def _request_call(self):             # <<<<<<<<<<<<<<
 *         cdef grpc_call_error error
 *         cdef RPCState rpc_state = RPCState(self)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_9_request_call, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer__request_call, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_request_call, __pyx_t_7) < 0) __PYX_ERR(9, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":962
 *         return rpc_state
 * 
 *     async def _server_main_loop(self,             # <<<<<<<<<<<<<<
 *                                 object server_started):
 *         self._server.start(backup_queue=False)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_12_server_main_loop, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer__server_main_loop, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_server_main_loop, __pyx_t_7) < 0) __PYX_ERR(9, 962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1011
 *                 self._limiter.decrease_once_finished(rpc_task)
 * 
 *     def _serving_task_crash_handler(self, object task):             # <<<<<<<<<<<<<<
 *         """Shutdown the server immediately if unexpectedly exited."""
 *         if task.cancelled():
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_15_serving_task_crash_handler, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer__serving_task_crash_ha, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1011, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_serving_task_crash_handler, __pyx_t_7) < 0) __PYX_ERR(9, 1011, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1022
 *             self._loop.create_task(self.shutdown(None))
 * 
 *     async def start(self):             # <<<<<<<<<<<<<<
 *         if self._status == AIO_SERVER_STATUS_RUNNING:
 *             return
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_17start, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer_start, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_start, __pyx_t_7) < 0) __PYX_ERR(9, 1022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1036
 *         await server_started
 * 
 *     async def _start_shutting_down(self):             # <<<<<<<<<<<<<<
 *         """Prepares the server to shutting down.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_20_start_shutting_down, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer__start_shutting_down, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_start_shutting_down, __pyx_t_7) < 0) __PYX_ERR(9, 1036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1053
 *             pass
 * 
 *     async def shutdown(self, grace):             # <<<<<<<<<<<<<<
 *         """Gracefully shutdown the Core server.
 * 
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_23shutdown, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_shutdown, __pyx_t_7) < 0) __PYX_ERR(9, 1053, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1093
 *                 self._status = AIO_SERVER_STATUS_STOPPED
 * 
 *     async def wait_for_termination(self, object timeout):             # <<<<<<<<<<<<<<
 *         if timeout is None:
 *             await self._shutdown_completed
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_26wait_for_termination, __Pyx_CYFUNCTION_CCLASS | __Pyx_CYFUNCTION_COROUTINE, __pyx_mstate_global->__pyx_n_u_AioServer_wait_for_termination, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_wait_for_termination, __pyx_t_7) < 0) __PYX_ERR(9, 1093, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi":1126
 *         return self._thread_pool
 * 
 *     def is_running(self):             # <<<<<<<<<<<<<<
 *         return self._status == AIO_SERVER_STATUS_RUNNING
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_31is_running, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer_is_running, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_is_running, __pyx_t_7) < 0) __PYX_ERR(9, 1126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_33__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AioServer, (type(self), 0xa3b308d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AioServer__set_state(self, __pyx_state)
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_9AioServer_35__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AioServer___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_4grpc_7_cython_6cygrpc_AioServer, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < 0) __PYX_ERR(10, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "grpc/_cython/cygrpc.pyx":88
 * 
 * 
 * _initialize()             # <<<<<<<<<<<<<<
*/
  __pyx_t_7 = __pyx_f_4grpc_7_cython_6cygrpc__initialize(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ChannelCredentials(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_191__pyx_unpickle_ChannelCredentials, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ChannelCredential, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_ChannelCredential, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_ChannelCredentials__set_state(<ChannelCredentials> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ChannelCredentials__set_state(ChannelCredentials __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_193__pyx_unpickle_InsecureChannelCredentials, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InsecureChannelCr, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_InsecureChannelCr, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle__Tag(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_195__pyx_unpickle__Tag, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__Tag, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle__Tag, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle__Tag__set_state(<_Tag> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle__Tag__set_state(_Tag __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_197__pyx_unpickle_CensusContext, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CensusContext, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_CensusContext, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AioServer(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
*/
  __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_4grpc_7_cython_6cygrpc_199__pyx_unpickle_AioServer, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AioServer, NULL, __pyx_mstate_global->__pyx_n_u_grpc__cython_cygrpc, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_7)) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_AioServer, __pyx_t_7) < 0) __PYX_ERR(10, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "grpc/_cython/cygrpc.pyx":1
 * # Copyright 2015 gRPC authors.             # <<<<<<<<<<<<<<
 * #
 * # Licensed under the Apache License, Version 2.0 (the "License");
*/
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  if (__pyx_m) {
    if (__pyx_mstate->__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init grpc._cython.cygrpc", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init grpc._cython.cygrpc");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #else
  return __pyx_m;
  #endif
}
/* #### Code section: pystring_table ### */

typedef struct {
    const char *s;
#if 250 <= 65535
    const unsigned short n;
#elif 250 / 2 < INT_MAX
    const unsigned int n;
#elif 250 / 2 < LONG_MAX
    const unsigned long n;
#else
    const Py_ssize_t n;
#endif
#if 1 <= 31
    const unsigned int encoding : 5;
#elif 1 <= 255
    const unsigned char encoding;
#elif 1 <= 65535
    const unsigned short encoding;
#else
    const Py_ssize_t encoding;
#endif
    const unsigned int is_unicode : 1;
    const unsigned int intern : 1;
} __Pyx_StringTabEntry;
static const char * const __pyx_string_tab_encodings[] = { 0 };
static const __Pyx_StringTabEntry __pyx_string_tab[] = {
  {__pyx_k_, sizeof(__pyx_k_), 0, 0, 0}, /* PyObject cname: __pyx_kp_b_ */
  {__pyx_k_, sizeof(__pyx_k_), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_ */
  {__pyx_k_0, sizeof(__pyx_k_0), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_0 */
  {__pyx_k_1, sizeof(__pyx_k_1), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_1 */
  {__pyx_k_ALTSChannelCredentials, sizeof(__pyx_k_ALTSChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ALTSChannelCredentials */
  {__pyx_k_ALTSChannelCredentials___reduce, sizeof(__pyx_k_ALTSChannelCredentials___reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ALTSChannelCredentials___reduce */
  {__pyx_k_ALTSChannelCredentials___setstat, sizeof(__pyx_k_ALTSChannelCredentials___setstat), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ALTSChannelCredentials___setstat */
  {__pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS, sizeof(__pyx_k_AWAIT_THREADS_TIMEOUT_SECONDS), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AWAIT_THREADS_TIMEOUT_SECONDS */
  {__pyx_k_AbortError, sizeof(__pyx_k_AbortError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AbortError */
  {__pyx_k_Abort_already_called, sizeof(__pyx_k_Abort_already_called), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Abort_already_called */
  {__pyx_k_Abort_error_has_been_replaced, sizeof(__pyx_k_Abort_error_has_been_replaced), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Abort_error_has_been_replaced */
  {__pyx_k_Abort_error_unexpectedly_suppres, sizeof(__pyx_k_Abort_error_unexpectedly_suppres), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Abort_error_unexpectedly_suppres */
  {__pyx_k_Aborting_method_s_due_to_server, sizeof(__pyx_k_Aborting_method_s_due_to_server), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Aborting_method_s_due_to_server */
  {__pyx_k_ActiveThreadCount, sizeof(__pyx_k_ActiveThreadCount), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ActiveThreadCount */
  {__pyx_k_ActiveThreadCount___init, sizeof(__pyx_k_ActiveThreadCount___init), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ActiveThreadCount___init */
  {__pyx_k_ActiveThreadCount_await_zero_th, sizeof(__pyx_k_ActiveThreadCount_await_zero_th), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ActiveThreadCount_await_zero_th */
  {__pyx_k_ActiveThreadCount_decrement, sizeof(__pyx_k_ActiveThreadCount_decrement), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ActiveThreadCount_decrement */
  {__pyx_k_ActiveThreadCount_increment, sizeof(__pyx_k_ActiveThreadCount_increment), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ActiveThreadCount_increment */
  {__pyx_k_AioCall, sizeof(__pyx_k_AioCall), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall */
  {__pyx_k_AioCall___reduce_cython, sizeof(__pyx_k_AioCall___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall___reduce_cython */
  {__pyx_k_AioCall___setstate_cython, sizeof(__pyx_k_AioCall___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall___setstate_cython */
  {__pyx_k_AioCall__handle_status_once_rec, sizeof(__pyx_k_AioCall__handle_status_once_rec), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall__handle_status_once_rec */
  {__pyx_k_AioCall__repr, sizeof(__pyx_k_AioCall__repr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall__repr */
  {__pyx_k_AioCall_add_done_callback, sizeof(__pyx_k_AioCall_add_done_callback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_add_done_callback */
  {__pyx_k_AioCall_cancel, sizeof(__pyx_k_AioCall_cancel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_cancel */
  {__pyx_k_AioCall_cancelled, sizeof(__pyx_k_AioCall_cancelled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_cancelled */
  {__pyx_k_AioCall_done, sizeof(__pyx_k_AioCall_done), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_done */
  {__pyx_k_AioCall_initial_metadata, sizeof(__pyx_k_AioCall_initial_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_initial_metadata */
  {__pyx_k_AioCall_initiate_stream_stream, sizeof(__pyx_k_AioCall_initiate_stream_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_initiate_stream_stream */
  {__pyx_k_AioCall_initiate_unary_stream, sizeof(__pyx_k_AioCall_initiate_unary_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_initiate_unary_stream */
  {__pyx_k_AioCall_is_locally_cancelled, sizeof(__pyx_k_AioCall_is_locally_cancelled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_is_locally_cancelled */
  {__pyx_k_AioCall_is_ok, sizeof(__pyx_k_AioCall_is_ok), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_is_ok */
  {__pyx_k_AioCall_receive_serialized_mess, sizeof(__pyx_k_AioCall_receive_serialized_mess), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_receive_serialized_mess */
  {__pyx_k_AioCall_send_receive_close, sizeof(__pyx_k_AioCall_send_receive_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_send_receive_close */
  {__pyx_k_AioCall_send_serialized_message, sizeof(__pyx_k_AioCall_send_serialized_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_send_serialized_message */
  {__pyx_k_AioCall_set_internal_error, sizeof(__pyx_k_AioCall_set_internal_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_set_internal_error */
  {__pyx_k_AioCall_status, sizeof(__pyx_k_AioCall_status), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_status */
  {__pyx_k_AioCall_stream_unary, sizeof(__pyx_k_AioCall_stream_unary), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_stream_unary */
  {__pyx_k_AioCall_time_remaining, sizeof(__pyx_k_AioCall_time_remaining), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_time_remaining */
  {__pyx_k_AioCall_unary_unary, sizeof(__pyx_k_AioCall_unary_unary), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioCall_unary_unary */
  {__pyx_k_AioChannel, sizeof(__pyx_k_AioChannel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel */
  {__pyx_k_AioChannel___reduce_cython, sizeof(__pyx_k_AioChannel___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel___reduce_cython */
  {__pyx_k_AioChannel___setstate_cython, sizeof(__pyx_k_AioChannel___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel___setstate_cython */
  {__pyx_k_AioChannel_call, sizeof(__pyx_k_AioChannel_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_call */
  {__pyx_k_AioChannel_check_connectivity_st, sizeof(__pyx_k_AioChannel_check_connectivity_st), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_check_connectivity_st */
  {__pyx_k_AioChannel_close, sizeof(__pyx_k_AioChannel_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_close */
  {__pyx_k_AioChannel_closed, sizeof(__pyx_k_AioChannel_closed), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_closed */
  {__pyx_k_AioChannel_closing, sizeof(__pyx_k_AioChannel_closing), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_closing */
  {__pyx_k_AioChannel_watch_connectivity_st, sizeof(__pyx_k_AioChannel_watch_connectivity_st), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioChannel_watch_connectivity_st */
  {__pyx_k_AioRpcStatus, sizeof(__pyx_k_AioRpcStatus), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus */
  {__pyx_k_AioRpcStatus___reduce_cython, sizeof(__pyx_k_AioRpcStatus___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus___reduce_cython */
  {__pyx_k_AioRpcStatus___setstate_cython, sizeof(__pyx_k_AioRpcStatus___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus___setstate_cython */
  {__pyx_k_AioRpcStatus_code, sizeof(__pyx_k_AioRpcStatus_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus_code */
  {__pyx_k_AioRpcStatus_debug_error_string, sizeof(__pyx_k_AioRpcStatus_debug_error_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus_debug_error_string */
  {__pyx_k_AioRpcStatus_details, sizeof(__pyx_k_AioRpcStatus_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus_details */
  {__pyx_k_AioRpcStatus_trailing_metadata, sizeof(__pyx_k_AioRpcStatus_trailing_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioRpcStatus_trailing_metadata */
  {__pyx_k_AioServer, sizeof(__pyx_k_AioServer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer */
  {__pyx_k_AioServer___reduce_cython, sizeof(__pyx_k_AioServer___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer___reduce_cython */
  {__pyx_k_AioServer___setstate_cython, sizeof(__pyx_k_AioServer___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer___setstate_cython */
  {__pyx_k_AioServer__request_call, sizeof(__pyx_k_AioServer__request_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer__request_call */
  {__pyx_k_AioServer__server_main_loop, sizeof(__pyx_k_AioServer__server_main_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer__server_main_loop */
  {__pyx_k_AioServer__serving_task_crash_ha, sizeof(__pyx_k_AioServer__serving_task_crash_ha), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer__serving_task_crash_ha */
  {__pyx_k_AioServer__start_shutting_down, sizeof(__pyx_k_AioServer__start_shutting_down), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer__start_shutting_down */
  {__pyx_k_AioServer_add_generic_rpc_handle, sizeof(__pyx_k_AioServer_add_generic_rpc_handle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_add_generic_rpc_handle */
  {__pyx_k_AioServer_add_insecure_port, sizeof(__pyx_k_AioServer_add_insecure_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_add_insecure_port */
  {__pyx_k_AioServer_add_secure_port, sizeof(__pyx_k_AioServer_add_secure_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_add_secure_port */
  {__pyx_k_AioServer_is_running, sizeof(__pyx_k_AioServer_is_running), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_is_running */
  {__pyx_k_AioServer_shutdown, sizeof(__pyx_k_AioServer_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_shutdown */
  {__pyx_k_AioServer_start, sizeof(__pyx_k_AioServer_start), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_start */
  {__pyx_k_AioServer_wait_for_termination, sizeof(__pyx_k_AioServer_wait_for_termination), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioServer_wait_for_termination */
  {__pyx_k_AioState, sizeof(__pyx_k_AioState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioState */
  {__pyx_k_AioState___reduce_cython, sizeof(__pyx_k_AioState___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioState___reduce_cython */
  {__pyx_k_AioState___setstate_cython, sizeof(__pyx_k_AioState___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AioState___setstate_cython */
  {__pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AssertionError */
  {__pyx_k_AsyncIOEngine, sizeof(__pyx_k_AsyncIOEngine), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AsyncIOEngine */
  {__pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_AttributeError */
  {__pyx_k_BaseCompletionQueue, sizeof(__pyx_k_BaseCompletionQueue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BaseCompletionQueue */
  {__pyx_k_BaseCompletionQueue___reduce_cyt, sizeof(__pyx_k_BaseCompletionQueue___reduce_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BaseCompletionQueue___reduce_cyt */
  {__pyx_k_BaseCompletionQueue___setstate_c, sizeof(__pyx_k_BaseCompletionQueue___setstate_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BaseCompletionQueue___setstate_c */
  {__pyx_k_BaseError, sizeof(__pyx_k_BaseError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BaseError */
  {__pyx_k_BaseEvent, sizeof(__pyx_k_BaseEvent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BaseEvent */
  {__pyx_k_BatchOperationEvent, sizeof(__pyx_k_BatchOperationEvent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationEvent */
  {__pyx_k_BatchOperationEvent___reduce_cyt, sizeof(__pyx_k_BatchOperationEvent___reduce_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationEvent___reduce_cyt */
  {__pyx_k_BatchOperationEvent___setstate_c, sizeof(__pyx_k_BatchOperationEvent___setstate_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationEvent___setstate_c */
  {__pyx_k_BatchOperationTag, sizeof(__pyx_k_BatchOperationTag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationTag */
  {__pyx_k_BatchOperationTag___reduce_cyth, sizeof(__pyx_k_BatchOperationTag___reduce_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationTag___reduce_cyth */
  {__pyx_k_BatchOperationTag___setstate_cy, sizeof(__pyx_k_BatchOperationTag___setstate_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BatchOperationTag___setstate_cy */
  {__pyx_k_Binary_metadata_key, sizeof(__pyx_k_Binary_metadata_key), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Binary_metadata_key */
  {__pyx_k_BoundEventLoop, sizeof(__pyx_k_BoundEventLoop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BoundEventLoop */
  {__pyx_k_BoundEventLoop___reduce_cython, sizeof(__pyx_k_BoundEventLoop___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BoundEventLoop___reduce_cython */
  {__pyx_k_BoundEventLoop___setstate_cytho, sizeof(__pyx_k_BoundEventLoop___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BoundEventLoop___setstate_cytho */
  {__pyx_k_BoundEventLoop_close, sizeof(__pyx_k_BoundEventLoop_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_BoundEventLoop_close */
  {__pyx_k_COMPRESSION_METADATA_STRING_MAP, sizeof(__pyx_k_COMPRESSION_METADATA_STRING_MAP), 0, 1, 1}, /* PyObject cname: __pyx_n_u_COMPRESSION_METADATA_STRING_MAP */
  {__pyx_k_CUSTOM_IO_MANAGER, sizeof(__pyx_k_CUSTOM_IO_MANAGER), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CUSTOM_IO_MANAGER */
  {__pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD, sizeof(__pyx_k_CYGRPC_STATUS_CODE_TO_STATUS_COD), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CYGRPC_STATUS_CODE_TO_STATUS_COD */
  {__pyx_k_Call, sizeof(__pyx_k_Call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call */
  {__pyx_k_CallCredentials, sizeof(__pyx_k_CallCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallCredentials */
  {__pyx_k_CallCredentials___reduce_cython, sizeof(__pyx_k_CallCredentials___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallCredentials___reduce_cython */
  {__pyx_k_CallCredentials___setstate_cytho, sizeof(__pyx_k_CallCredentials___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallCredentials___setstate_cytho */
  {__pyx_k_CallDetails, sizeof(__pyx_k_CallDetails), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallDetails */
  {__pyx_k_CallDetails___reduce_cython, sizeof(__pyx_k_CallDetails___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallDetails___reduce_cython */
  {__pyx_k_CallDetails___setstate_cython, sizeof(__pyx_k_CallDetails___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallDetails___setstate_cython */
  {__pyx_k_CallError, sizeof(__pyx_k_CallError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallError */
  {__pyx_k_CallHandle, sizeof(__pyx_k_CallHandle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallHandle */
  {__pyx_k_CallHandle___reduce_cython, sizeof(__pyx_k_CallHandle___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallHandle___reduce_cython */
  {__pyx_k_CallHandle___setstate_cython, sizeof(__pyx_k_CallHandle___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallHandle___setstate_cython */
  {__pyx_k_CallState, sizeof(__pyx_k_CallState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallState */
  {__pyx_k_CallState___reduce_cython, sizeof(__pyx_k_CallState___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallState___reduce_cython */
  {__pyx_k_CallState___setstate_cython, sizeof(__pyx_k_CallState___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallState___setstate_cython */
  {__pyx_k_Call___reduce_cython, sizeof(__pyx_k_Call___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call___reduce_cython */
  {__pyx_k_Call___setstate_cython, sizeof(__pyx_k_Call___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call___setstate_cython */
  {__pyx_k_Call__custom_op_on_c_call, sizeof(__pyx_k_Call__custom_op_on_c_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call__custom_op_on_c_call */
  {__pyx_k_Call__start_batch, sizeof(__pyx_k_Call__start_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call__start_batch */
  {__pyx_k_Call_cancel, sizeof(__pyx_k_Call_cancel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call_cancel */
  {__pyx_k_Call_credentials_are_only_valid, sizeof(__pyx_k_Call_credentials_are_only_valid), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Call_credentials_are_only_valid */
  {__pyx_k_Call_credentials_may_not_be_NULL, sizeof(__pyx_k_Call_credentials_may_not_be_NULL), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Call_credentials_may_not_be_NULL */
  {__pyx_k_Call_peer, sizeof(__pyx_k_Call_peer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call_peer */
  {__pyx_k_Call_set_credentials, sizeof(__pyx_k_Call_set_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call_set_credentials */
  {__pyx_k_Call_start_client_batch, sizeof(__pyx_k_Call_start_client_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call_start_client_batch */
  {__pyx_k_Call_start_server_batch, sizeof(__pyx_k_Call_start_server_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Call_start_server_batch */
  {__pyx_k_CallbackFailureHandler, sizeof(__pyx_k_CallbackFailureHandler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackFailureHandler */
  {__pyx_k_CallbackFailureHandler___reduce, sizeof(__pyx_k_CallbackFailureHandler___reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackFailureHandler___reduce */
  {__pyx_k_CallbackFailureHandler___setstat, sizeof(__pyx_k_CallbackFailureHandler___setstat), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackFailureHandler___setstat */
  {__pyx_k_CallbackWrapper, sizeof(__pyx_k_CallbackWrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackWrapper */
  {__pyx_k_CallbackWrapper___reduce_cython, sizeof(__pyx_k_CallbackWrapper___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackWrapper___reduce_cython */
  {__pyx_k_CallbackWrapper___setstate_cytho, sizeof(__pyx_k_CallbackWrapper___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CallbackWrapper___setstate_cytho */
  {__pyx_k_CancelledError, sizeof(__pyx_k_CancelledError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CancelledError */
  {__pyx_k_Cannot_invoke_RPC_on_closed_chan, sizeof(__pyx_k_Cannot_invoke_RPC_on_closed_chan), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Cannot_invoke_RPC_on_closed_chan */
  {__pyx_k_Cannot_invoke_RPC_s, sizeof(__pyx_k_Cannot_invoke_RPC_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Cannot_invoke_RPC_s */
  {__pyx_k_Cannot_monitor_channel_state_s, sizeof(__pyx_k_Cannot_monitor_channel_state_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Cannot_monitor_channel_state_s */
  {__pyx_k_CensusContext, sizeof(__pyx_k_CensusContext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CensusContext */
  {__pyx_k_CensusContext___reduce_cython, sizeof(__pyx_k_CensusContext___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CensusContext___reduce_cython */
  {__pyx_k_CensusContext___setstate_cython, sizeof(__pyx_k_CensusContext___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CensusContext___setstate_cython */
  {__pyx_k_Channel, sizeof(__pyx_k_Channel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel */
  {__pyx_k_ChannelArg, sizeof(__pyx_k_ChannelArg), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArg */
  {__pyx_k_ChannelArgKey, sizeof(__pyx_k_ChannelArgKey), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArgKey */
  {__pyx_k_ChannelArg___reduce_cython, sizeof(__pyx_k_ChannelArg___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArg___reduce_cython */
  {__pyx_k_ChannelArg___setstate_cython, sizeof(__pyx_k_ChannelArg___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArg___setstate_cython */
  {__pyx_k_ChannelArgs, sizeof(__pyx_k_ChannelArgs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArgs */
  {__pyx_k_ChannelArgs___reduce_cython, sizeof(__pyx_k_ChannelArgs___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArgs___reduce_cython */
  {__pyx_k_ChannelArgs___setstate_cython, sizeof(__pyx_k_ChannelArgs___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelArgs___setstate_cython */
  {__pyx_k_ChannelCredentials, sizeof(__pyx_k_ChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelCredentials */
  {__pyx_k_ChannelCredentials___reduce_cyth, sizeof(__pyx_k_ChannelCredentials___reduce_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelCredentials___reduce_cyth */
  {__pyx_k_ChannelCredentials___setstate_cy, sizeof(__pyx_k_ChannelCredentials___setstate_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelCredentials___setstate_cy */
  {__pyx_k_ChannelState, sizeof(__pyx_k_ChannelState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelState */
  {__pyx_k_ChannelState___reduce_cython, sizeof(__pyx_k_ChannelState___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelState___reduce_cython */
  {__pyx_k_ChannelState___setstate_cython, sizeof(__pyx_k_ChannelState___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ChannelState___setstate_cython */
  {__pyx_k_Channel___reduce_cython, sizeof(__pyx_k_Channel___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel___reduce_cython */
  {__pyx_k_Channel___setstate_cython, sizeof(__pyx_k_Channel___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel___setstate_cython */
  {__pyx_k_Channel_check_connectivity_state, sizeof(__pyx_k_Channel_check_connectivity_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_check_connectivity_state */
  {__pyx_k_Channel_close, sizeof(__pyx_k_Channel_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_close */
  {__pyx_k_Channel_close_on_fork, sizeof(__pyx_k_Channel_close_on_fork), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_close_on_fork */
  {__pyx_k_Channel_get_registered_call_hand, sizeof(__pyx_k_Channel_get_registered_call_hand), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_get_registered_call_hand */
  {__pyx_k_Channel_integrated_call, sizeof(__pyx_k_Channel_integrated_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_integrated_call */
  {__pyx_k_Channel_is_closed, sizeof(__pyx_k_Channel_is_closed), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Channel_is_closed */
  {__pyx_k_Channel_next_call_event, sizeof(__pyx_k_Channel_next_call_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_next_call_event */
  {__pyx_k_Channel_segregated_call, sizeof(__pyx_k_Channel_segregated_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_segregated_call */
  {__pyx_k_Channel_target, sizeof(__pyx_k_Channel_target), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_target */
  {__pyx_k_Channel_watch_connectivity_state, sizeof(__pyx_k_Channel_watch_connectivity_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Channel_watch_connectivity_state */
  {__pyx_k_CompletionQueue, sizeof(__pyx_k_CompletionQueue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue */
  {__pyx_k_CompletionQueue___reduce_cython, sizeof(__pyx_k_CompletionQueue___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue___reduce_cython */
  {__pyx_k_CompletionQueue___setstate_cytho, sizeof(__pyx_k_CompletionQueue___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue___setstate_cytho */
  {__pyx_k_CompletionQueue__internal_poll, sizeof(__pyx_k_CompletionQueue__internal_poll), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue__internal_poll */
  {__pyx_k_CompletionQueue_clear, sizeof(__pyx_k_CompletionQueue_clear), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue_clear */
  {__pyx_k_CompletionQueue_poll, sizeof(__pyx_k_CompletionQueue_poll), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue_poll */
  {__pyx_k_CompletionQueue_shutdown, sizeof(__pyx_k_CompletionQueue_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionQueue_shutdown */
  {__pyx_k_CompletionType, sizeof(__pyx_k_CompletionType), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompletionType */
  {__pyx_k_CompositeCallCredentials, sizeof(__pyx_k_CompositeCallCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeCallCredentials */
  {__pyx_k_CompositeCallCredentials___reduc, sizeof(__pyx_k_CompositeCallCredentials___reduc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeCallCredentials___reduc */
  {__pyx_k_CompositeCallCredentials___setst, sizeof(__pyx_k_CompositeCallCredentials___setst), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeCallCredentials___setst */
  {__pyx_k_CompositeChannelCredentials, sizeof(__pyx_k_CompositeChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeChannelCredentials */
  {__pyx_k_CompositeChannelCredentials___re, sizeof(__pyx_k_CompositeChannelCredentials___re), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeChannelCredentials___re */
  {__pyx_k_CompositeChannelCredentials___se, sizeof(__pyx_k_CompositeChannelCredentials___se), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompositeChannelCredentials___se */
  {__pyx_k_CompressionAlgorithm, sizeof(__pyx_k_CompressionAlgorithm), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionAlgorithm */
  {__pyx_k_CompressionLevel, sizeof(__pyx_k_CompressionLevel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionLevel */
  {__pyx_k_CompressionOptions, sizeof(__pyx_k_CompressionOptions), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions */
  {__pyx_k_CompressionOptions___reduce_cyth, sizeof(__pyx_k_CompressionOptions___reduce_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions___reduce_cyth */
  {__pyx_k_CompressionOptions___setstate_cy, sizeof(__pyx_k_CompressionOptions___setstate_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions___setstate_cy */
  {__pyx_k_CompressionOptions_disable_algor, sizeof(__pyx_k_CompressionOptions_disable_algor), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions_disable_algor */
  {__pyx_k_CompressionOptions_enable_algori, sizeof(__pyx_k_CompressionOptions_enable_algori), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions_enable_algori */
  {__pyx_k_CompressionOptions_is_algorithm, sizeof(__pyx_k_CompressionOptions_is_algorithm), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions_is_algorithm */
  {__pyx_k_CompressionOptions_to_channel_ar, sizeof(__pyx_k_CompressionOptions_to_channel_ar), 0, 1, 1}, /* PyObject cname: __pyx_n_u_CompressionOptions_to_channel_ar */
  {__pyx_k_Compression_setting_must_be_spec, sizeof(__pyx_k_Compression_setting_must_be_spec), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Compression_setting_must_be_spec */
  {__pyx_k_ComputeEngineChannelCredentials, sizeof(__pyx_k_ComputeEngineChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ComputeEngineChannelCredentials */
  {__pyx_k_ComputeEngineChannelCredentials_2, sizeof(__pyx_k_ComputeEngineChannelCredentials_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ComputeEngineChannelCredentials_2 */
  {__pyx_k_ComputeEngineChannelCredentials_3, sizeof(__pyx_k_ComputeEngineChannelCredentials_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ComputeEngineChannelCredentials_3 */
  {__pyx_k_ConcurrentRpcLimiter, sizeof(__pyx_k_ConcurrentRpcLimiter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter */
  {__pyx_k_ConcurrentRpcLimiter___reduce_c, sizeof(__pyx_k_ConcurrentRpcLimiter___reduce_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter___reduce_c */
  {__pyx_k_ConcurrentRpcLimiter___setstate, sizeof(__pyx_k_ConcurrentRpcLimiter___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter___setstate */
  {__pyx_k_ConcurrentRpcLimiter__decrease, sizeof(__pyx_k_ConcurrentRpcLimiter__decrease), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter__decrease */
  {__pyx_k_ConcurrentRpcLimiter_check_befo, sizeof(__pyx_k_ConcurrentRpcLimiter_check_befo), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter_check_befo */
  {__pyx_k_ConcurrentRpcLimiter_decrease_o, sizeof(__pyx_k_ConcurrentRpcLimiter_decrease_o), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConcurrentRpcLimiter_decrease_o */
  {__pyx_k_Concurrent_RPC_limit_exceeded, sizeof(__pyx_k_Concurrent_RPC_limit_exceeded), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Concurrent_RPC_limit_exceeded */
  {__pyx_k_Condition, sizeof(__pyx_k_Condition), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Condition */
  {__pyx_k_ConnectivityEvent, sizeof(__pyx_k_ConnectivityEvent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityEvent */
  {__pyx_k_ConnectivityEvent___reduce_cytho, sizeof(__pyx_k_ConnectivityEvent___reduce_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityEvent___reduce_cytho */
  {__pyx_k_ConnectivityEvent___setstate_cyt, sizeof(__pyx_k_ConnectivityEvent___setstate_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityEvent___setstate_cyt */
  {__pyx_k_ConnectivityState, sizeof(__pyx_k_ConnectivityState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityState */
  {__pyx_k_ConnectivityTag, sizeof(__pyx_k_ConnectivityTag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityTag */
  {__pyx_k_ConnectivityTag___reduce_cython, sizeof(__pyx_k_ConnectivityTag___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityTag___reduce_cython */
  {__pyx_k_ConnectivityTag___setstate_cyth, sizeof(__pyx_k_ConnectivityTag___setstate_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ConnectivityTag___setstate_cyth */
  {__pyx_k_Core_should_not_return_GRPC_QUEU, sizeof(__pyx_k_Core_should_not_return_GRPC_QUEU), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Core_should_not_return_GRPC_QUEU */
  {__pyx_k_Credentials_couldn_t_have_been_s, sizeof(__pyx_k_Credentials_couldn_t_have_been_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Credentials_couldn_t_have_been_s */
  {__pyx_k_Dedicated_exception_class_for_wa, sizeof(__pyx_k_Dedicated_exception_class_for_wa), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Dedicated_exception_class_for_wa */
  {__pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 1, 1}, /* PyObject cname: __pyx_n_u_DeprecationWarning */
  {__pyx_k_EMPTY_FLAGS, sizeof(__pyx_k_EMPTY_FLAGS), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EMPTY_FLAGS */
  {__pyx_k_EMPTY_MASK, sizeof(__pyx_k_EMPTY_MASK), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EMPTY_MASK */
  {__pyx_k_EOF, sizeof(__pyx_k_EOF), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF */
  {__pyx_k_EOF_2, sizeof(__pyx_k_EOF_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF_2 */
  {__pyx_k_EOF___bool, sizeof(__pyx_k_EOF___bool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF___bool */
  {__pyx_k_EOF___len, sizeof(__pyx_k_EOF___len), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF___len */
  {__pyx_k_EOF___repr, sizeof(__pyx_k_EOF___repr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF___repr */
  {__pyx_k_EOF___str, sizeof(__pyx_k_EOF___str), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF___str */
  {__pyx_k_EOF__repr, sizeof(__pyx_k_EOF__repr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EOF__repr */
  {__pyx_k_EX_USAGE, sizeof(__pyx_k_EX_USAGE), 0, 1, 1}, /* PyObject cname: __pyx_n_u_EX_USAGE */
  {__pyx_k_Enum, sizeof(__pyx_k_Enum), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Enum */
  {__pyx_k_Error_fetching_certificate_confi, sizeof(__pyx_k_Error_fetching_certificate_confi), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Error_fetching_certificate_confi */
  {__pyx_k_Error_fetching_certificate_confi_2, sizeof(__pyx_k_Error_fetching_certificate_confi_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Error_fetching_certificate_confi_2 */
  {__pyx_k_Error_in_callback_for_method_s, sizeof(__pyx_k_Error_in_callback_for_method_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Error_in_callback_for_method_s */
  {__pyx_k_Error_in_grpc_server_request_cal, sizeof(__pyx_k_Error_in_grpc_server_request_cal), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Error_in_grpc_server_request_cal */
  {__pyx_k_Error_in_grpc_server_request_reg, sizeof(__pyx_k_Error_in_grpc_server_request_reg), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Error_in_grpc_server_request_reg */
  {__pyx_k_Exception_not_handled_by__handle, sizeof(__pyx_k_Exception_not_handled_by__handle), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Exception_not_handled_by__handle */
  {__pyx_k_ExecuteBatchError, sizeof(__pyx_k_ExecuteBatchError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ExecuteBatchError */
  {__pyx_k_ExecuteBatchError_raised_in_core, sizeof(__pyx_k_ExecuteBatchError_raised_in_core), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_ExecuteBatchError_raised_in_core */
  {__pyx_k_Exiting_child_due_to_raised_exce, sizeof(__pyx_k_Exiting_child_due_to_raised_exce), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Exiting_child_due_to_raised_exce */
  {__pyx_k_Expected_bytes_str_or_unicode_no, sizeof(__pyx_k_Expected_bytes_str_or_unicode_no), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Expected_bytes_str_or_unicode_no */
  {__pyx_k_Expected_int_bytes_or_behavior_g, sizeof(__pyx_k_Expected_int_bytes_or_behavior_g), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Expected_int_bytes_or_behavior_g */
  {__pyx_k_Expected_str_not, sizeof(__pyx_k_Expected_str_not), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Expected_str_not */
  {__pyx_k_Expecting_non_ok_status_code, sizeof(__pyx_k_Expecting_non_ok_status_code), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Expecting_non_ok_status_code */
  {__pyx_k_Failed, sizeof(__pyx_k_Failed), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed */
  {__pyx_k_Failed_grpc_call_start_batch_wit, sizeof(__pyx_k_Failed_grpc_call_start_batch_wit), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_grpc_call_start_batch_wit */
  {__pyx_k_Failed_sending_error_status_from, sizeof(__pyx_k_Failed_sending_error_status_from), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_sending_error_status_from */
  {__pyx_k_Failed_to_get_server_sockets_ple, sizeof(__pyx_k_Failed_to_get_server_sockets_ple), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_server_sockets_ple */
  {__pyx_k_Failed_to_get_servers_please_ens, sizeof(__pyx_k_Failed_to_get_servers_please_ens), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_servers_please_ens */
  {__pyx_k_Failed_to_get_the_channel_please, sizeof(__pyx_k_Failed_to_get_the_channel_please), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_the_channel_please */
  {__pyx_k_Failed_to_get_the_server_please, sizeof(__pyx_k_Failed_to_get_the_server_please), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_the_server_please */
  {__pyx_k_Failed_to_get_the_socket_please, sizeof(__pyx_k_Failed_to_get_the_socket_please), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_the_socket_please */
  {__pyx_k_Failed_to_get_the_subchannel_ple, sizeof(__pyx_k_Failed_to_get_the_subchannel_ple), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_the_subchannel_ple */
  {__pyx_k_Failed_to_get_top_channels_pleas, sizeof(__pyx_k_Failed_to_get_top_channels_pleas), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_get_top_channels_pleas */
  {__pyx_k_Failed_to_receive_any_message_fr, sizeof(__pyx_k_Failed_to_receive_any_message_fr), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_receive_any_message_fr */
  {__pyx_k_Failed_to_shutdown_gRPC_Core_aft, sizeof(__pyx_k_Failed_to_shutdown_gRPC_Core_aft), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_shutdown_gRPC_Core_aft */
  {__pyx_k_Failed_to_shutdown_gRPC_Python_t, sizeof(__pyx_k_Failed_to_shutdown_gRPC_Python_t), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Failed_to_shutdown_gRPC_Python_t */
  {__pyx_k_ForkManagedThread, sizeof(__pyx_k_ForkManagedThread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread */
  {__pyx_k_ForkManagedThread___init, sizeof(__pyx_k_ForkManagedThread___init), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread___init */
  {__pyx_k_ForkManagedThread___init___local, sizeof(__pyx_k_ForkManagedThread___init___local), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread___init___local */
  {__pyx_k_ForkManagedThread_join, sizeof(__pyx_k_ForkManagedThread_join), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread_join */
  {__pyx_k_ForkManagedThread_setDaemon, sizeof(__pyx_k_ForkManagedThread_setDaemon), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread_setDaemon */
  {__pyx_k_ForkManagedThread_start, sizeof(__pyx_k_ForkManagedThread_start), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkManagedThread_start */
  {__pyx_k_ForkState, sizeof(__pyx_k_ForkState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkState */
  {__pyx_k_ForkState___init, sizeof(__pyx_k_ForkState___init), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ForkState___init */
  {__pyx_k_GRPC_ASYNCIO_ENGINE, sizeof(__pyx_k_GRPC_ASYNCIO_ENGINE), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_ASYNCIO_ENGINE */
  {__pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT, sizeof(__pyx_k_GRPC_COMPRESSION_CHANNEL_DEFAULT), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_COMPRESSION_CHANNEL_DEFAULT */
  {__pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT, sizeof(__pyx_k_GRPC_COMPRESSION_REQUEST_ALGORIT), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_COMPRESSION_REQUEST_ALGORIT */
  {__pyx_k_GRPC_ENABLE_FORK_SUPPORT, sizeof(__pyx_k_GRPC_ENABLE_FORK_SUPPORT), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_ENABLE_FORK_SUPPORT */
  {__pyx_k_GRPC_ENABLE_FORK_SUPPORT_2, sizeof(__pyx_k_GRPC_ENABLE_FORK_SUPPORT_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_ENABLE_FORK_SUPPORT_2 */
  {__pyx_k_GRPC_PROPAGATE_CANCELLATION, sizeof(__pyx_k_GRPC_PROPAGATE_CANCELLATION), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_PROPAGATE_CANCELLATION */
  {__pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT, sizeof(__pyx_k_GRPC_PROPAGATE_CENSUS_STATS_CONT), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_PROPAGATE_CENSUS_STATS_CONT */
  {__pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO, sizeof(__pyx_k_GRPC_PROPAGATE_CENSUS_TRACING_CO), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_PROPAGATE_CENSUS_TRACING_CO */
  {__pyx_k_GRPC_PROPAGATE_DEADLINE, sizeof(__pyx_k_GRPC_PROPAGATE_DEADLINE), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_PROPAGATE_DEADLINE */
  {__pyx_k_GRPC_PROPAGATE_DEFAULTS, sizeof(__pyx_k_GRPC_PROPAGATE_DEFAULTS), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GRPC_PROPAGATE_DEFAULTS */
  {__pyx_k_Group, sizeof(__pyx_k_Group), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Group */
  {__pyx_k_GrpcArgWrapper, sizeof(__pyx_k_GrpcArgWrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GrpcArgWrapper */
  {__pyx_k_GrpcArgWrapper___reduce_cython, sizeof(__pyx_k_GrpcArgWrapper___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GrpcArgWrapper___reduce_cython */
  {__pyx_k_GrpcArgWrapper___setstate_cytho, sizeof(__pyx_k_GrpcArgWrapper___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GrpcArgWrapper___setstate_cytho */
  {__pyx_k_GrpcCallWrapper, sizeof(__pyx_k_GrpcCallWrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_GrpcCallWrapper */
  {__pyx_k_HandleExceptions_s, sizeof(__pyx_k_HandleExceptions_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_HandleExceptions_s */
  {__pyx_k_HandlerCallDetails, sizeof(__pyx_k_HandlerCallDetails), 0, 1, 1}, /* PyObject cname: __pyx_n_u_HandlerCallDetails */
  {__pyx_k_HandlerCallDetails___reduce_cyt, sizeof(__pyx_k_HandlerCallDetails___reduce_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_HandlerCallDetails___reduce_cyt */
  {__pyx_k_HandlerCallDetails___setstate_c, sizeof(__pyx_k_HandlerCallDetails___setstate_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_HandlerCallDetails___setstate_c */
  {__pyx_k_IMMUTABLE_EMPTY_METADATA, sizeof(__pyx_k_IMMUTABLE_EMPTY_METADATA), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IMMUTABLE_EMPTY_METADATA */
  {__pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR, sizeof(__pyx_k_INTERNAL_CALL_ERROR_MESSAGE_FOR), 0, 1, 1}, /* PyObject cname: __pyx_n_u_INTERNAL_CALL_ERROR_MESSAGE_FOR */
  {__pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ImportError */
  {__pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Incompatible_checksums_0x_x_vs_0 */
  {__pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Incompatible_checksums_0x_x_vs_0_2 */
  {__pyx_k_InitialMetadataFlags, sizeof(__pyx_k_InitialMetadataFlags), 0, 1, 1}, /* PyObject cname: __pyx_n_u_InitialMetadataFlags */
  {__pyx_k_InsecureChannelCredentials, sizeof(__pyx_k_InsecureChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_InsecureChannelCredentials */
  {__pyx_k_InsecureChannelCredentials___red, sizeof(__pyx_k_InsecureChannelCredentials___red), 0, 1, 1}, /* PyObject cname: __pyx_n_u_InsecureChannelCredentials___red */
  {__pyx_k_InsecureChannelCredentials___set, sizeof(__pyx_k_InsecureChannelCredentials___set), 0, 1, 1}, /* PyObject cname: __pyx_n_u_InsecureChannelCredentials___set */
  {__pyx_k_IntegratedCall, sizeof(__pyx_k_IntegratedCall), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IntegratedCall */
  {__pyx_k_IntegratedCall___reduce_cython, sizeof(__pyx_k_IntegratedCall___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IntegratedCall___reduce_cython */
  {__pyx_k_IntegratedCall___setstate_cython, sizeof(__pyx_k_IntegratedCall___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IntegratedCall___setstate_cython */
  {__pyx_k_IntegratedCall_cancel, sizeof(__pyx_k_IntegratedCall_cancel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IntegratedCall_cancel */
  {__pyx_k_IntegratedCall_operate, sizeof(__pyx_k_IntegratedCall_operate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_IntegratedCall_operate */
  {__pyx_k_InternalError, sizeof(__pyx_k_InternalError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_InternalError */
  {__pyx_k_Internal_error_from_Core, sizeof(__pyx_k_Internal_error_from_Core), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Internal_error_from_Core */
  {__pyx_k_Internal_gRPC_call_error_d_Pleas, sizeof(__pyx_k_Internal_gRPC_call_error_d_Pleas), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Internal_gRPC_call_error_d_Pleas */
  {__pyx_k_Invalid_encoding_on_s, sizeof(__pyx_k_Invalid_encoding_on_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Invalid_encoding_on_s */
  {__pyx_k_Invalid_trailing_metadata_type_e, sizeof(__pyx_k_Invalid_trailing_metadata_type_e), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Invalid_trailing_metadata_type_e */
  {__pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_KeyError */
  {__pyx_k_KeyboardInterrupt, sizeof(__pyx_k_KeyboardInterrupt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_KeyboardInterrupt */
  {__pyx_k_LOGGER, sizeof(__pyx_k_LOGGER), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LOGGER */
  {__pyx_k_LatentEventArg, sizeof(__pyx_k_LatentEventArg), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LatentEventArg */
  {__pyx_k_LocalChannelCredentials, sizeof(__pyx_k_LocalChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LocalChannelCredentials */
  {__pyx_k_LocalChannelCredentials___reduce, sizeof(__pyx_k_LocalChannelCredentials___reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LocalChannelCredentials___reduce */
  {__pyx_k_LocalChannelCredentials___setsta, sizeof(__pyx_k_LocalChannelCredentials___setsta), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LocalChannelCredentials___setsta */
  {__pyx_k_LocalConnectionType, sizeof(__pyx_k_LocalConnectionType), 0, 1, 1}, /* PyObject cname: __pyx_n_u_LocalConnectionType */
  {__pyx_k_Locally_aborted, sizeof(__pyx_k_Locally_aborted), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Locally_aborted */
  {__pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Lock */
  {__pyx_k_MessageReceiver, sizeof(__pyx_k_MessageReceiver), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MessageReceiver */
  {__pyx_k_MessageReceiver___anext, sizeof(__pyx_k_MessageReceiver___anext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MessageReceiver___anext */
  {__pyx_k_MessageReceiver___reduce_cython, sizeof(__pyx_k_MessageReceiver___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MessageReceiver___reduce_cython */
  {__pyx_k_MessageReceiver___setstate_cyth, sizeof(__pyx_k_MessageReceiver___setstate_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MessageReceiver___setstate_cyth */
  {__pyx_k_MessageReceiver__async_message, sizeof(__pyx_k_MessageReceiver__async_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MessageReceiver__async_message */
  {__pyx_k_MetadataPluginCallCredentials, sizeof(__pyx_k_MetadataPluginCallCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MetadataPluginCallCredentials */
  {__pyx_k_MetadataPluginCallCredentials_2, sizeof(__pyx_k_MetadataPluginCallCredentials_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MetadataPluginCallCredentials_2 */
  {__pyx_k_MetadataPluginCallCredentials_3, sizeof(__pyx_k_MetadataPluginCallCredentials_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_MetadataPluginCallCredentials_3 */
  {__pyx_k_Metadatum, sizeof(__pyx_k_Metadatum), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Metadatum */
  {__pyx_k_Method_not_found, sizeof(__pyx_k_Method_not_found), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Method_not_found */
  {__pyx_k_NON_OK_CALL_REPRESENTATION, sizeof(__pyx_k_NON_OK_CALL_REPRESENTATION), 0, 1, 1}, /* PyObject cname: __pyx_n_u_NON_OK_CALL_REPRESENTATION */
  {__pyx_k_No_custom_hooks_are_implemented, sizeof(__pyx_k_No_custom_hooks_are_implemented), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_No_custom_hooks_are_implemented */
  {__pyx_k_Non_thread_safe_operation, sizeof(__pyx_k_Non_thread_safe_operation), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Non_thread_safe_operation */
  {__pyx_k_None, sizeof(__pyx_k_None), 0, 1, 1}, /* PyObject cname: __pyx_n_u_None */
  {__pyx_k_None, sizeof(__pyx_k_None), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_None */
  {__pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_NotImplementedError */
  {__pyx_k_Note_that_Cython_is_deliberately, sizeof(__pyx_k_Note_that_Cython_is_deliberately), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Note_that_Cython_is_deliberately */
  {__pyx_k_OK_CALL_REPRESENTATION, sizeof(__pyx_k_OK_CALL_REPRESENTATION), 0, 1, 1}, /* PyObject cname: __pyx_n_u_OK_CALL_REPRESENTATION */
  {__pyx_k_Operation, sizeof(__pyx_k_Operation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Operation */
  {__pyx_k_OperationType, sizeof(__pyx_k_OperationType), 0, 1, 1}, /* PyObject cname: __pyx_n_u_OperationType */
  {__pyx_k_Operation___reduce_cython, sizeof(__pyx_k_Operation___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Operation___reduce_cython */
  {__pyx_k_Operation___setstate_cython, sizeof(__pyx_k_Operation___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Operation___setstate_cython */
  {__pyx_k_Optional, sizeof(__pyx_k_Optional), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Optional */
  {__pyx_k_Optional_int, sizeof(__pyx_k_Optional_int), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Optional_int */
  {__pyx_k_POLLER, sizeof(__pyx_k_POLLER), 0, 1, 1}, /* PyObject cname: __pyx_n_u_POLLER */
  {__pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PickleError */
  {__pyx_k_PollerCompletionQueue, sizeof(__pyx_k_PollerCompletionQueue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue */
  {__pyx_k_PollerCompletionQueue___reduce_c, sizeof(__pyx_k_PollerCompletionQueue___reduce_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue___reduce_c */
  {__pyx_k_PollerCompletionQueue___setstate, sizeof(__pyx_k_PollerCompletionQueue___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue___setstate */
  {__pyx_k_PollerCompletionQueue__handle_ev, sizeof(__pyx_k_PollerCompletionQueue__handle_ev), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue__handle_ev */
  {__pyx_k_PollerCompletionQueue__poll_wrap, sizeof(__pyx_k_PollerCompletionQueue__poll_wrap), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue__poll_wrap */
  {__pyx_k_PollerCompletionQueue_bind_loop, sizeof(__pyx_k_PollerCompletionQueue_bind_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PollerCompletionQueue_bind_loop */
  {__pyx_k_PropagationConstants, sizeof(__pyx_k_PropagationConstants), 0, 1, 1}, /* PyObject cname: __pyx_n_u_PropagationConstants */
  {__pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth, sizeof(__pyx_k_Pyx_CFunc_1f6ebd__4grpc_7_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Pyx_CFunc_1f6ebd__4grpc_7_cyth */
  {__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr, sizeof(__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr */
  {__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2, sizeof(__pyx_k_Pyx_CFunc_4grpc_7_cython_6cygr_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Pyx_CFunc_4grpc_7_cython_6cygr_2 */
  {__pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth, sizeof(__pyx_k_Pyx_CFunc_7f0cf6__4grpc_7_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Pyx_CFunc_7f0cf6__4grpc_7_cyth */
  {__pyx_k_Queue, sizeof(__pyx_k_Queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Queue */
  {__pyx_k_RLock, sizeof(__pyx_k_RLock), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RLock */
  {__pyx_k_RPCState, sizeof(__pyx_k_RPCState), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RPCState */
  {__pyx_k_RPCState___reduce_cython, sizeof(__pyx_k_RPCState___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RPCState___reduce_cython */
  {__pyx_k_RPCState___setstate_cython, sizeof(__pyx_k_RPCState___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RPCState___setstate_cython */
  {__pyx_k_RPC_already_finished, sizeof(__pyx_k_RPC_already_finished), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_RPC_already_finished */
  {__pyx_k_RPC_cancelled_for_servicer_metho, sizeof(__pyx_k_RPC_cancelled_for_servicer_metho), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_RPC_cancelled_for_servicer_metho */
  {__pyx_k_RPC_cancelled_for_unknown_reason, sizeof(__pyx_k_RPC_cancelled_for_unknown_reason), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_RPC_cancelled_for_unknown_reason */
  {__pyx_k_Raised_if_the_server_is_stopped, sizeof(__pyx_k_Raised_if_the_server_is_stopped), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Raised_if_the_server_is_stopped */
  {__pyx_k_Raised_upon_unexpected_errors_in, sizeof(__pyx_k_Raised_upon_unexpected_errors_in), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Raised_upon_unexpected_errors_in */
  {__pyx_k_Raised_when_calling_abort_in_ser, sizeof(__pyx_k_Raised_when_calling_abort_in_ser), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Raised_when_calling_abort_in_ser */
  {__pyx_k_Raised_when_execute_batch_return, sizeof(__pyx_k_Raised_when_execute_batch_return), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Raised_when_execute_batch_return */
  {__pyx_k_Raised_when_the_usage_of_API_by, sizeof(__pyx_k_Raised_when_the_usage_of_API_by), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Raised_when_the_usage_of_API_by */
  {__pyx_k_ReceiveCloseOnServerOperation, sizeof(__pyx_k_ReceiveCloseOnServerOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveCloseOnServerOperation */
  {__pyx_k_ReceiveCloseOnServerOperation_2, sizeof(__pyx_k_ReceiveCloseOnServerOperation_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveCloseOnServerOperation_2 */
  {__pyx_k_ReceiveCloseOnServerOperation_3, sizeof(__pyx_k_ReceiveCloseOnServerOperation_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveCloseOnServerOperation_3 */
  {__pyx_k_ReceiveCloseOnServerOperation_ca, sizeof(__pyx_k_ReceiveCloseOnServerOperation_ca), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveCloseOnServerOperation_ca */
  {__pyx_k_ReceiveCloseOnServerOperation_ty, sizeof(__pyx_k_ReceiveCloseOnServerOperation_ty), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveCloseOnServerOperation_ty */
  {__pyx_k_ReceiveInitialMetadataOperation, sizeof(__pyx_k_ReceiveInitialMetadataOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveInitialMetadataOperation */
  {__pyx_k_ReceiveInitialMetadataOperation_2, sizeof(__pyx_k_ReceiveInitialMetadataOperation_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveInitialMetadataOperation_2 */
  {__pyx_k_ReceiveInitialMetadataOperation_3, sizeof(__pyx_k_ReceiveInitialMetadataOperation_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveInitialMetadataOperation_3 */
  {__pyx_k_ReceiveInitialMetadataOperation_4, sizeof(__pyx_k_ReceiveInitialMetadataOperation_4), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveInitialMetadataOperation_4 */
  {__pyx_k_ReceiveInitialMetadataOperation_5, sizeof(__pyx_k_ReceiveInitialMetadataOperation_5), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveInitialMetadataOperation_5 */
  {__pyx_k_ReceiveMessageOperation, sizeof(__pyx_k_ReceiveMessageOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveMessageOperation */
  {__pyx_k_ReceiveMessageOperation___reduce, sizeof(__pyx_k_ReceiveMessageOperation___reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveMessageOperation___reduce */
  {__pyx_k_ReceiveMessageOperation___setsta, sizeof(__pyx_k_ReceiveMessageOperation___setsta), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveMessageOperation___setsta */
  {__pyx_k_ReceiveMessageOperation_message, sizeof(__pyx_k_ReceiveMessageOperation_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveMessageOperation_message */
  {__pyx_k_ReceiveMessageOperation_type, sizeof(__pyx_k_ReceiveMessageOperation_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveMessageOperation_type */
  {__pyx_k_ReceiveStatusOnClientOperation, sizeof(__pyx_k_ReceiveStatusOnClientOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation */
  {__pyx_k_ReceiveStatusOnClientOperation_2, sizeof(__pyx_k_ReceiveStatusOnClientOperation_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_2 */
  {__pyx_k_ReceiveStatusOnClientOperation_3, sizeof(__pyx_k_ReceiveStatusOnClientOperation_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_3 */
  {__pyx_k_ReceiveStatusOnClientOperation_c, sizeof(__pyx_k_ReceiveStatusOnClientOperation_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_c */
  {__pyx_k_ReceiveStatusOnClientOperation_d, sizeof(__pyx_k_ReceiveStatusOnClientOperation_d), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_d */
  {__pyx_k_ReceiveStatusOnClientOperation_e, sizeof(__pyx_k_ReceiveStatusOnClientOperation_e), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_e */
  {__pyx_k_ReceiveStatusOnClientOperation_t, sizeof(__pyx_k_ReceiveStatusOnClientOperation_t), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_t */
  {__pyx_k_ReceiveStatusOnClientOperation_t_2, sizeof(__pyx_k_ReceiveStatusOnClientOperation_t_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ReceiveStatusOnClientOperation_t_2 */
  {__pyx_k_RegisteredMethod, sizeof(__pyx_k_RegisteredMethod), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RegisteredMethod */
  {__pyx_k_RegisteredMethod___reduce_cython, sizeof(__pyx_k_RegisteredMethod___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RegisteredMethod___reduce_cython */
  {__pyx_k_RegisteredMethod___setstate_cyth, sizeof(__pyx_k_RegisteredMethod___setstate_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RegisteredMethod___setstate_cyth */
  {__pyx_k_RequestCallError, sizeof(__pyx_k_RequestCallError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallError */
  {__pyx_k_RequestCallEvent, sizeof(__pyx_k_RequestCallEvent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallEvent */
  {__pyx_k_RequestCallEvent___reduce_cython, sizeof(__pyx_k_RequestCallEvent___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallEvent___reduce_cython */
  {__pyx_k_RequestCallEvent___setstate_cyth, sizeof(__pyx_k_RequestCallEvent___setstate_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallEvent___setstate_cyth */
  {__pyx_k_RequestCallTag, sizeof(__pyx_k_RequestCallTag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallTag */
  {__pyx_k_RequestCallTag___reduce_cython, sizeof(__pyx_k_RequestCallTag___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallTag___reduce_cython */
  {__pyx_k_RequestCallTag___setstate_cytho, sizeof(__pyx_k_RequestCallTag___setstate_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RequestCallTag___setstate_cytho */
  {__pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_RuntimeError */
  {__pyx_k_SERVICES_TO_EXCLUDE, sizeof(__pyx_k_SERVICES_TO_EXCLUDE), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SERVICES_TO_EXCLUDE */
  {__pyx_k_SSLChannelCredentials, sizeof(__pyx_k_SSLChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLChannelCredentials */
  {__pyx_k_SSLChannelCredentials___reduce_c, sizeof(__pyx_k_SSLChannelCredentials___reduce_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLChannelCredentials___reduce_c */
  {__pyx_k_SSLChannelCredentials___setstate, sizeof(__pyx_k_SSLChannelCredentials___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLChannelCredentials___setstate */
  {__pyx_k_SSLSessionCacheLRU, sizeof(__pyx_k_SSLSessionCacheLRU), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLSessionCacheLRU */
  {__pyx_k_SSLSessionCacheLRU___reduce_cyth, sizeof(__pyx_k_SSLSessionCacheLRU___reduce_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLSessionCacheLRU___reduce_cyth */
  {__pyx_k_SSLSessionCacheLRU___setstate_cy, sizeof(__pyx_k_SSLSessionCacheLRU___setstate_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SSLSessionCacheLRU___setstate_cy */
  {__pyx_k_SegregatedCall, sizeof(__pyx_k_SegregatedCall), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall */
  {__pyx_k_SegregatedCall___reduce_cython, sizeof(__pyx_k_SegregatedCall___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall___reduce_cython */
  {__pyx_k_SegregatedCall___setstate_cython, sizeof(__pyx_k_SegregatedCall___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall___setstate_cython */
  {__pyx_k_SegregatedCall_cancel, sizeof(__pyx_k_SegregatedCall_cancel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall_cancel */
  {__pyx_k_SegregatedCall_next_event, sizeof(__pyx_k_SegregatedCall_next_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall_next_event */
  {__pyx_k_SegregatedCall_operate, sizeof(__pyx_k_SegregatedCall_operate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SegregatedCall_operate */
  {__pyx_k_SendCloseFromClientOperation, sizeof(__pyx_k_SendCloseFromClientOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendCloseFromClientOperation */
  {__pyx_k_SendCloseFromClientOperation___r, sizeof(__pyx_k_SendCloseFromClientOperation___r), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendCloseFromClientOperation___r */
  {__pyx_k_SendCloseFromClientOperation___s, sizeof(__pyx_k_SendCloseFromClientOperation___s), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendCloseFromClientOperation___s */
  {__pyx_k_SendCloseFromClientOperation_typ, sizeof(__pyx_k_SendCloseFromClientOperation_typ), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendCloseFromClientOperation_typ */
  {__pyx_k_SendInitialMetadataOperation, sizeof(__pyx_k_SendInitialMetadataOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendInitialMetadataOperation */
  {__pyx_k_SendInitialMetadataOperation___r, sizeof(__pyx_k_SendInitialMetadataOperation___r), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendInitialMetadataOperation___r */
  {__pyx_k_SendInitialMetadataOperation___s, sizeof(__pyx_k_SendInitialMetadataOperation___s), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendInitialMetadataOperation___s */
  {__pyx_k_SendInitialMetadataOperation_typ, sizeof(__pyx_k_SendInitialMetadataOperation_typ), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendInitialMetadataOperation_typ */
  {__pyx_k_SendMessageOperation, sizeof(__pyx_k_SendMessageOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendMessageOperation */
  {__pyx_k_SendMessageOperation___reduce_cy, sizeof(__pyx_k_SendMessageOperation___reduce_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendMessageOperation___reduce_cy */
  {__pyx_k_SendMessageOperation___setstate, sizeof(__pyx_k_SendMessageOperation___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendMessageOperation___setstate */
  {__pyx_k_SendMessageOperation_type, sizeof(__pyx_k_SendMessageOperation_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendMessageOperation_type */
  {__pyx_k_SendStatusFromServerOperation, sizeof(__pyx_k_SendStatusFromServerOperation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendStatusFromServerOperation */
  {__pyx_k_SendStatusFromServerOperation_2, sizeof(__pyx_k_SendStatusFromServerOperation_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendStatusFromServerOperation_2 */
  {__pyx_k_SendStatusFromServerOperation_3, sizeof(__pyx_k_SendStatusFromServerOperation_3), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendStatusFromServerOperation_3 */
  {__pyx_k_SendStatusFromServerOperation_ty, sizeof(__pyx_k_SendStatusFromServerOperation_ty), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SendStatusFromServerOperation_ty */
  {__pyx_k_Send_initial_metadata_failed_alr, sizeof(__pyx_k_Send_initial_metadata_failed_alr), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Send_initial_metadata_failed_alr */
  {__pyx_k_Server, sizeof(__pyx_k_Server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server */
  {__pyx_k_ServerCertificateConfig, sizeof(__pyx_k_ServerCertificateConfig), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCertificateConfig */
  {__pyx_k_ServerCertificateConfig___reduce, sizeof(__pyx_k_ServerCertificateConfig___reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCertificateConfig___reduce */
  {__pyx_k_ServerCertificateConfig___setsta, sizeof(__pyx_k_ServerCertificateConfig___setsta), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCertificateConfig___setsta */
  {__pyx_k_ServerCertificateConfiguration, sizeof(__pyx_k_ServerCertificateConfiguration), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCertificateConfiguration */
  {__pyx_k_ServerCredentials, sizeof(__pyx_k_ServerCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCredentials */
  {__pyx_k_ServerCredentials___reduce_cytho, sizeof(__pyx_k_ServerCredentials___reduce_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCredentials___reduce_cytho */
  {__pyx_k_ServerCredentials___setstate_cyt, sizeof(__pyx_k_ServerCredentials___setstate_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerCredentials___setstate_cyt */
  {__pyx_k_ServerShutdownEvent, sizeof(__pyx_k_ServerShutdownEvent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownEvent */
  {__pyx_k_ServerShutdownEvent___reduce_cyt, sizeof(__pyx_k_ServerShutdownEvent___reduce_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownEvent___reduce_cyt */
  {__pyx_k_ServerShutdownEvent___setstate_c, sizeof(__pyx_k_ServerShutdownEvent___setstate_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownEvent___setstate_c */
  {__pyx_k_ServerShutdownTag, sizeof(__pyx_k_ServerShutdownTag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownTag */
  {__pyx_k_ServerShutdownTag___reduce_cyth, sizeof(__pyx_k_ServerShutdownTag___reduce_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownTag___reduce_cyth */
  {__pyx_k_ServerShutdownTag___setstate_cy, sizeof(__pyx_k_ServerShutdownTag___setstate_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerShutdownTag___setstate_cy */
  {__pyx_k_ServerStoppedError, sizeof(__pyx_k_ServerStoppedError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServerStoppedError */
  {__pyx_k_Server___reduce_cython, sizeof(__pyx_k_Server___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server___reduce_cython */
  {__pyx_k_Server___setstate_cython, sizeof(__pyx_k_Server___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server___setstate_cython */
  {__pyx_k_Server_add_http2_port, sizeof(__pyx_k_Server_add_http2_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_add_http2_port */
  {__pyx_k_Server_already_stopped, sizeof(__pyx_k_Server_already_stopped), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Server_already_stopped */
  {__pyx_k_Server_cancel_all_calls, sizeof(__pyx_k_Server_cancel_all_calls), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_cancel_all_calls */
  {__pyx_k_Server_destroy, sizeof(__pyx_k_Server_destroy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_destroy */
  {__pyx_k_Server_not_in_ready_state, sizeof(__pyx_k_Server_not_in_ready_state), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Server_not_in_ready_state */
  {__pyx_k_Server_register_completion_queue, sizeof(__pyx_k_Server_register_completion_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_register_completion_queue */
  {__pyx_k_Server_register_method, sizeof(__pyx_k_Server_register_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_register_method */
  {__pyx_k_Server_request_call, sizeof(__pyx_k_Server_request_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_request_call */
  {__pyx_k_Server_request_registered_call, sizeof(__pyx_k_Server_request_registered_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_request_registered_call */
  {__pyx_k_Server_shutdown, sizeof(__pyx_k_Server_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_shutdown */
  {__pyx_k_Server_shutdown_failed_no_comple, sizeof(__pyx_k_Server_shutdown_failed_no_comple), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Server_shutdown_failed_no_comple */
  {__pyx_k_Server_start, sizeof(__pyx_k_Server_start), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Server_start */
  {__pyx_k_ServicerContext, sizeof(__pyx_k_ServicerContext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext */
  {__pyx_k_ServicerContext___reduce_cython, sizeof(__pyx_k_ServicerContext___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext___reduce_cython */
  {__pyx_k_ServicerContext___setstate_cyth, sizeof(__pyx_k_ServicerContext___setstate_cyth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext___setstate_cyth */
  {__pyx_k_ServicerContext_abort, sizeof(__pyx_k_ServicerContext_abort), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_abort */
  {__pyx_k_ServicerContext_abort_with_stat, sizeof(__pyx_k_ServicerContext_abort_with_stat), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_abort_with_stat */
  {__pyx_k_ServicerContext_add_done_callba, sizeof(__pyx_k_ServicerContext_add_done_callba), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_add_done_callba */
  {__pyx_k_ServicerContext_auth_context, sizeof(__pyx_k_ServicerContext_auth_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_auth_context */
  {__pyx_k_ServicerContext_cancelled, sizeof(__pyx_k_ServicerContext_cancelled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_cancelled */
  {__pyx_k_ServicerContext_code, sizeof(__pyx_k_ServicerContext_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_code */
  {__pyx_k_ServicerContext_details, sizeof(__pyx_k_ServicerContext_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_details */
  {__pyx_k_ServicerContext_disable_next_me, sizeof(__pyx_k_ServicerContext_disable_next_me), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_disable_next_me */
  {__pyx_k_ServicerContext_done, sizeof(__pyx_k_ServicerContext_done), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_done */
  {__pyx_k_ServicerContext_invocation_meta, sizeof(__pyx_k_ServicerContext_invocation_meta), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_invocation_meta */
  {__pyx_k_ServicerContext_peer, sizeof(__pyx_k_ServicerContext_peer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_peer */
  {__pyx_k_ServicerContext_peer_identities, sizeof(__pyx_k_ServicerContext_peer_identities), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_peer_identities */
  {__pyx_k_ServicerContext_peer_identity_k, sizeof(__pyx_k_ServicerContext_peer_identity_k), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_peer_identity_k */
  {__pyx_k_ServicerContext_read, sizeof(__pyx_k_ServicerContext_read), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_read */
  {__pyx_k_ServicerContext_send_initial_me, sizeof(__pyx_k_ServicerContext_send_initial_me), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_send_initial_me */
  {__pyx_k_ServicerContext_set_code, sizeof(__pyx_k_ServicerContext_set_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_set_code */
  {__pyx_k_ServicerContext_set_compression, sizeof(__pyx_k_ServicerContext_set_compression), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_set_compression */
  {__pyx_k_ServicerContext_set_details, sizeof(__pyx_k_ServicerContext_set_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_set_details */
  {__pyx_k_ServicerContext_set_trailing_me, sizeof(__pyx_k_ServicerContext_set_trailing_me), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_set_trailing_me */
  {__pyx_k_ServicerContext_time_remaining, sizeof(__pyx_k_ServicerContext_time_remaining), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_time_remaining */
  {__pyx_k_ServicerContext_trailing_metada, sizeof(__pyx_k_ServicerContext_trailing_metada), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_trailing_metada */
  {__pyx_k_ServicerContext_write, sizeof(__pyx_k_ServicerContext_write), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ServicerContext_write */
  {__pyx_k_SslPemKeyCertPair, sizeof(__pyx_k_SslPemKeyCertPair), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SslPemKeyCertPair */
  {__pyx_k_SslPemKeyCertPair___reduce_cytho, sizeof(__pyx_k_SslPemKeyCertPair___reduce_cytho), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SslPemKeyCertPair___reduce_cytho */
  {__pyx_k_SslPemKeyCertPair___setstate_cyt, sizeof(__pyx_k_SslPemKeyCertPair___setstate_cyt), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SslPemKeyCertPair___setstate_cyt */
  {__pyx_k_StatusCode, sizeof(__pyx_k_StatusCode), 0, 1, 1}, /* PyObject cname: __pyx_n_u_StatusCode */
  {__pyx_k_StopAsyncIteration, sizeof(__pyx_k_StopAsyncIteration), 0, 1, 1}, /* PyObject cname: __pyx_n_u_StopAsyncIteration */
  {__pyx_k_SyncServicerContext, sizeof(__pyx_k_SyncServicerContext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext */
  {__pyx_k_SyncServicerContext___reduce_cy, sizeof(__pyx_k_SyncServicerContext___reduce_cy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext___reduce_cy */
  {__pyx_k_SyncServicerContext___setstate, sizeof(__pyx_k_SyncServicerContext___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext___setstate */
  {__pyx_k_SyncServicerContext_abort, sizeof(__pyx_k_SyncServicerContext_abort), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_abort */
  {__pyx_k_SyncServicerContext_add_callbac, sizeof(__pyx_k_SyncServicerContext_add_callbac), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_add_callbac */
  {__pyx_k_SyncServicerContext_auth_contex, sizeof(__pyx_k_SyncServicerContext_auth_contex), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_auth_contex */
  {__pyx_k_SyncServicerContext_disable_nex, sizeof(__pyx_k_SyncServicerContext_disable_nex), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_disable_nex */
  {__pyx_k_SyncServicerContext_invocation, sizeof(__pyx_k_SyncServicerContext_invocation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_invocation */
  {__pyx_k_SyncServicerContext_peer, sizeof(__pyx_k_SyncServicerContext_peer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_peer */
  {__pyx_k_SyncServicerContext_peer_identi, sizeof(__pyx_k_SyncServicerContext_peer_identi), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_peer_identi */
  {__pyx_k_SyncServicerContext_peer_identi_2, sizeof(__pyx_k_SyncServicerContext_peer_identi_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_peer_identi_2 */
  {__pyx_k_SyncServicerContext_send_initia, sizeof(__pyx_k_SyncServicerContext_send_initia), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_send_initia */
  {__pyx_k_SyncServicerContext_set_code, sizeof(__pyx_k_SyncServicerContext_set_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_set_code */
  {__pyx_k_SyncServicerContext_set_compres, sizeof(__pyx_k_SyncServicerContext_set_compres), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_set_compres */
  {__pyx_k_SyncServicerContext_set_details, sizeof(__pyx_k_SyncServicerContext_set_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_set_details */
  {__pyx_k_SyncServicerContext_set_trailin, sizeof(__pyx_k_SyncServicerContext_set_trailin), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_set_trailin */
  {__pyx_k_SyncServicerContext_time_remain, sizeof(__pyx_k_SyncServicerContext_time_remain), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SyncServicerContext_time_remain */
  {__pyx_k_SystemExit, sizeof(__pyx_k_SystemExit), 0, 1, 1}, /* PyObject cname: __pyx_n_u_SystemExit */
  {__pyx_k_TRUE, sizeof(__pyx_k_TRUE), 0, 1, 1}, /* PyObject cname: __pyx_n_u_TRUE */
  {__pyx_k_TRUE_VALUES, sizeof(__pyx_k_TRUE_VALUES), 0, 1, 1}, /* PyObject cname: __pyx_n_u_TRUE_VALUES */
  {__pyx_k_TYPE_METADATA_STRING, sizeof(__pyx_k_TYPE_METADATA_STRING), 0, 1, 1}, /* PyObject cname: __pyx_n_u_TYPE_METADATA_STRING */
  {__pyx_k_Tag, sizeof(__pyx_k_Tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Tag */
  {__pyx_k_Tag___reduce_cython, sizeof(__pyx_k_Tag___reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Tag___reduce_cython */
  {__pyx_k_Tag___setstate_cython, sizeof(__pyx_k_Tag___setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Tag___setstate_cython */
  {__pyx_k_The_base_class_for_exceptions_ge, sizeof(__pyx_k_The_base_class_for_exceptions_ge), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_The_base_class_for_exceptions_ge */
  {__pyx_k_Thread, sizeof(__pyx_k_Thread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Thread */
  {__pyx_k_Timed_out, sizeof(__pyx_k_Timed_out), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Timed_out */
  {__pyx_k_Timed_out_waiting_for_C_core_cle, sizeof(__pyx_k_Timed_out_waiting_for_C_core_cle), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Timed_out_waiting_for_C_core_cle */
  {__pyx_k_TimeoutError, sizeof(__pyx_k_TimeoutError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_TimeoutError */
  {__pyx_k_True, sizeof(__pyx_k_True), 0, 1, 1}, /* PyObject cname: __pyx_n_u_True */
  {__pyx_k_Tuple_Tuple_str_Union_str_bytes, sizeof(__pyx_k_Tuple_Tuple_str_Union_str_bytes), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Tuple_Tuple_str_Union_str_bytes */
  {__pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_TypeError */
  {__pyx_k_UNKNOWN_CANCELLATION_DETAILS, sizeof(__pyx_k_UNKNOWN_CANCELLATION_DETAILS), 0, 1, 1}, /* PyObject cname: __pyx_n_u_UNKNOWN_CANCELLATION_DETAILS */
  {__pyx_k_Unexpected, sizeof(__pyx_k_Unexpected), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Unexpected */
  {__pyx_k_Unexpected_2, sizeof(__pyx_k_Unexpected_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Unexpected_2 */
  {__pyx_k_UnicodeDecodeError, sizeof(__pyx_k_UnicodeDecodeError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_UnicodeDecodeError */
  {__pyx_k_Unknown, sizeof(__pyx_k_Unknown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Unknown */
  {__pyx_k_Unsupported_engine_type_s, sizeof(__pyx_k_Unsupported_engine_type_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Unsupported_engine_type_s */
  {__pyx_k_UsageError, sizeof(__pyx_k_UsageError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_UsageError */
  {__pyx_k_Using_s_as_I_O_engine, sizeof(__pyx_k_Using_s_as_I_O_engine), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_Using_s_as_I_O_engine */
  {__pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ValueError */
  {__pyx_k_WatchConnectivityFailed, sizeof(__pyx_k_WatchConnectivityFailed), 0, 1, 1}, /* PyObject cname: __pyx_n_u_WatchConnectivityFailed */
  {__pyx_k_WriteFlag, sizeof(__pyx_k_WriteFlag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_WriteFlag */
  {__pyx_k_XDSChannelCredentials, sizeof(__pyx_k_XDSChannelCredentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_XDSChannelCredentials */
  {__pyx_k_XDSChannelCredentials___reduce_c, sizeof(__pyx_k_XDSChannelCredentials___reduce_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_XDSChannelCredentials___reduce_c */
  {__pyx_k_XDSChannelCredentials___setstate, sizeof(__pyx_k_XDSChannelCredentials___setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_XDSChannelCredentials___setstate */
  {__pyx_k_YES, sizeof(__pyx_k_YES), 0, 1, 1}, /* PyObject cname: __pyx_n_u_YES */
  {__pyx_k_Yes, sizeof(__pyx_k_Yes), 0, 1, 1}, /* PyObject cname: __pyx_n_u_Yes */
  {__pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__12 */
  {__pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__13 */
  {__pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__3 */
  {__pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__4 */
  {__pyx_k__5, sizeof(__pyx_k__5), 0, 1, 1}, /* PyObject cname: __pyx_n_u__5 */
  {__pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__6 */
  {__pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__7 */
  {__pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__8 */
  {__pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0}, /* PyObject cname: __pyx_kp_u__9 */
  {__pyx_k_abort, sizeof(__pyx_k_abort), 0, 1, 1}, /* PyObject cname: __pyx_n_u_abort */
  {__pyx_k_abort_with_status, sizeof(__pyx_k_abort_with_status), 0, 1, 1}, /* PyObject cname: __pyx_n_u_abort_with_status */
  {__pyx_k_aborted, sizeof(__pyx_k_aborted), 0, 1, 1}, /* PyObject cname: __pyx_n_u_aborted */
  {__pyx_k_active_thread_count, sizeof(__pyx_k_active_thread_count), 0, 1, 1}, /* PyObject cname: __pyx_n_u_active_thread_count */
  {__pyx_k_actual_code, sizeof(__pyx_k_actual_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_actual_code */
  {__pyx_k_add, sizeof(__pyx_k_add), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add */
  {__pyx_k_add_callback, sizeof(__pyx_k_add_callback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_callback */
  {__pyx_k_add_callback_handler_locals_han, sizeof(__pyx_k_add_callback_handler_locals_han), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_callback_handler_locals_han */
  {__pyx_k_add_done_callback, sizeof(__pyx_k_add_done_callback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_done_callback */
  {__pyx_k_add_generic_rpc_handlers, sizeof(__pyx_k_add_generic_rpc_handlers), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_generic_rpc_handlers */
  {__pyx_k_add_http2_port, sizeof(__pyx_k_add_http2_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_http2_port */
  {__pyx_k_add_insecure_port, sizeof(__pyx_k_add_insecure_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_insecure_port */
  {__pyx_k_add_note, sizeof(__pyx_k_add_note), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_add_note */
  {__pyx_k_add_reader, sizeof(__pyx_k_add_reader), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_reader */
  {__pyx_k_add_secure_port, sizeof(__pyx_k_add_secure_port), 0, 1, 1}, /* PyObject cname: __pyx_n_u_add_secure_port */
  {__pyx_k_address, sizeof(__pyx_k_address), 0, 1, 1}, /* PyObject cname: __pyx_n_u_address */
  {__pyx_k_address_c_string, sizeof(__pyx_k_address_c_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_address_c_string */
  {__pyx_k_aenter, sizeof(__pyx_k_aenter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_aenter */
  {__pyx_k_aexit, sizeof(__pyx_k_aexit), 0, 1, 1}, /* PyObject cname: __pyx_n_u_aexit */
  {__pyx_k_after_in_child, sizeof(__pyx_k_after_in_child), 0, 1, 1}, /* PyObject cname: __pyx_n_u_after_in_child */
  {__pyx_k_after_in_parent, sizeof(__pyx_k_after_in_parent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_after_in_parent */
  {__pyx_k_agen, sizeof(__pyx_k_agen), 0, 1, 1}, /* PyObject cname: __pyx_n_u_agen */
  {__pyx_k_aiter, sizeof(__pyx_k_aiter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_aiter */
  {__pyx_k_algorithm, sizeof(__pyx_k_algorithm), 0, 1, 1}, /* PyObject cname: __pyx_n_u_algorithm */
  {__pyx_k_already_accepted, sizeof(__pyx_k_already_accepted), 0, 1, 1}, /* PyObject cname: __pyx_n_u_already_accepted */
  {__pyx_k_already_exists, sizeof(__pyx_k_already_exists), 0, 1, 1}, /* PyObject cname: __pyx_n_u_already_exists */
  {__pyx_k_already_finished, sizeof(__pyx_k_already_finished), 0, 1, 1}, /* PyObject cname: __pyx_n_u_already_finished */
  {__pyx_k_already_invoked, sizeof(__pyx_k_already_invoked), 0, 1, 1}, /* PyObject cname: __pyx_n_u_already_invoked */
  {__pyx_k_and_max_results, sizeof(__pyx_k_and_max_results), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_and_max_results */
  {__pyx_k_and_start_socket_id, sizeof(__pyx_k_and_start_socket_id), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_and_start_socket_id */
  {__pyx_k_anext, sizeof(__pyx_k_anext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_anext */
  {__pyx_k_append, sizeof(__pyx_k_append), 0, 1, 1}, /* PyObject cname: __pyx_n_u_append */
  {__pyx_k_apply, sizeof(__pyx_k_apply), 0, 1, 1}, /* PyObject cname: __pyx_n_u_apply */
  {__pyx_k_args, sizeof(__pyx_k_args), 0, 1, 1}, /* PyObject cname: __pyx_n_u_args */
  {__pyx_k_arguments, sizeof(__pyx_k_arguments), 0, 1, 1}, /* PyObject cname: __pyx_n_u_arguments */
  {__pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ascii */
  {__pyx_k_async_callback_func, sizeof(__pyx_k_async_callback_func), 0, 1, 1}, /* PyObject cname: __pyx_n_u_async_callback_func */
  {__pyx_k_async_generator_to_generator, sizeof(__pyx_k_async_generator_to_generator), 0, 1, 1}, /* PyObject cname: __pyx_n_u_async_generator_to_generator */
  {__pyx_k_async_message_receiver, sizeof(__pyx_k_async_message_receiver), 0, 1, 1}, /* PyObject cname: __pyx_n_u_async_message_receiver */
  {__pyx_k_async_response_generator, sizeof(__pyx_k_async_response_generator), 0, 1, 1}, /* PyObject cname: __pyx_n_u_async_response_generator */
  {__pyx_k_asyncio, sizeof(__pyx_k_asyncio), 0, 1, 1}, /* PyObject cname: __pyx_n_u_asyncio */
  {__pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 1, 1}, /* PyObject cname: __pyx_n_u_asyncio_coroutines */
  {__pyx_k_atexit, sizeof(__pyx_k_atexit), 0, 1, 1}, /* PyObject cname: __pyx_n_u_atexit */
  {__pyx_k_auth_context, sizeof(__pyx_k_auth_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_auth_context */
  {__pyx_k_await, sizeof(__pyx_k_await), 0, 1, 1}, /* PyObject cname: __pyx_n_u_await */
  {__pyx_k_await_zero_threads, sizeof(__pyx_k_await_zero_threads), 0, 1, 1}, /* PyObject cname: __pyx_n_u_await_zero_threads */
  {__pyx_k_backup_queue, sizeof(__pyx_k_backup_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_backup_queue */
  {__pyx_k_batch_error, sizeof(__pyx_k_batch_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_batch_error */
  {__pyx_k_batch_operation_tag, sizeof(__pyx_k_batch_operation_tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_batch_operation_tag */
  {__pyx_k_batch_operations, sizeof(__pyx_k_batch_operations), 0, 1, 1}, /* PyObject cname: __pyx_n_u_batch_operations */
  {__pyx_k_before, sizeof(__pyx_k_before), 0, 1, 1}, /* PyObject cname: __pyx_n_u_before */
  {__pyx_k_bin, sizeof(__pyx_k_bin), 0, 0, 0}, /* PyObject cname: __pyx_kp_b_bin */
  {__pyx_k_bind_loop, sizeof(__pyx_k_bind_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_bind_loop */
  {__pyx_k_block_if_fork_in_progress, sizeof(__pyx_k_block_if_fork_in_progress), 0, 1, 1}, /* PyObject cname: __pyx_n_u_block_if_fork_in_progress */
  {__pyx_k_bool, sizeof(__pyx_k_bool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_bool */
  {__pyx_k_buffer_hint, sizeof(__pyx_k_buffer_hint), 0, 1, 1}, /* PyObject cname: __pyx_n_u_buffer_hint */
  {__pyx_k_build_census_context, sizeof(__pyx_k_build_census_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_build_census_context */
  {__pyx_k_bytes_ctx, sizeof(__pyx_k_bytes_ctx), 0, 1, 1}, /* PyObject cname: __pyx_n_u_bytes_ctx */
  {__pyx_k_c_call_credentials, sizeof(__pyx_k_c_call_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_call_credentials */
  {__pyx_k_c_call_error, sizeof(__pyx_k_c_call_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_call_error */
  {__pyx_k_c_cert_config, sizeof(__pyx_k_c_cert_config), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_cert_config */
  {__pyx_k_c_deadline, sizeof(__pyx_k_c_deadline), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_deadline */
  {__pyx_k_c_details, sizeof(__pyx_k_c_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_details */
  {__pyx_k_c_error_details, sizeof(__pyx_k_c_error_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_error_details */
  {__pyx_k_c_event, sizeof(__pyx_k_c_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_event */
  {__pyx_k_c_key, sizeof(__pyx_k_c_key), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_key */
  {__pyx_k_c_options, sizeof(__pyx_k_c_options), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_options */
  {__pyx_k_c_peer, sizeof(__pyx_k_c_peer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_peer */
  {__pyx_k_c_pem_root_certs, sizeof(__pyx_k_c_pem_root_certs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_pem_root_certs */
  {__pyx_k_c_returned_str, sizeof(__pyx_k_c_returned_str), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_returned_str */
  {__pyx_k_c_target, sizeof(__pyx_k_c_target), 0, 1, 1}, /* PyObject cname: __pyx_n_u_c_target */
  {__pyx_k_call, sizeof(__pyx_k_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call */
  {__pyx_k_call_credentials, sizeof(__pyx_k_call_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_credentials */
  {__pyx_k_call_credentialses, sizeof(__pyx_k_call_credentialses), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_credentialses */
  {__pyx_k_call_creds, sizeof(__pyx_k_call_creds), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_creds */
  {__pyx_k_call_details, sizeof(__pyx_k_call_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_details */
  {__pyx_k_call_error, sizeof(__pyx_k_call_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_error */
  {__pyx_k_call_handle, sizeof(__pyx_k_call_handle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_handle */
  {__pyx_k_call_queue, sizeof(__pyx_k_call_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_queue */
  {__pyx_k_call_soon_threadsafe, sizeof(__pyx_k_call_soon_threadsafe), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_soon_threadsafe */
  {__pyx_k_call_state, sizeof(__pyx_k_call_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_call_state */
  {__pyx_k_callback, sizeof(__pyx_k_callback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_callback */
  {__pyx_k_callback_func, sizeof(__pyx_k_callback_func), 0, 1, 1}, /* PyObject cname: __pyx_n_u_callback_func */
  {__pyx_k_callback_wrapper, sizeof(__pyx_k_callback_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_callback_wrapper */
  {__pyx_k_cancel, sizeof(__pyx_k_cancel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cancel */
  {__pyx_k_cancel_all_calls, sizeof(__pyx_k_cancel_all_calls), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cancel_all_calls */
  {__pyx_k_cancelled, sizeof(__pyx_k_cancelled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cancelled */
  {__pyx_k_cannot_register_completion_queue, sizeof(__pyx_k_cannot_register_completion_queue), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_cannot_register_completion_queue */
  {__pyx_k_capacity, sizeof(__pyx_k_capacity), 0, 1, 1}, /* PyObject cname: __pyx_n_u_capacity */
  {__pyx_k_capsule, sizeof(__pyx_k_capsule), 0, 1, 1}, /* PyObject cname: __pyx_n_u_capsule */
  {__pyx_k_capsule_ptr, sizeof(__pyx_k_capsule_ptr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_capsule_ptr */
  {__pyx_k_catch_warnings, sizeof(__pyx_k_catch_warnings), 0, 1, 1}, /* PyObject cname: __pyx_n_u_catch_warnings */
  {__pyx_k_cb, sizeof(__pyx_k_cb), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cb */
  {__pyx_k_cb_func, sizeof(__pyx_k_cb_func), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cb_func */
  {__pyx_k_census_ctx, sizeof(__pyx_k_census_ctx), 0, 1, 1}, /* PyObject cname: __pyx_n_u_census_ctx */
  {__pyx_k_cert_config, sizeof(__pyx_k_cert_config), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cert_config */
  {__pyx_k_cert_config_fetcher, sizeof(__pyx_k_cert_config_fetcher), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cert_config_fetcher */
  {__pyx_k_cert_config_fetcher_must_be_call, sizeof(__pyx_k_cert_config_fetcher_must_be_call), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_cert_config_fetcher_must_be_call */
  {__pyx_k_certificate_chain, sizeof(__pyx_k_certificate_chain), 0, 1, 1}, /* PyObject cname: __pyx_n_u_certificate_chain */
  {__pyx_k_certificate_configuration, sizeof(__pyx_k_certificate_configuration), 0, 1, 1}, /* PyObject cname: __pyx_n_u_certificate_configuration */
  {__pyx_k_cfunc_to_py, sizeof(__pyx_k_cfunc_to_py), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cfunc_to_py */
  {__pyx_k_channel, sizeof(__pyx_k_channel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel */
  {__pyx_k_channel_credentials, sizeof(__pyx_k_channel_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_credentials */
  {__pyx_k_channel_credentials_alts, sizeof(__pyx_k_channel_credentials_alts), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_credentials_alts */
  {__pyx_k_channel_credentials_compute_engi, sizeof(__pyx_k_channel_credentials_compute_engi), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_credentials_compute_engi */
  {__pyx_k_channel_credentials_insecure, sizeof(__pyx_k_channel_credentials_insecure), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_credentials_insecure */
  {__pyx_k_channel_credentials_local, sizeof(__pyx_k_channel_credentials_local), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_credentials_local */
  {__pyx_k_channel_id, sizeof(__pyx_k_channel_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_id */
  {__pyx_k_channel_state, sizeof(__pyx_k_channel_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channel_state */
  {__pyx_k_channels, sizeof(__pyx_k_channels), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channels */
  {__pyx_k_channelz_get_channel, sizeof(__pyx_k_channelz_get_channel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_channel */
  {__pyx_k_channelz_get_server, sizeof(__pyx_k_channelz_get_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_server */
  {__pyx_k_channelz_get_server_sockets, sizeof(__pyx_k_channelz_get_server_sockets), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_server_sockets */
  {__pyx_k_channelz_get_servers, sizeof(__pyx_k_channelz_get_servers), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_servers */
  {__pyx_k_channelz_get_socket, sizeof(__pyx_k_channelz_get_socket), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_socket */
  {__pyx_k_channelz_get_subchannel, sizeof(__pyx_k_channelz_get_subchannel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_subchannel */
  {__pyx_k_channelz_get_top_channels, sizeof(__pyx_k_channelz_get_top_channels), 0, 1, 1}, /* PyObject cname: __pyx_n_u_channelz_get_top_channels */
  {__pyx_k_check_before_request_call, sizeof(__pyx_k_check_before_request_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_check_before_request_call */
  {__pyx_k_check_connectivity_state, sizeof(__pyx_k_check_connectivity_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_check_connectivity_state */
  {__pyx_k_class, sizeof(__pyx_k_class), 0, 1, 1}, /* PyObject cname: __pyx_n_u_class */
  {__pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 1, 1}, /* PyObject cname: __pyx_n_u_class_getitem */
  {__pyx_k_clear, sizeof(__pyx_k_clear), 0, 1, 1}, /* PyObject cname: __pyx_n_u_clear */
  {__pyx_k_clear_server_call_tracer_factory, sizeof(__pyx_k_clear_server_call_tracer_factory), 0, 1, 1}, /* PyObject cname: __pyx_n_u_clear_server_call_tracer_factory */
  {__pyx_k_client_config_in_slice, sizeof(__pyx_k_client_config_in_slice), 0, 1, 1}, /* PyObject cname: __pyx_n_u_client_config_in_slice */
  {__pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cline_in_traceback */
  {__pyx_k_close, sizeof(__pyx_k_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_close */
  {__pyx_k_close_on_fork, sizeof(__pyx_k_close_on_fork), 0, 1, 1}, /* PyObject cname: __pyx_n_u_close_on_fork */
  {__pyx_k_close_on_fork_2, sizeof(__pyx_k_close_on_fork_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_close_on_fork_2 */
  {__pyx_k_closed, sizeof(__pyx_k_closed), 0, 1, 1}, /* PyObject cname: __pyx_n_u_closed */
  {__pyx_k_closing, sizeof(__pyx_k_closing), 0, 1, 1}, /* PyObject cname: __pyx_n_u_closing */
  {__pyx_k_code, sizeof(__pyx_k_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_code */
  {__pyx_k_codecs, sizeof(__pyx_k_codecs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_codecs */
  {__pyx_k_collections, sizeof(__pyx_k_collections), 0, 1, 1}, /* PyObject cname: __pyx_n_u_collections */
  {__pyx_k_common, sizeof(__pyx_k_common), 0, 1, 1}, /* PyObject cname: __pyx_n_u_common */
  {__pyx_k_completion_type, sizeof(__pyx_k_completion_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_completion_type */
  {__pyx_k_compression, sizeof(__pyx_k_compression), 0, 1, 1}, /* PyObject cname: __pyx_n_u_compression */
  {__pyx_k_compression_algorithm_name, sizeof(__pyx_k_compression_algorithm_name), 0, 1, 1}, /* PyObject cname: __pyx_n_u_compression_algorithm_name */
  {__pyx_k_concurrency_exceeded, sizeof(__pyx_k_concurrency_exceeded), 0, 1, 1}, /* PyObject cname: __pyx_n_u_concurrency_exceeded */
  {__pyx_k_condition, sizeof(__pyx_k_condition), 0, 1, 1}, /* PyObject cname: __pyx_n_u_condition */
  {__pyx_k_connecting, sizeof(__pyx_k_connecting), 0, 1, 1}, /* PyObject cname: __pyx_n_u_connecting */
  {__pyx_k_context, sizeof(__pyx_k_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_context */
  {__pyx_k_context_loop, sizeof(__pyx_k_context_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_context_loop */
  {__pyx_k_contextvars, sizeof(__pyx_k_contextvars), 0, 1, 1}, /* PyObject cname: __pyx_n_u_contextvars */
  {__pyx_k_contextvars_supported, sizeof(__pyx_k_contextvars_supported), 0, 1, 1}, /* PyObject cname: __pyx_n_u_contextvars_supported */
  {__pyx_k_continuation, sizeof(__pyx_k_continuation), 0, 1, 1}, /* PyObject cname: __pyx_n_u_continuation */
  {__pyx_k_copy, sizeof(__pyx_k_copy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_copy */
  {__pyx_k_copy_context, sizeof(__pyx_k_copy_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_copy_context */
  {__pyx_k_core_function_name, sizeof(__pyx_k_core_function_name), 0, 1, 1}, /* PyObject cname: __pyx_n_u_core_function_name */
  {__pyx_k_coro, sizeof(__pyx_k_coro), 0, 1, 1}, /* PyObject cname: __pyx_n_u_coro */
  {__pyx_k_create_client_call_tracer, sizeof(__pyx_k_create_client_call_tracer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_create_client_call_tracer */
  {__pyx_k_create_future, sizeof(__pyx_k_create_future), 0, 1, 1}, /* PyObject cname: __pyx_n_u_create_future */
  {__pyx_k_create_server_call_tracer_factor, sizeof(__pyx_k_create_server_call_tracer_factor), 0, 1, 1}, /* PyObject cname: __pyx_n_u_create_server_call_tracer_factor */
  {__pyx_k_create_task, sizeof(__pyx_k_create_task), 0, 1, 1}, /* PyObject cname: __pyx_n_u_create_task */
  {__pyx_k_credentials, sizeof(__pyx_k_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_credentials */
  {__pyx_k_credentials_2, sizeof(__pyx_k_credentials_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_credentials_2 */
  {__pyx_k_credentials_roots_pem, sizeof(__pyx_k_credentials_roots_pem), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_credentials_roots_pem */
  {__pyx_k_creds, sizeof(__pyx_k_creds), 0, 1, 1}, /* PyObject cname: __pyx_n_u_creds */
  {__pyx_k_ctx, sizeof(__pyx_k_ctx), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ctx */
  {__pyx_k_current_thread, sizeof(__pyx_k_current_thread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_current_thread */
  {__pyx_k_custom_io_manager, sizeof(__pyx_k_custom_io_manager), 0, 1, 1}, /* PyObject cname: __pyx_n_u_custom_io_manager */
  {__pyx_k_custom_op_on_c_call, sizeof(__pyx_k_custom_op_on_c_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_custom_op_on_c_call */
  {__pyx_k_cygrpc, sizeof(__pyx_k_cygrpc), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_cygrpc */
  {__pyx_k_cython_call_credentials, sizeof(__pyx_k_cython_call_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_cython_call_credentials */
  {__pyx_k_daemon, sizeof(__pyx_k_daemon), 0, 1, 1}, /* PyObject cname: __pyx_n_u_daemon */
  {__pyx_k_daemonic, sizeof(__pyx_k_daemonic), 0, 1, 1}, /* PyObject cname: __pyx_n_u_daemonic */
  {__pyx_k_data, sizeof(__pyx_k_data), 0, 1, 1}, /* PyObject cname: __pyx_n_u_data */
  {__pyx_k_data_loss, sizeof(__pyx_k_data_loss), 0, 1, 1}, /* PyObject cname: __pyx_n_u_data_loss */
  {__pyx_k_deadline, sizeof(__pyx_k_deadline), 0, 1, 1}, /* PyObject cname: __pyx_n_u_deadline */
  {__pyx_k_deadline_exceeded, sizeof(__pyx_k_deadline_exceeded), 0, 1, 1}, /* PyObject cname: __pyx_n_u_deadline_exceeded */
  {__pyx_k_dealloc___called_on_running_se, sizeof(__pyx_k_dealloc___called_on_running_se), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_dealloc___called_on_running_se */
  {__pyx_k_debug, sizeof(__pyx_k_debug), 0, 1, 1}, /* PyObject cname: __pyx_n_u_debug */
  {__pyx_k_debug_error_string, sizeof(__pyx_k_debug_error_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_debug_error_string */
  {__pyx_k_decode, sizeof(__pyx_k_decode), 0, 1, 1}, /* PyObject cname: __pyx_n_u_decode */
  {__pyx_k_decrease_active_rpcs_count, sizeof(__pyx_k_decrease_active_rpcs_count), 0, 1, 1}, /* PyObject cname: __pyx_n_u_decrease_active_rpcs_count */
  {__pyx_k_decrease_once_finished, sizeof(__pyx_k_decrease_once_finished), 0, 1, 1}, /* PyObject cname: __pyx_n_u_decrease_once_finished */
  {__pyx_k_decrement, sizeof(__pyx_k_decrement), 0, 1, 1}, /* PyObject cname: __pyx_n_u_decrement */
  {__pyx_k_default_authority, sizeof(__pyx_k_default_authority), 0, 1, 1}, /* PyObject cname: __pyx_n_u_default_authority */
  {__pyx_k_default_vtable, sizeof(__pyx_k_default_vtable), 0, 1, 1}, /* PyObject cname: __pyx_n_u_default_vtable */
  {__pyx_k_deflate, sizeof(__pyx_k_deflate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_deflate */
  {__pyx_k_destroy, sizeof(__pyx_k_destroy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_destroy */
  {__pyx_k_details, sizeof(__pyx_k_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_details */
  {__pyx_k_details_bytes, sizeof(__pyx_k_details_bytes), 0, 1, 1}, /* PyObject cname: __pyx_n_u_details_bytes */
  {__pyx_k_dict, sizeof(__pyx_k_dict), 0, 1, 1}, /* PyObject cname: __pyx_n_u_dict */
  {__pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_dict_2 */
  {__pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_disable */
  {__pyx_k_disable_algorithm, sizeof(__pyx_k_disable_algorithm), 0, 1, 1}, /* PyObject cname: __pyx_n_u_disable_algorithm */
  {__pyx_k_disable_next_message_compression, sizeof(__pyx_k_disable_next_message_compression), 0, 1, 1}, /* PyObject cname: __pyx_n_u_disable_next_message_compression */
  {__pyx_k_discard, sizeof(__pyx_k_discard), 0, 1, 1}, /* PyObject cname: __pyx_n_u_discard */
  {__pyx_k_doc, sizeof(__pyx_k_doc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_doc */
  {__pyx_k_done, sizeof(__pyx_k_done), 0, 1, 1}, /* PyObject cname: __pyx_n_u_done */
  {__pyx_k_dump_xds_configs, sizeof(__pyx_k_dump_xds_configs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_dump_xds_configs */
  {__pyx_k_e, sizeof(__pyx_k_e), 0, 1, 1}, /* PyObject cname: __pyx_n_u_e */
  {__pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_enable */
  {__pyx_k_enable_algorithm, sizeof(__pyx_k_enable_algorithm), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enable_algorithm */
  {__pyx_k_enable_census, sizeof(__pyx_k_enable_census), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enable_census */
  {__pyx_k_encode, sizeof(__pyx_k_encode), 0, 1, 1}, /* PyObject cname: __pyx_n_u_encode */
  {__pyx_k_end_time, sizeof(__pyx_k_end_time), 0, 1, 1}, /* PyObject cname: __pyx_n_u_end_time */
  {__pyx_k_endswith, sizeof(__pyx_k_endswith), 0, 1, 1}, /* PyObject cname: __pyx_n_u_endswith */
  {__pyx_k_enter, sizeof(__pyx_k_enter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enter */
  {__pyx_k_enter_user_request_generator, sizeof(__pyx_k_enter_user_request_generator), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enter_user_request_generator */
  {__pyx_k_enum, sizeof(__pyx_k_enum), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enum */
  {__pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_enumerate */
  {__pyx_k_environ, sizeof(__pyx_k_environ), 0, 1, 1}, /* PyObject cname: __pyx_n_u_environ */
  {__pyx_k_errno, sizeof(__pyx_k_errno), 0, 1, 1}, /* PyObject cname: __pyx_n_u_errno */
  {__pyx_k_error, sizeof(__pyx_k_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_error */
  {__pyx_k_error_code, sizeof(__pyx_k_error_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_error_code */
  {__pyx_k_error_details, sizeof(__pyx_k_error_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_error_details */
  {__pyx_k_error_str, sizeof(__pyx_k_error_str), 0, 1, 1}, /* PyObject cname: __pyx_n_u_error_str */
  {__pyx_k_error_string, sizeof(__pyx_k_error_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_error_string */
  {__pyx_k_event, sizeof(__pyx_k_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_event */
  {__pyx_k_exc_info, sizeof(__pyx_k_exc_info), 0, 1, 1}, /* PyObject cname: __pyx_n_u_exc_info */
  {__pyx_k_exception, sizeof(__pyx_k_exception), 0, 1, 1}, /* PyObject cname: __pyx_n_u_exception */
  {__pyx_k_exception_type, sizeof(__pyx_k_exception_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_exception_type */
  {__pyx_k_execute_batch, sizeof(__pyx_k_execute_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_execute_batch */
  {__pyx_k_exit, sizeof(__pyx_k_exit), 0, 1, 1}, /* PyObject cname: __pyx_n_u_exit */
  {__pyx_k_exit_2, sizeof(__pyx_k_exit_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_exit_2 */
  {__pyx_k_expected_bytes_got, sizeof(__pyx_k_expected_bytes_got), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_expected_bytes_got */
  {__pyx_k_expected_certificate_to_be_bytes, sizeof(__pyx_k_expected_certificate_to_be_bytes), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_expected_certificate_to_be_bytes */
  {__pyx_k_expected_pem_key_cert_pairs_to_b, sizeof(__pyx_k_expected_pem_key_cert_pairs_to_b), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_expected_pem_key_cert_pairs_to_b */
  {__pyx_k_expected_registered_completion_q, sizeof(__pyx_k_expected_registered_completion_q), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_expected_registered_completion_q */
  {__pyx_k_failed_precondition, sizeof(__pyx_k_failed_precondition), 0, 1, 1}, /* PyObject cname: __pyx_n_u_failed_precondition */
  {__pyx_k_failure_handler, sizeof(__pyx_k_failure_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_failure_handler */
  {__pyx_k_fallback_credentials, sizeof(__pyx_k_fallback_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fallback_credentials */
  {__pyx_k_fileno, sizeof(__pyx_k_fileno), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fileno */
  {__pyx_k_find_method_handler, sizeof(__pyx_k_find_method_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_find_method_handler */
  {__pyx_k_find_method_handler_locals_quer, sizeof(__pyx_k_find_method_handler_locals_quer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_find_method_handler_locals_quer */
  {__pyx_k_finish_handler_with_stream_resp, sizeof(__pyx_k_finish_handler_with_stream_resp), 0, 1, 1}, /* PyObject cname: __pyx_n_u_finish_handler_with_stream_resp */
  {__pyx_k_finish_handler_with_unary_respo, sizeof(__pyx_k_finish_handler_with_unary_respo), 0, 1, 1}, /* PyObject cname: __pyx_n_u_finish_handler_with_unary_respo */
  {__pyx_k_finish_ops, sizeof(__pyx_k_finish_ops), 0, 1, 1}, /* PyObject cname: __pyx_n_u_finish_ops */
  {__pyx_k_flags, sizeof(__pyx_k_flags), 0, 1, 1}, /* PyObject cname: __pyx_n_u_flags */
  {__pyx_k_fn, sizeof(__pyx_k_fn), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fn */
  {__pyx_k_force_client_auth, sizeof(__pyx_k_force_client_auth), 0, 1, 1}, /* PyObject cname: __pyx_n_u_force_client_auth */
  {__pyx_k_fork_epoch, sizeof(__pyx_k_fork_epoch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_epoch */
  {__pyx_k_fork_handler_failed, sizeof(__pyx_k_fork_handler_failed), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_handler_failed */
  {__pyx_k_fork_handler_registered, sizeof(__pyx_k_fork_handler_registered), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_handler_registered */
  {__pyx_k_fork_handler_registered_lock, sizeof(__pyx_k_fork_handler_registered_lock), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_handler_registered_lock */
  {__pyx_k_fork_handlers_and_grpc_init, sizeof(__pyx_k_fork_handlers_and_grpc_init), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_handlers_and_grpc_init */
  {__pyx_k_fork_in_progress, sizeof(__pyx_k_fork_in_progress), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_in_progress */
  {__pyx_k_fork_in_progress_condition, sizeof(__pyx_k_fork_in_progress_condition), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_in_progress_condition */
  {__pyx_k_fork_register_channel, sizeof(__pyx_k_fork_register_channel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_register_channel */
  {__pyx_k_fork_state, sizeof(__pyx_k_fork_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_state */
  {__pyx_k_fork_unregister_channel, sizeof(__pyx_k_fork_unregister_channel), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fork_unregister_channel */
  {__pyx_k_format, sizeof(__pyx_k_format), 0, 1, 1}, /* PyObject cname: __pyx_n_u_format */
  {__pyx_k_format_exception, sizeof(__pyx_k_format_exception), 0, 1, 1}, /* PyObject cname: __pyx_n_u_format_exception */
  {__pyx_k_fully_qualified_method, sizeof(__pyx_k_fully_qualified_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_fully_qualified_method */
  {__pyx_k_func, sizeof(__pyx_k_func), 0, 1, 1}, /* PyObject cname: __pyx_n_u_func */
  {__pyx_k_functools, sizeof(__pyx_k_functools), 0, 1, 1}, /* PyObject cname: __pyx_n_u_functools */
  {__pyx_k_future, sizeof(__pyx_k_future), 0, 1, 1}, /* PyObject cname: __pyx_n_u_future */
  {__pyx_k_g_gevent_activated, sizeof(__pyx_k_g_gevent_activated), 0, 1, 1}, /* PyObject cname: __pyx_n_u_g_gevent_activated */
  {__pyx_k_g_gevent_pool, sizeof(__pyx_k_g_gevent_pool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_g_gevent_pool */
  {__pyx_k_g_gevent_threadpool, sizeof(__pyx_k_g_gevent_threadpool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_g_gevent_threadpool */
  {__pyx_k_g_interrupt_check_period_ms, sizeof(__pyx_k_g_interrupt_check_period_ms), 0, 1, 1}, /* PyObject cname: __pyx_n_u_g_interrupt_check_period_ms */
  {__pyx_k_g_shutdown_handler_registered, sizeof(__pyx_k_g_shutdown_handler_registered), 0, 1, 1}, /* PyObject cname: __pyx_n_u_g_shutdown_handler_registered */
  {__pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_gc */
  {__pyx_k_gen, sizeof(__pyx_k_gen), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gen */
  {__pyx_k_generator_to_async_generator, sizeof(__pyx_k_generator_to_async_generator), 0, 1, 1}, /* PyObject cname: __pyx_n_u_generator_to_async_generator */
  {__pyx_k_generator_to_async_generator_loc, sizeof(__pyx_k_generator_to_async_generator_loc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_generator_to_async_generator_loc */
  {__pyx_k_generic_handler, sizeof(__pyx_k_generic_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_generic_handler */
  {__pyx_k_generic_handlers, sizeof(__pyx_k_generic_handlers), 0, 1, 1}, /* PyObject cname: __pyx_n_u_generic_handlers */
  {__pyx_k_generic_rpc_handlers, sizeof(__pyx_k_generic_rpc_handlers), 0, 1, 1}, /* PyObject cname: __pyx_n_u_generic_rpc_handlers */
  {__pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_genexpr */
  {__pyx_k_get, sizeof(__pyx_k_get), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get */
  {__pyx_k_getLogger, sizeof(__pyx_k_getLogger), 0, 1, 1}, /* PyObject cname: __pyx_n_u_getLogger */
  {__pyx_k_get_data, sizeof(__pyx_k_get_data), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_data */
  {__pyx_k_get_deadline_from_context, sizeof(__pyx_k_get_deadline_from_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_deadline_from_context */
  {__pyx_k_get_event_loop, sizeof(__pyx_k_get_event_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_event_loop */
  {__pyx_k_get_event_loop_policy, sizeof(__pyx_k_get_event_loop_policy), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_event_loop_policy */
  {__pyx_k_get_fork_epoch, sizeof(__pyx_k_get_fork_epoch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_fork_epoch */
  {__pyx_k_get_hub, sizeof(__pyx_k_get_hub), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_hub */
  {__pyx_k_get_metadata_locals_callback, sizeof(__pyx_k_get_metadata_locals_callback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_metadata_locals_callback */
  {__pyx_k_get_plugin, sizeof(__pyx_k_get_plugin), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_plugin */
  {__pyx_k_get_registered_call_handle, sizeof(__pyx_k_get_registered_call_handle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_registered_call_handle */
  {__pyx_k_get_running_loop, sizeof(__pyx_k_get_running_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_running_loop */
  {__pyx_k_get_server_call_tracer_factory_a, sizeof(__pyx_k_get_server_call_tracer_factory_a), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_server_call_tracer_factory_a */
  {__pyx_k_get_working_loop, sizeof(__pyx_k_get_working_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_get_working_loop */
  {__pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_getstate */
  {__pyx_k_gevent, sizeof(__pyx_k_gevent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gevent */
  {__pyx_k_gevent_decrement_channel_count, sizeof(__pyx_k_gevent_decrement_channel_count), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gevent_decrement_channel_count */
  {__pyx_k_gevent_hub, sizeof(__pyx_k_gevent_hub), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gevent_hub */
  {__pyx_k_gevent_increment_channel_count, sizeof(__pyx_k_gevent_increment_channel_count), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gevent_increment_channel_count */
  {__pyx_k_gevent_pool, sizeof(__pyx_k_gevent_pool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gevent_pool */
  {__pyx_k_grace, sizeof(__pyx_k_grace), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grace */
  {__pyx_k_grpc, sizeof(__pyx_k_grpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc */
  {__pyx_k_grpc__cython_cygrpc, sizeof(__pyx_k_grpc__cython_cygrpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc__cython_cygrpc */
  {__pyx_k_grpc_aio_EOF, sizeof(__pyx_k_grpc_aio_EOF), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_grpc_aio_EOF */
  {__pyx_k_grpc_call_error_string, sizeof(__pyx_k_grpc_call_error_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_call_error_string */
  {__pyx_k_grpc_call_wrapper, sizeof(__pyx_k_grpc_call_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_call_wrapper */
  {__pyx_k_grpc_completion_queue_shutdown, sizeof(__pyx_k_grpc_completion_queue_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_completion_queue_shutdown */
  {__pyx_k_grpc_python__cygrpc__GrpcArgWrap, sizeof(__pyx_k_grpc_python__cygrpc__GrpcArgWrap), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_grpc_python__cygrpc__GrpcArgWrap */
  {__pyx_k_grpc_server_request_call, sizeof(__pyx_k_grpc_server_request_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_server_request_call */
  {__pyx_k_grpc_server_shutdown_and_notify, sizeof(__pyx_k_grpc_server_shutdown_and_notify), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_server_shutdown_and_notify */
  {__pyx_k_grpc_shutdown_wrapper, sizeof(__pyx_k_grpc_shutdown_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_grpc_shutdown_wrapper */
  {__pyx_k_gzip, sizeof(__pyx_k_gzip), 0, 1, 1}, /* PyObject cname: __pyx_n_u_gzip */
  {__pyx_k_handle_callback_wrapper, sizeof(__pyx_k_handle_callback_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_callback_wrapper */
  {__pyx_k_handle_callbacks, sizeof(__pyx_k_handle_callbacks), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_callbacks */
  {__pyx_k_handle_cancellation_from_core, sizeof(__pyx_k_handle_cancellation_from_core), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_cancellation_from_core */
  {__pyx_k_handle_events, sizeof(__pyx_k_handle_events), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_events */
  {__pyx_k_handle_exceptions, sizeof(__pyx_k_handle_exceptions), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_exceptions */
  {__pyx_k_handle_rpc, sizeof(__pyx_k_handle_rpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_rpc */
  {__pyx_k_handle_status_once_received, sizeof(__pyx_k_handle_status_once_received), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_status_once_received */
  {__pyx_k_handle_stream_stream_rpc, sizeof(__pyx_k_handle_stream_stream_rpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_stream_stream_rpc */
  {__pyx_k_handle_stream_unary_rpc, sizeof(__pyx_k_handle_stream_unary_rpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_stream_unary_rpc */
  {__pyx_k_handle_unary_stream_rpc, sizeof(__pyx_k_handle_unary_stream_rpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_unary_stream_rpc */
  {__pyx_k_handle_unary_unary_rpc, sizeof(__pyx_k_handle_unary_unary_rpc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handle_unary_unary_rpc */
  {__pyx_k_handler, sizeof(__pyx_k_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handler */
  {__pyx_k_handler_call_details, sizeof(__pyx_k_handler_call_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_handler_call_details */
  {__pyx_k_hex_codec, sizeof(__pyx_k_hex_codec), 0, 1, 1}, /* PyObject cname: __pyx_n_u_hex_codec */
  {__pyx_k_high, sizeof(__pyx_k_high), 0, 1, 1}, /* PyObject cname: __pyx_n_u_high */
  {__pyx_k_host, sizeof(__pyx_k_host), 0, 1, 1}, /* PyObject cname: __pyx_n_u_host */
  {__pyx_k_http2_initial_sequence_number, sizeof(__pyx_k_http2_initial_sequence_number), 0, 1, 1}, /* PyObject cname: __pyx_n_u_http2_initial_sequence_number */
  {__pyx_k_hub, sizeof(__pyx_k_hub), 0, 1, 1}, /* PyObject cname: __pyx_n_u_hub */
  {__pyx_k_id, sizeof(__pyx_k_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_id */
  {__pyx_k_identities, sizeof(__pyx_k_identities), 0, 1, 1}, /* PyObject cname: __pyx_n_u_identities */
  {__pyx_k_identity, sizeof(__pyx_k_identity), 0, 1, 1}, /* PyObject cname: __pyx_n_u_identity */
  {__pyx_k_identity_key, sizeof(__pyx_k_identity_key), 0, 1, 1}, /* PyObject cname: __pyx_n_u_identity_key */
  {__pyx_k_idle, sizeof(__pyx_k_idle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_idle */
  {__pyx_k_if_error_code_is_specified_so_mu, sizeof(__pyx_k_if_error_code_is_specified_so_mu), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_if_error_code_is_specified_so_mu */
  {__pyx_k_inbound_ops, sizeof(__pyx_k_inbound_ops), 0, 1, 1}, /* PyObject cname: __pyx_n_u_inbound_ops */
  {__pyx_k_increment, sizeof(__pyx_k_increment), 0, 1, 1}, /* PyObject cname: __pyx_n_u_increment */
  {__pyx_k_index, sizeof(__pyx_k_index), 0, 1, 1}, /* PyObject cname: __pyx_n_u_index */
  {__pyx_k_init, sizeof(__pyx_k_init), 0, 1, 1}, /* PyObject cname: __pyx_n_u_init */
  {__pyx_k_init_grpc_aio, sizeof(__pyx_k_init_grpc_aio), 0, 1, 1}, /* PyObject cname: __pyx_n_u_init_grpc_aio */
  {__pyx_k_init_grpc_gevent, sizeof(__pyx_k_init_grpc_gevent), 0, 1, 1}, /* PyObject cname: __pyx_n_u_init_grpc_gevent */
  {__pyx_k_initial_cert_config, sizeof(__pyx_k_initial_cert_config), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initial_cert_config */
  {__pyx_k_initial_cert_config_must_be_a_gr, sizeof(__pyx_k_initial_cert_config_must_be_a_gr), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_initial_cert_config_must_be_a_gr */
  {__pyx_k_initial_metadata, sizeof(__pyx_k_initial_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initial_metadata */
  {__pyx_k_initial_metadata_op, sizeof(__pyx_k_initial_metadata_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initial_metadata_op */
  {__pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initializing */
  {__pyx_k_initiate_stream_stream, sizeof(__pyx_k_initiate_stream_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initiate_stream_stream */
  {__pyx_k_initiate_unary_stream, sizeof(__pyx_k_initiate_unary_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_initiate_unary_stream */
  {__pyx_k_insecure_server_credentials, sizeof(__pyx_k_insecure_server_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_insecure_server_credentials */
  {__pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 1, 1}, /* PyObject cname: __pyx_n_u_inspect */
  {__pyx_k_install_context_from_request_cal, sizeof(__pyx_k_install_context_from_request_cal), 0, 1, 1}, /* PyObject cname: __pyx_n_u_install_context_from_request_cal */
  {__pyx_k_install_context_from_request_cal_2, sizeof(__pyx_k_install_context_from_request_cal_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_install_context_from_request_cal_2 */
  {__pyx_k_int, sizeof(__pyx_k_int), 0, 1, 1}, /* PyObject cname: __pyx_n_u_int */
  {__pyx_k_integrated_call, sizeof(__pyx_k_integrated_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_integrated_call */
  {__pyx_k_integrated_call_locals_on_succe, sizeof(__pyx_k_integrated_call_locals_on_succe), 0, 1, 1}, /* PyObject cname: __pyx_n_u_integrated_call_locals_on_succe */
  {__pyx_k_intercept_service, sizeof(__pyx_k_intercept_service), 0, 1, 1}, /* PyObject cname: __pyx_n_u_intercept_service */
  {__pyx_k_interceptor, sizeof(__pyx_k_interceptor), 0, 1, 1}, /* PyObject cname: __pyx_n_u_interceptor */
  {__pyx_k_interceptors, sizeof(__pyx_k_interceptors), 0, 1, 1}, /* PyObject cname: __pyx_n_u_interceptors */
  {__pyx_k_internal, sizeof(__pyx_k_internal), 0, 1, 1}, /* PyObject cname: __pyx_n_u_internal */
  {__pyx_k_internal_error_user_data_must_be, sizeof(__pyx_k_internal_error_user_data_must_be), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_internal_error_user_data_must_be */
  {__pyx_k_internal_poll, sizeof(__pyx_k_internal_poll), 0, 1, 1}, /* PyObject cname: __pyx_n_u_internal_poll */
  {__pyx_k_invalid_argument, sizeof(__pyx_k_invalid_argument), 0, 1, 1}, /* PyObject cname: __pyx_n_u_invalid_argument */
  {__pyx_k_invalid_call_object_cannot_be_us, sizeof(__pyx_k_invalid_call_object_cannot_be_us), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_invalid_call_object_cannot_be_us */
  {__pyx_k_invalid_flags, sizeof(__pyx_k_invalid_flags), 0, 1, 1}, /* PyObject cname: __pyx_n_u_invalid_flags */
  {__pyx_k_invalid_metadata, sizeof(__pyx_k_invalid_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_invalid_metadata */
  {__pyx_k_invocation_metadata, sizeof(__pyx_k_invocation_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_invocation_metadata */
  {__pyx_k_is_algorithm_enabled, sizeof(__pyx_k_is_algorithm_enabled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_algorithm_enabled */
  {__pyx_k_is_async_handler, sizeof(__pyx_k_is_async_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_async_handler */
  {__pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_coroutine */
  {__pyx_k_is_fork_support_enabled, sizeof(__pyx_k_is_fork_support_enabled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_fork_support_enabled */
  {__pyx_k_is_locally_cancelled, sizeof(__pyx_k_is_locally_cancelled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_locally_cancelled */
  {__pyx_k_is_ok, sizeof(__pyx_k_is_ok), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_ok */
  {__pyx_k_is_running, sizeof(__pyx_k_is_running), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_running */
  {__pyx_k_is_sampled, sizeof(__pyx_k_is_sampled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_sampled */
  {__pyx_k_is_valid, sizeof(__pyx_k_is_valid), 0, 1, 1}, /* PyObject cname: __pyx_n_u_is_valid */
  {__pyx_k_is_valid_2, sizeof(__pyx_k_is_valid_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_is_valid_2 */
  {__pyx_k_isasyncgenfunction, sizeof(__pyx_k_isasyncgenfunction), 0, 1, 1}, /* PyObject cname: __pyx_n_u_isasyncgenfunction */
  {__pyx_k_isawaitable, sizeof(__pyx_k_isawaitable), 0, 1, 1}, /* PyObject cname: __pyx_n_u_isawaitable */
  {__pyx_k_iscoroutinefunction, sizeof(__pyx_k_iscoroutinefunction), 0, 1, 1}, /* PyObject cname: __pyx_n_u_iscoroutinefunction */
  {__pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_isenabled */
  {__pyx_k_item, sizeof(__pyx_k_item), 0, 1, 1}, /* PyObject cname: __pyx_n_u_item */
  {__pyx_k_iter, sizeof(__pyx_k_iter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_iter */
  {__pyx_k_join, sizeof(__pyx_k_join), 0, 1, 1}, /* PyObject cname: __pyx_n_u_join */
  {__pyx_k_key, sizeof(__pyx_k_key), 0, 1, 1}, /* PyObject cname: __pyx_n_u_key */
  {__pyx_k_keys, sizeof(__pyx_k_keys), 0, 1, 1}, /* PyObject cname: __pyx_n_u_keys */
  {__pyx_k_last_observed_state, sizeof(__pyx_k_last_observed_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_last_observed_state */
  {__pyx_k_latent_event_arg, sizeof(__pyx_k_latent_event_arg), 0, 1, 1}, /* PyObject cname: __pyx_n_u_latent_event_arg */
  {__pyx_k_len, sizeof(__pyx_k_len), 0, 1, 1}, /* PyObject cname: __pyx_n_u_len */
  {__pyx_k_lk, sizeof(__pyx_k_lk), 0, 1, 1}, /* PyObject cname: __pyx_n_u_lk */
  {__pyx_k_local_connect_type, sizeof(__pyx_k_local_connect_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_local_connect_type */
  {__pyx_k_local_tcp, sizeof(__pyx_k_local_tcp), 0, 1, 1}, /* PyObject cname: __pyx_n_u_local_tcp */
  {__pyx_k_logging, sizeof(__pyx_k_logging), 0, 1, 1}, /* PyObject cname: __pyx_n_u_logging */
  {__pyx_k_loop, sizeof(__pyx_k_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_loop */
  {__pyx_k_low, sizeof(__pyx_k_low), 0, 1, 1}, /* PyObject cname: __pyx_n_u_low */
  {__pyx_k_lower, sizeof(__pyx_k_lower), 0, 1, 1}, /* PyObject cname: __pyx_n_u_lower */
  {__pyx_k_main, sizeof(__pyx_k_main), 0, 1, 1}, /* PyObject cname: __pyx_n_u_main */
  {__pyx_k_main_thread, sizeof(__pyx_k_main_thread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_main_thread */
  {__pyx_k_managed_target, sizeof(__pyx_k_managed_target), 0, 1, 1}, /* PyObject cname: __pyx_n_u_managed_target */
  {__pyx_k_max_concurrent_streams, sizeof(__pyx_k_max_concurrent_streams), 0, 1, 1}, /* PyObject cname: __pyx_n_u_max_concurrent_streams */
  {__pyx_k_max_receive_message_length, sizeof(__pyx_k_max_receive_message_length), 0, 1, 1}, /* PyObject cname: __pyx_n_u_max_receive_message_length */
  {__pyx_k_max_results, sizeof(__pyx_k_max_results), 0, 1, 1}, /* PyObject cname: __pyx_n_u_max_results */
  {__pyx_k_max_send_message_length, sizeof(__pyx_k_max_send_message_length), 0, 1, 1}, /* PyObject cname: __pyx_n_u_max_send_message_length */
  {__pyx_k_maximum_concurrent_rpcs, sizeof(__pyx_k_maximum_concurrent_rpcs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_maximum_concurrent_rpcs */
  {__pyx_k_maximum_concurrent_rpcs_should_b, sizeof(__pyx_k_maximum_concurrent_rpcs_should_b), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_maximum_concurrent_rpcs_should_b */
  {__pyx_k_maxsize, sizeof(__pyx_k_maxsize), 0, 1, 1}, /* PyObject cname: __pyx_n_u_maxsize */
  {__pyx_k_maybe_register_shutdown_handler, sizeof(__pyx_k_maybe_register_shutdown_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_maybe_register_shutdown_handler */
  {__pyx_k_maybe_save_server_trace_context, sizeof(__pyx_k_maybe_save_server_trace_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_maybe_save_server_trace_context */
  {__pyx_k_medium, sizeof(__pyx_k_medium), 0, 1, 1}, /* PyObject cname: __pyx_n_u_medium */
  {__pyx_k_members, sizeof(__pyx_k_members), 0, 1, 1}, /* PyObject cname: __pyx_n_u_members */
  {__pyx_k_message, sizeof(__pyx_k_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_message */
  {__pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 1, 1}, /* PyObject cname: __pyx_n_u_metaclass */
  {__pyx_k_metadata, sizeof(__pyx_k_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_metadata */
  {__pyx_k_metadata_locals_genexpr, sizeof(__pyx_k_metadata_locals_genexpr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_metadata_locals_genexpr */
  {__pyx_k_metadata_plugin, sizeof(__pyx_k_metadata_plugin), 0, 1, 1}, /* PyObject cname: __pyx_n_u_metadata_plugin */
  {__pyx_k_metadata_sent_observer, sizeof(__pyx_k_metadata_sent_observer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_metadata_sent_observer */
  {__pyx_k_metadata_was_invalid_s, sizeof(__pyx_k_metadata_was_invalid_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_metadata_was_invalid_s */
  {__pyx_k_method, sizeof(__pyx_k_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_method */
  {__pyx_k_method_bytes, sizeof(__pyx_k_method_bytes), 0, 1, 1}, /* PyObject cname: __pyx_n_u_method_bytes */
  {__pyx_k_method_handler, sizeof(__pyx_k_method_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_method_handler */
  {__pyx_k_module, sizeof(__pyx_k_module), 0, 1, 1}, /* PyObject cname: __pyx_n_u_module */
  {__pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 1, 1}, /* PyObject cname: __pyx_n_u_mro_entries */
  {__pyx_k_name, sizeof(__pyx_k_name), 0, 1, 1}, /* PyObject cname: __pyx_n_u_name */
  {__pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_name_2 */
  {__pyx_k_namedtuple, sizeof(__pyx_k_namedtuple), 0, 1, 1}, /* PyObject cname: __pyx_n_u_namedtuple */
  {__pyx_k_new, sizeof(__pyx_k_new), 0, 1, 1}, /* PyObject cname: __pyx_n_u_new */
  {__pyx_k_new_event_loop, sizeof(__pyx_k_new_event_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_new_event_loop */
  {__pyx_k_next, sizeof(__pyx_k_next), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next */
  {__pyx_k_next_call_event, sizeof(__pyx_k_next_call_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next_call_event */
  {__pyx_k_next_call_event_locals_on_succes, sizeof(__pyx_k_next_call_event_locals_on_succes), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next_call_event_locals_on_succes */
  {__pyx_k_next_event, sizeof(__pyx_k_next_event), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next_event */
  {__pyx_k_next_event_locals_on_failure, sizeof(__pyx_k_next_event_locals_on_failure), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next_event_locals_on_failure */
  {__pyx_k_next_event_locals_on_success, sizeof(__pyx_k_next_event_locals_on_success), 0, 1, 1}, /* PyObject cname: __pyx_n_u_next_event_locals_on_success */
  {__pyx_k_no_compress, sizeof(__pyx_k_no_compress), 0, 1, 1}, /* PyObject cname: __pyx_n_u_no_compress */
  {__pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_no_default___reduce___due_to_non */
  {__pyx_k_none, sizeof(__pyx_k_none), 0, 1, 1}, /* PyObject cname: __pyx_n_u_none */
  {__pyx_k_not_found, sizeof(__pyx_k_not_found), 0, 1, 1}, /* PyObject cname: __pyx_n_u_not_found */
  {__pyx_k_not_invoked, sizeof(__pyx_k_not_invoked), 0, 1, 1}, /* PyObject cname: __pyx_n_u_not_invoked */
  {__pyx_k_not_on_client, sizeof(__pyx_k_not_on_client), 0, 1, 1}, /* PyObject cname: __pyx_n_u_not_on_client */
  {__pyx_k_not_on_server, sizeof(__pyx_k_not_on_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_not_on_server */
  {__pyx_k_notify_all, sizeof(__pyx_k_notify_all), 0, 1, 1}, /* PyObject cname: __pyx_n_u_notify_all */
  {__pyx_k_num_active_threads, sizeof(__pyx_k_num_active_threads), 0, 1, 1}, /* PyObject cname: __pyx_n_u_num_active_threads */
  {__pyx_k_object, sizeof(__pyx_k_object), 0, 1, 1}, /* PyObject cname: __pyx_n_u_object */
  {__pyx_k_object_2, sizeof(__pyx_k_object_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_object_2 */
  {__pyx_k_observability, sizeof(__pyx_k_observability), 0, 1, 1}, /* PyObject cname: __pyx_n_u_observability */
  {__pyx_k_observability_enabled, sizeof(__pyx_k_observability_enabled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_observability_enabled */
  {__pyx_k_observability_plugin, sizeof(__pyx_k_observability_plugin), 0, 1, 1}, /* PyObject cname: __pyx_n_u_observability_plugin */
  {__pyx_k_of_RPC_that_terminated_with_sta, sizeof(__pyx_k_of_RPC_that_terminated_with_sta), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_of_RPC_that_terminated_with_sta */
  {__pyx_k_of_RPC_that_terminated_with_sta_2, sizeof(__pyx_k_of_RPC_that_terminated_with_sta_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_of_RPC_that_terminated_with_sta_2 */
  {__pyx_k_ok, sizeof(__pyx_k_ok), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ok */
  {__pyx_k_on_failure, sizeof(__pyx_k_on_failure), 0, 1, 1}, /* PyObject cname: __pyx_n_u_on_failure */
  {__pyx_k_on_success, sizeof(__pyx_k_on_success), 0, 1, 1}, /* PyObject cname: __pyx_n_u_on_success */
  {__pyx_k_op, sizeof(__pyx_k_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_op */
  {__pyx_k_operate, sizeof(__pyx_k_operate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_operate */
  {__pyx_k_operation_complete, sizeof(__pyx_k_operation_complete), 0, 1, 1}, /* PyObject cname: __pyx_n_u_operation_complete */
  {__pyx_k_operations, sizeof(__pyx_k_operations), 0, 1, 1}, /* PyObject cname: __pyx_n_u_operations */
  {__pyx_k_operationses_and_tags, sizeof(__pyx_k_operationses_and_tags), 0, 1, 1}, /* PyObject cname: __pyx_n_u_operationses_and_tags */
  {__pyx_k_ops, sizeof(__pyx_k_ops), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ops */
  {__pyx_k_options, sizeof(__pyx_k_options), 0, 1, 1}, /* PyObject cname: __pyx_n_u_options */
  {__pyx_k_os, sizeof(__pyx_k_os), 0, 1, 1}, /* PyObject cname: __pyx_n_u_os */
  {__pyx_k_out_of_range, sizeof(__pyx_k_out_of_range), 0, 1, 1}, /* PyObject cname: __pyx_n_u_out_of_range */
  {__pyx_k_outbound_initial_metadata, sizeof(__pyx_k_outbound_initial_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_outbound_initial_metadata */
  {__pyx_k_outbound_ops, sizeof(__pyx_k_outbound_ops), 0, 1, 1}, /* PyObject cname: __pyx_n_u_outbound_ops */
  {__pyx_k_partial, sizeof(__pyx_k_partial), 0, 1, 1}, /* PyObject cname: __pyx_n_u_partial */
  {__pyx_k_peer, sizeof(__pyx_k_peer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_peer */
  {__pyx_k_peer_identities, sizeof(__pyx_k_peer_identities), 0, 1, 1}, /* PyObject cname: __pyx_n_u_peer_identities */
  {__pyx_k_peer_identity_key, sizeof(__pyx_k_peer_identity_key), 0, 1, 1}, /* PyObject cname: __pyx_n_u_peer_identity_key */
  {__pyx_k_pem_key_cert_pairs, sizeof(__pyx_k_pem_key_cert_pairs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pem_key_cert_pairs */
  {__pyx_k_pem_root_certificates, sizeof(__pyx_k_pem_root_certificates), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pem_root_certificates */
  {__pyx_k_pem_root_certs, sizeof(__pyx_k_pem_root_certs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pem_root_certs */
  {__pyx_k_permission_denied, sizeof(__pyx_k_permission_denied), 0, 1, 1}, /* PyObject cname: __pyx_n_u_permission_denied */
  {__pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pickle */
  {__pyx_k_pkgutil, sizeof(__pyx_k_pkgutil), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pkgutil */
  {__pyx_k_plugin, sizeof(__pyx_k_plugin), 0, 1, 1}, /* PyObject cname: __pyx_n_u_plugin */
  {__pyx_k_poll, sizeof(__pyx_k_poll), 0, 1, 1}, /* PyObject cname: __pyx_n_u_poll */
  {__pyx_k_poll_wrapper, sizeof(__pyx_k_poll_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_poll_wrapper */
  {__pyx_k_poller, sizeof(__pyx_k_poller), 0, 1, 1}, /* PyObject cname: __pyx_n_u_poller */
  {__pyx_k_pool, sizeof(__pyx_k_pool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pool */
  {__pyx_k_pop, sizeof(__pyx_k_pop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pop */
  {__pyx_k_postfork_state_to_reset, sizeof(__pyx_k_postfork_state_to_reset), 0, 1, 1}, /* PyObject cname: __pyx_n_u_postfork_state_to_reset */
  {__pyx_k_postfork_states_to_reset, sizeof(__pyx_k_postfork_states_to_reset), 0, 1, 1}, /* PyObject cname: __pyx_n_u_postfork_states_to_reset */
  {__pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 1, 1}, /* PyObject cname: __pyx_n_u_prepare */
  {__pyx_k_primary_user_agent_string, sizeof(__pyx_k_primary_user_agent_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_primary_user_agent_string */
  {__pyx_k_print_exc, sizeof(__pyx_k_print_exc), 0, 1, 1}, /* PyObject cname: __pyx_n_u_print_exc */
  {__pyx_k_private_key, sizeof(__pyx_k_private_key), 0, 1, 1}, /* PyObject cname: __pyx_n_u_private_key */
  {__pyx_k_properties, sizeof(__pyx_k_properties), 0, 1, 1}, /* PyObject cname: __pyx_n_u_properties */
  {__pyx_k_property, sizeof(__pyx_k_property), 0, 1, 1}, /* PyObject cname: __pyx_n_u_property */
  {__pyx_k_put, sizeof(__pyx_k_put), 0, 1, 1}, /* PyObject cname: __pyx_n_u_put */
  {__pyx_k_py_auth_context, sizeof(__pyx_k_py_auth_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_py_auth_context */
  {__pyx_k_python_call_credentials, sizeof(__pyx_k_python_call_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_python_call_credentials */
  {__pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_PickleError */
  {__pyx_k_pyx_capi, sizeof(__pyx_k_pyx_capi), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_capi */
  {__pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_checksum */
  {__pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_result */
  {__pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_state */
  {__pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_type */
  {__pyx_k_pyx_unpickle_AioServer, sizeof(__pyx_k_pyx_unpickle_AioServer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_unpickle_AioServer */
  {__pyx_k_pyx_unpickle_CensusContext, sizeof(__pyx_k_pyx_unpickle_CensusContext), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_unpickle_CensusContext */
  {__pyx_k_pyx_unpickle_ChannelCredential, sizeof(__pyx_k_pyx_unpickle_ChannelCredential), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_unpickle_ChannelCredential */
  {__pyx_k_pyx_unpickle_InsecureChannelCr, sizeof(__pyx_k_pyx_unpickle_InsecureChannelCr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_unpickle_InsecureChannelCr */
  {__pyx_k_pyx_unpickle__Tag, sizeof(__pyx_k_pyx_unpickle__Tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_unpickle__Tag */
  {__pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 1, 1}, /* PyObject cname: __pyx_n_u_pyx_vtable */
  {__pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 1, 1}, /* PyObject cname: __pyx_n_u_qualname */
  {__pyx_k_query_call, sizeof(__pyx_k_query_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_query_call */
  {__pyx_k_query_handler, sizeof(__pyx_k_query_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_query_handler */
  {__pyx_k_query_handlers, sizeof(__pyx_k_query_handlers), 0, 1, 1}, /* PyObject cname: __pyx_n_u_query_handlers */
  {__pyx_k_queue, sizeof(__pyx_k_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_queue */
  {__pyx_k_queue_deadline, sizeof(__pyx_k_queue_deadline), 0, 1, 1}, /* PyObject cname: __pyx_n_u_queue_deadline */
  {__pyx_k_queue_must_be_live, sizeof(__pyx_k_queue_must_be_live), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_queue_must_be_live */
  {__pyx_k_queue_must_be_shutting_down_to_b, sizeof(__pyx_k_queue_must_be_shutting_down_to_b), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_queue_must_be_shutting_down_to_b */
  {__pyx_k_queue_shutdown, sizeof(__pyx_k_queue_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_queue_shutdown */
  {__pyx_k_queue_timeout, sizeof(__pyx_k_queue_timeout), 0, 1, 1}, /* PyObject cname: __pyx_n_u_queue_timeout */
  {__pyx_k_raise_if_not_valid_trailing_meta, sizeof(__pyx_k_raise_if_not_valid_trailing_meta), 0, 1, 1}, /* PyObject cname: __pyx_n_u_raise_if_not_valid_trailing_meta */
  {__pyx_k_raised_by_servicer_method, sizeof(__pyx_k_raised_by_servicer_method), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_raised_by_servicer_method */
  {__pyx_k_range, sizeof(__pyx_k_range), 0, 1, 1}, /* PyObject cname: __pyx_n_u_range */
  {__pyx_k_raw_message, sizeof(__pyx_k_raw_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_raw_message */
  {__pyx_k_read, sizeof(__pyx_k_read), 0, 1, 1}, /* PyObject cname: __pyx_n_u_read */
  {__pyx_k_read_socket, sizeof(__pyx_k_read_socket), 0, 1, 1}, /* PyObject cname: __pyx_n_u_read_socket */
  {__pyx_k_ready, sizeof(__pyx_k_ready), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ready */
  {__pyx_k_receive_close_on_server, sizeof(__pyx_k_receive_close_on_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_close_on_server */
  {__pyx_k_receive_initial_metadata, sizeof(__pyx_k_receive_initial_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_initial_metadata */
  {__pyx_k_receive_initial_metadata_2, sizeof(__pyx_k_receive_initial_metadata_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_initial_metadata_2 */
  {__pyx_k_receive_initial_metadata_op, sizeof(__pyx_k_receive_initial_metadata_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_initial_metadata_op */
  {__pyx_k_receive_message, sizeof(__pyx_k_receive_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_message */
  {__pyx_k_receive_message_2, sizeof(__pyx_k_receive_message_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_message_2 */
  {__pyx_k_receive_message_op, sizeof(__pyx_k_receive_message_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_message_op */
  {__pyx_k_receive_op, sizeof(__pyx_k_receive_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_op */
  {__pyx_k_receive_serialized_message, sizeof(__pyx_k_receive_serialized_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_serialized_message */
  {__pyx_k_receive_status_on_client, sizeof(__pyx_k_receive_status_on_client), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_status_on_client */
  {__pyx_k_receive_status_on_client_op, sizeof(__pyx_k_receive_status_on_client_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_receive_status_on_client_op */
  {__pyx_k_received_message, sizeof(__pyx_k_received_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_received_message */
  {__pyx_k_recv, sizeof(__pyx_k_recv), 0, 1, 1}, /* PyObject cname: __pyx_n_u_recv */
  {__pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 1, 1}, /* PyObject cname: __pyx_n_u_reduce */
  {__pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_reduce_cython */
  {__pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 1, 1}, /* PyObject cname: __pyx_n_u_reduce_ex */
  {__pyx_k_register, sizeof(__pyx_k_register), 0, 1, 1}, /* PyObject cname: __pyx_n_u_register */
  {__pyx_k_register_at_fork, sizeof(__pyx_k_register_at_fork), 0, 1, 1}, /* PyObject cname: __pyx_n_u_register_at_fork */
  {__pyx_k_register_completion_queue, sizeof(__pyx_k_register_completion_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_register_completion_queue */
  {__pyx_k_register_method, sizeof(__pyx_k_register_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_register_method */
  {__pyx_k_registered_call_handle, sizeof(__pyx_k_registered_call_handle), 0, 1, 1}, /* PyObject cname: __pyx_n_u_registered_call_handle */
  {__pyx_k_registered_method, sizeof(__pyx_k_registered_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_registered_method */
  {__pyx_k_remove_reader, sizeof(__pyx_k_remove_reader), 0, 1, 1}, /* PyObject cname: __pyx_n_u_remove_reader */
  {__pyx_k_repr, sizeof(__pyx_k_repr), 0, 1, 1}, /* PyObject cname: __pyx_n_u_repr */
  {__pyx_k_repr_2, sizeof(__pyx_k_repr_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_repr_2 */
  {__pyx_k_request, sizeof(__pyx_k_request), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request */
  {__pyx_k_request_call, sizeof(__pyx_k_request_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_call */
  {__pyx_k_request_call_2, sizeof(__pyx_k_request_call_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_call_2 */
  {__pyx_k_request_call_tag, sizeof(__pyx_k_request_call_tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_call_tag */
  {__pyx_k_request_deserializer, sizeof(__pyx_k_request_deserializer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_deserializer */
  {__pyx_k_request_iterator, sizeof(__pyx_k_request_iterator), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_iterator */
  {__pyx_k_request_message, sizeof(__pyx_k_request_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_message */
  {__pyx_k_request_raw, sizeof(__pyx_k_request_raw), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_raw */
  {__pyx_k_request_registered_call, sizeof(__pyx_k_request_registered_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_registered_call */
  {__pyx_k_request_streaming, sizeof(__pyx_k_request_streaming), 0, 1, 1}, /* PyObject cname: __pyx_n_u_request_streaming */
  {__pyx_k_reset_grpc_config_vars, sizeof(__pyx_k_reset_grpc_config_vars), 0, 1, 1}, /* PyObject cname: __pyx_n_u_reset_grpc_config_vars */
  {__pyx_k_reset_postfork_child, sizeof(__pyx_k_reset_postfork_child), 0, 1, 1}, /* PyObject cname: __pyx_n_u_reset_postfork_child */
  {__pyx_k_resource_exhausted, sizeof(__pyx_k_resource_exhausted), 0, 1, 1}, /* PyObject cname: __pyx_n_u_resource_exhausted */
  {__pyx_k_response, sizeof(__pyx_k_response), 0, 1, 1}, /* PyObject cname: __pyx_n_u_response */
  {__pyx_k_response_message, sizeof(__pyx_k_response_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_response_message */
  {__pyx_k_response_raw, sizeof(__pyx_k_response_raw), 0, 1, 1}, /* PyObject cname: __pyx_n_u_response_raw */
  {__pyx_k_response_serializer, sizeof(__pyx_k_response_serializer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_response_serializer */
  {__pyx_k_response_streaming, sizeof(__pyx_k_response_streaming), 0, 1, 1}, /* PyObject cname: __pyx_n_u_response_streaming */
  {__pyx_k_result, sizeof(__pyx_k_result), 0, 1, 1}, /* PyObject cname: __pyx_n_u_result */
  {__pyx_k_retain_self, sizeof(__pyx_k_retain_self), 0, 1, 1}, /* PyObject cname: __pyx_n_u_retain_self */
  {__pyx_k_return, sizeof(__pyx_k_return), 0, 1, 1}, /* PyObject cname: __pyx_n_u_return */
  {__pyx_k_return_from_user_request_generat, sizeof(__pyx_k_return_from_user_request_generat), 0, 1, 1}, /* PyObject cname: __pyx_n_u_return_from_user_request_generat */
  {__pyx_k_rpc_coro, sizeof(__pyx_k_rpc_coro), 0, 1, 1}, /* PyObject cname: __pyx_n_u_rpc_coro */
  {__pyx_k_rpc_state, sizeof(__pyx_k_rpc_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_rpc_state */
  {__pyx_k_rpc_task, sizeof(__pyx_k_rpc_task), 0, 1, 1}, /* PyObject cname: __pyx_n_u_rpc_task */
  {__pyx_k_rpc_tasks, sizeof(__pyx_k_rpc_tasks), 0, 1, 1}, /* PyObject cname: __pyx_n_u_rpc_tasks */
  {__pyx_k_run, sizeof(__pyx_k_run), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run */
  {__pyx_k_run_2, sizeof(__pyx_k_run_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_2 */
  {__pyx_k_run_coroutine_threadsafe, sizeof(__pyx_k_run_coroutine_threadsafe), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_coroutine_threadsafe */
  {__pyx_k_run_in_executor, sizeof(__pyx_k_run_in_executor), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_in_executor */
  {__pyx_k_run_interceptor, sizeof(__pyx_k_run_interceptor), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_interceptor */
  {__pyx_k_run_spawn_greenlets, sizeof(__pyx_k_run_spawn_greenlets), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_spawn_greenlets */
  {__pyx_k_run_with_context, sizeof(__pyx_k_run_with_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_with_context */
  {__pyx_k_run_with_context_locals__run, sizeof(__pyx_k_run_with_context_locals__run), 0, 1, 1}, /* PyObject cname: __pyx_n_u_run_with_context_locals__run */
  {__pyx_k_runtime_error, sizeof(__pyx_k_runtime_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_runtime_error */
  {__pyx_k_save_registered_method, sizeof(__pyx_k_save_registered_method), 0, 1, 1}, /* PyObject cname: __pyx_n_u_save_registered_method */
  {__pyx_k_save_trace_context, sizeof(__pyx_k_save_trace_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_save_trace_context */
  {__pyx_k_schedule_coro_threadsafe, sizeof(__pyx_k_schedule_coro_threadsafe), 0, 1, 1}, /* PyObject cname: __pyx_n_u_schedule_coro_threadsafe */
  {__pyx_k_schedule_rpc_coro, sizeof(__pyx_k_schedule_rpc_coro), 0, 1, 1}, /* PyObject cname: __pyx_n_u_schedule_rpc_coro */
  {__pyx_k_secondary_user_agent_string, sizeof(__pyx_k_secondary_user_agent_string), 0, 1, 1}, /* PyObject cname: __pyx_n_u_secondary_user_agent_string */
  {__pyx_k_segregated_call, sizeof(__pyx_k_segregated_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_segregated_call */
  {__pyx_k_segregated_call_locals_on_succe, sizeof(__pyx_k_segregated_call_locals_on_succe), 0, 1, 1}, /* PyObject cname: __pyx_n_u_segregated_call_locals_on_succe */
  {__pyx_k_self, sizeof(__pyx_k_self), 0, 1, 1}, /* PyObject cname: __pyx_n_u_self */
  {__pyx_k_self__cq_cannot_be_converted_to, sizeof(__pyx_k_self__cq_cannot_be_converted_to), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_self__cq_cannot_be_converted_to */
  {__pyx_k_self_arg_cannot_be_converted_to, sizeof(__pyx_k_self_arg_cannot_be_converted_to), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_self_arg_cannot_be_converted_to */
  {__pyx_k_self_c_argument_cannot_be_conver, sizeof(__pyx_k_self_c_argument_cannot_be_conver), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_self_c_argument_cannot_be_conver */
  {__pyx_k_self_c_credentials_cannot_be_con, sizeof(__pyx_k_self_c_credentials_cannot_be_con), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_self_c_credentials_cannot_be_con */
  {__pyx_k_self_c_op_cannot_be_converted_to, sizeof(__pyx_k_self_c_op_cannot_be_converted_to), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_self_c_op_cannot_be_converted_to */
  {__pyx_k_send, sizeof(__pyx_k_send), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send */
  {__pyx_k_send_close_from_client, sizeof(__pyx_k_send_close_from_client), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_close_from_client */
  {__pyx_k_send_close_op, sizeof(__pyx_k_send_close_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_close_op */
  {__pyx_k_send_error_status_from_server, sizeof(__pyx_k_send_error_status_from_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_error_status_from_server */
  {__pyx_k_send_initial_metadata, sizeof(__pyx_k_send_initial_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_initial_metadata */
  {__pyx_k_send_initial_metadata_2, sizeof(__pyx_k_send_initial_metadata_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_initial_metadata_2 */
  {__pyx_k_send_initial_metadata_op, sizeof(__pyx_k_send_initial_metadata_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_initial_metadata_op */
  {__pyx_k_send_message, sizeof(__pyx_k_send_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_message */
  {__pyx_k_send_message_2, sizeof(__pyx_k_send_message_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_message_2 */
  {__pyx_k_send_message_op, sizeof(__pyx_k_send_message_op), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_message_op */
  {__pyx_k_send_receive_close, sizeof(__pyx_k_send_receive_close), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_receive_close */
  {__pyx_k_send_serialized_message, sizeof(__pyx_k_send_serialized_message), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_serialized_message */
  {__pyx_k_send_status_from_server, sizeof(__pyx_k_send_status_from_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_send_status_from_server */
  {__pyx_k_server, sizeof(__pyx_k_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server */
  {__pyx_k_server_call_tracer, sizeof(__pyx_k_server_call_tracer), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_call_tracer */
  {__pyx_k_server_certificate_config_ssl, sizeof(__pyx_k_server_certificate_config_ssl), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_certificate_config_ssl */
  {__pyx_k_server_credentials, sizeof(__pyx_k_server_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_credentials */
  {__pyx_k_server_credentials_alts, sizeof(__pyx_k_server_credentials_alts), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_credentials_alts */
  {__pyx_k_server_credentials_local, sizeof(__pyx_k_server_credentials_local), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_credentials_local */
  {__pyx_k_server_credentials_ssl, sizeof(__pyx_k_server_credentials_ssl), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_credentials_ssl */
  {__pyx_k_server_credentials_ssl_dynamic_c, sizeof(__pyx_k_server_credentials_ssl_dynamic_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_credentials_ssl_dynamic_c */
  {__pyx_k_server_id, sizeof(__pyx_k_server_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_id */
  {__pyx_k_server_main_loop, sizeof(__pyx_k_server_main_loop), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_main_loop */
  {__pyx_k_server_must_be_started_and_not_s, sizeof(__pyx_k_server_must_be_started_and_not_s), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_server_must_be_started_and_not_s */
  {__pyx_k_server_queue, sizeof(__pyx_k_server_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_queue */
  {__pyx_k_server_queue_must_be_a_registere, sizeof(__pyx_k_server_queue_must_be_a_registere), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_server_queue_must_be_a_registere */
  {__pyx_k_server_started, sizeof(__pyx_k_server_started), 0, 1, 1}, /* PyObject cname: __pyx_n_u_server_started */
  {__pyx_k_service, sizeof(__pyx_k_service), 0, 1, 1}, /* PyObject cname: __pyx_n_u_service */
  {__pyx_k_service_accounts, sizeof(__pyx_k_service_accounts), 0, 1, 1}, /* PyObject cname: __pyx_n_u_service_accounts */
  {__pyx_k_servicer_context, sizeof(__pyx_k_servicer_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_servicer_context */
  {__pyx_k_serving_task_crash_handler, sizeof(__pyx_k_serving_task_crash_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_serving_task_crash_handler */
  {__pyx_k_setDaemon, sizeof(__pyx_k_setDaemon), 0, 1, 1}, /* PyObject cname: __pyx_n_u_setDaemon */
  {__pyx_k_set_async_callback_func, sizeof(__pyx_k_set_async_callback_func), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_async_callback_func */
  {__pyx_k_set_census_context_on_call, sizeof(__pyx_k_set_census_context_on_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_census_context_on_call */
  {__pyx_k_set_code, sizeof(__pyx_k_set_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_code */
  {__pyx_k_set_compression, sizeof(__pyx_k_set_compression), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_compression */
  {__pyx_k_set_credentials, sizeof(__pyx_k_set_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_credentials */
  {__pyx_k_set_details, sizeof(__pyx_k_set_details), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_details */
  {__pyx_k_set_exception, sizeof(__pyx_k_set_exception), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_exception */
  {__pyx_k_set_instrumentation_context_on_c, sizeof(__pyx_k_set_instrumentation_context_on_c), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_instrumentation_context_on_c */
  {__pyx_k_set_internal_error, sizeof(__pyx_k_set_internal_error), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_internal_error */
  {__pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_name */
  {__pyx_k_set_result, sizeof(__pyx_k_set_result), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_result */
  {__pyx_k_set_trailing_metadata, sizeof(__pyx_k_set_trailing_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_set_trailing_metadata */
  {__pyx_k_setblocking, sizeof(__pyx_k_setblocking), 0, 1, 1}, /* PyObject cname: __pyx_n_u_setblocking */
  {__pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_setstate */
  {__pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 1, 1}, /* PyObject cname: __pyx_n_u_setstate_cython */
  {__pyx_k_shield, sizeof(__pyx_k_shield), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shield */
  {__pyx_k_shutdown, sizeof(__pyx_k_shutdown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shutdown */
  {__pyx_k_shutdown_await_next_greenlet, sizeof(__pyx_k_shutdown_await_next_greenlet), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shutdown_await_next_greenlet */
  {__pyx_k_shutdown_cq, sizeof(__pyx_k_shutdown_cq), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shutdown_cq */
  {__pyx_k_shutdown_grpc_aio, sizeof(__pyx_k_shutdown_grpc_aio), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shutdown_grpc_aio */
  {__pyx_k_shutting_down_server, sizeof(__pyx_k_shutting_down_server), 0, 1, 1}, /* PyObject cname: __pyx_n_u_shutting_down_server */
  {__pyx_k_simplefilter, sizeof(__pyx_k_simplefilter), 0, 1, 1}, /* PyObject cname: __pyx_n_u_simplefilter */
  {__pyx_k_sleep, sizeof(__pyx_k_sleep), 0, 1, 1}, /* PyObject cname: __pyx_n_u_sleep */
  {__pyx_k_socket, sizeof(__pyx_k_socket), 0, 1, 1}, /* PyObject cname: __pyx_n_u_socket */
  {__pyx_k_socket_id, sizeof(__pyx_k_socket_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_socket_id */
  {__pyx_k_socketpair, sizeof(__pyx_k_socketpair), 0, 1, 1}, /* PyObject cname: __pyx_n_u_socketpair */
  {__pyx_k_span_id, sizeof(__pyx_k_span_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_span_id */
  {__pyx_k_spawn, sizeof(__pyx_k_spawn), 0, 1, 1}, /* PyObject cname: __pyx_n_u_spawn */
  {__pyx_k_spawn_callback_async, sizeof(__pyx_k_spawn_callback_async), 0, 1, 1}, /* PyObject cname: __pyx_n_u_spawn_callback_async */
  {__pyx_k_spawn_callback_in_thread, sizeof(__pyx_k_spawn_callback_in_thread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_spawn_callback_in_thread */
  {__pyx_k_spawn_greenlets, sizeof(__pyx_k_spawn_greenlets), 0, 1, 1}, /* PyObject cname: __pyx_n_u_spawn_greenlets */
  {__pyx_k_spec, sizeof(__pyx_k_spec), 0, 1, 1}, /* PyObject cname: __pyx_n_u_spec */
  {__pyx_k_src_python_grpcio_grpc__cython, sizeof(__pyx_k_src_python_grpcio_grpc__cython), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython */
  {__pyx_k_src_python_grpcio_grpc__cython_10, sizeof(__pyx_k_src_python_grpcio_grpc__cython_10), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_10 */
  {__pyx_k_src_python_grpcio_grpc__cython_11, sizeof(__pyx_k_src_python_grpcio_grpc__cython_11), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_11 */
  {__pyx_k_src_python_grpcio_grpc__cython_12, sizeof(__pyx_k_src_python_grpcio_grpc__cython_12), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_12 */
  {__pyx_k_src_python_grpcio_grpc__cython_13, sizeof(__pyx_k_src_python_grpcio_grpc__cython_13), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_13 */
  {__pyx_k_src_python_grpcio_grpc__cython_14, sizeof(__pyx_k_src_python_grpcio_grpc__cython_14), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_14 */
  {__pyx_k_src_python_grpcio_grpc__cython_15, sizeof(__pyx_k_src_python_grpcio_grpc__cython_15), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_15 */
  {__pyx_k_src_python_grpcio_grpc__cython_16, sizeof(__pyx_k_src_python_grpcio_grpc__cython_16), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_16 */
  {__pyx_k_src_python_grpcio_grpc__cython_17, sizeof(__pyx_k_src_python_grpcio_grpc__cython_17), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_17 */
  {__pyx_k_src_python_grpcio_grpc__cython_18, sizeof(__pyx_k_src_python_grpcio_grpc__cython_18), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_18 */
  {__pyx_k_src_python_grpcio_grpc__cython_19, sizeof(__pyx_k_src_python_grpcio_grpc__cython_19), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_19 */
  {__pyx_k_src_python_grpcio_grpc__cython_2, sizeof(__pyx_k_src_python_grpcio_grpc__cython_2), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_2 */
  {__pyx_k_src_python_grpcio_grpc__cython_20, sizeof(__pyx_k_src_python_grpcio_grpc__cython_20), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_20 */
  {__pyx_k_src_python_grpcio_grpc__cython_21, sizeof(__pyx_k_src_python_grpcio_grpc__cython_21), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_21 */
  {__pyx_k_src_python_grpcio_grpc__cython_22, sizeof(__pyx_k_src_python_grpcio_grpc__cython_22), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_22 */
  {__pyx_k_src_python_grpcio_grpc__cython_23, sizeof(__pyx_k_src_python_grpcio_grpc__cython_23), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_23 */
  {__pyx_k_src_python_grpcio_grpc__cython_24, sizeof(__pyx_k_src_python_grpcio_grpc__cython_24), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_24 */
  {__pyx_k_src_python_grpcio_grpc__cython_3, sizeof(__pyx_k_src_python_grpcio_grpc__cython_3), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_3 */
  {__pyx_k_src_python_grpcio_grpc__cython_4, sizeof(__pyx_k_src_python_grpcio_grpc__cython_4), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_4 */
  {__pyx_k_src_python_grpcio_grpc__cython_5, sizeof(__pyx_k_src_python_grpcio_grpc__cython_5), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_5 */
  {__pyx_k_src_python_grpcio_grpc__cython_6, sizeof(__pyx_k_src_python_grpcio_grpc__cython_6), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_6 */
  {__pyx_k_src_python_grpcio_grpc__cython_7, sizeof(__pyx_k_src_python_grpcio_grpc__cython_7), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_7 */
  {__pyx_k_src_python_grpcio_grpc__cython_8, sizeof(__pyx_k_src_python_grpcio_grpc__cython_8), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_8 */
  {__pyx_k_src_python_grpcio_grpc__cython_9, sizeof(__pyx_k_src_python_grpcio_grpc__cython_9), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_src_python_grpcio_grpc__cython_9 */
  {__pyx_k_ssl_session_cache, sizeof(__pyx_k_ssl_session_cache), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ssl_session_cache */
  {__pyx_k_ssl_target_name_override, sizeof(__pyx_k_ssl_target_name_override), 0, 1, 1}, /* PyObject cname: __pyx_n_u_ssl_target_name_override */
  {__pyx_k_start, sizeof(__pyx_k_start), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start */
  {__pyx_k_start_batch, sizeof(__pyx_k_start_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_batch */
  {__pyx_k_start_channel_id, sizeof(__pyx_k_start_channel_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_channel_id */
  {__pyx_k_start_client_batch, sizeof(__pyx_k_start_client_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_client_batch */
  {__pyx_k_start_server_batch, sizeof(__pyx_k_start_server_batch), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_server_batch */
  {__pyx_k_start_server_id, sizeof(__pyx_k_start_server_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_server_id */
  {__pyx_k_start_shutting_down, sizeof(__pyx_k_start_shutting_down), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_shutting_down */
  {__pyx_k_start_socket_id, sizeof(__pyx_k_start_socket_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_start_socket_id */
  {__pyx_k_started_tag, sizeof(__pyx_k_started_tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_started_tag */
  {__pyx_k_started_tags, sizeof(__pyx_k_started_tags), 0, 1, 1}, /* PyObject cname: __pyx_n_u_started_tags */
  {__pyx_k_state, sizeof(__pyx_k_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_state */
  {__pyx_k_status, sizeof(__pyx_k_status), 0, 1, 1}, /* PyObject cname: __pyx_n_u_status */
  {__pyx_k_status_code, sizeof(__pyx_k_status_code), 0, 1, 1}, /* PyObject cname: __pyx_n_u_status_code */
  {__pyx_k_status_task, sizeof(__pyx_k_status_task), 0, 1, 1}, /* PyObject cname: __pyx_n_u_status_task */
  {__pyx_k_stored_ctx, sizeof(__pyx_k_stored_ctx), 0, 1, 1}, /* PyObject cname: __pyx_n_u_stored_ctx */
  {__pyx_k_str, sizeof(__pyx_k_str), 0, 1, 1}, /* PyObject cname: __pyx_n_u_str */
  {__pyx_k_str_2, sizeof(__pyx_k_str_2), 0, 1, 1}, /* PyObject cname: __pyx_n_u_str_2 */
  {__pyx_k_stream_handler, sizeof(__pyx_k_stream_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_stream_handler */
  {__pyx_k_stream_stream, sizeof(__pyx_k_stream_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_stream_stream */
  {__pyx_k_stream_unary, sizeof(__pyx_k_stream_unary), 0, 1, 1}, /* PyObject cname: __pyx_n_u_stream_unary */
  {__pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_stringsource */
  {__pyx_k_subchannel_id, sizeof(__pyx_k_subchannel_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_subchannel_id */
  {__pyx_k_success, sizeof(__pyx_k_success), 0, 1, 1}, /* PyObject cname: __pyx_n_u_success */
  {__pyx_k_sync_servicer_context, sizeof(__pyx_k_sync_servicer_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_sync_servicer_context */
  {__pyx_k_sys, sizeof(__pyx_k_sys), 0, 1, 1}, /* PyObject cname: __pyx_n_u_sys */
  {__pyx_k_t, sizeof(__pyx_k_t), 0, 1, 1}, /* PyObject cname: __pyx_n_u_t */
  {__pyx_k_tag, sizeof(__pyx_k_tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_tag */
  {__pyx_k_target, sizeof(__pyx_k_target), 0, 1, 1}, /* PyObject cname: __pyx_n_u_target */
  {__pyx_k_task, sizeof(__pyx_k_task), 0, 1, 1}, /* PyObject cname: __pyx_n_u_task */
  {__pyx_k_test, sizeof(__pyx_k_test), 0, 1, 1}, /* PyObject cname: __pyx_n_u_test */
  {__pyx_k_the_server_has_already_started, sizeof(__pyx_k_the_server_has_already_started), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_the_server_has_already_started */
  {__pyx_k_the_server_hasn_t_started_yet, sizeof(__pyx_k_the_server_hasn_t_started_yet), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_the_server_hasn_t_started_yet */
  {__pyx_k_the_server_must_be_shutting_down, sizeof(__pyx_k_the_server_must_be_shutting_down), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_the_server_must_be_shutting_down */
  {__pyx_k_thread, sizeof(__pyx_k_thread), 0, 1, 1}, /* PyObject cname: __pyx_n_u_thread */
  {__pyx_k_thread_pool, sizeof(__pyx_k_thread_pool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_thread_pool */
  {__pyx_k_threading, sizeof(__pyx_k_threading), 0, 1, 1}, /* PyObject cname: __pyx_n_u_threading */
  {__pyx_k_threadpool, sizeof(__pyx_k_threadpool), 0, 1, 1}, /* PyObject cname: __pyx_n_u_threadpool */
  {__pyx_k_throw, sizeof(__pyx_k_throw), 0, 1, 1}, /* PyObject cname: __pyx_n_u_throw */
  {__pyx_k_time, sizeof(__pyx_k_time), 0, 1, 1}, /* PyObject cname: __pyx_n_u_time */
  {__pyx_k_time_remaining, sizeof(__pyx_k_time_remaining), 0, 1, 1}, /* PyObject cname: __pyx_n_u_time_remaining */
  {__pyx_k_timeout, sizeof(__pyx_k_timeout), 0, 1, 1}, /* PyObject cname: __pyx_n_u_timeout */
  {__pyx_k_timeout_secs, sizeof(__pyx_k_timeout_secs), 0, 1, 1}, /* PyObject cname: __pyx_n_u_timeout_secs */
  {__pyx_k_to_call, sizeof(__pyx_k_to_call), 0, 1, 1}, /* PyObject cname: __pyx_n_u_to_call */
  {__pyx_k_to_channel_arg, sizeof(__pyx_k_to_channel_arg), 0, 1, 1}, /* PyObject cname: __pyx_n_u_to_channel_arg */
  {__pyx_k_too_many_operations, sizeof(__pyx_k_too_many_operations), 0, 1, 1}, /* PyObject cname: __pyx_n_u_too_many_operations */
  {__pyx_k_trace_id, sizeof(__pyx_k_trace_id), 0, 1, 1}, /* PyObject cname: __pyx_n_u_trace_id */
  {__pyx_k_traceback, sizeof(__pyx_k_traceback), 0, 1, 1}, /* PyObject cname: __pyx_n_u_traceback */
  {__pyx_k_tracing_enabled, sizeof(__pyx_k_tracing_enabled), 0, 1, 1}, /* PyObject cname: __pyx_n_u_tracing_enabled */
  {__pyx_k_trailing_metadata, sizeof(__pyx_k_trailing_metadata), 0, 1, 1}, /* PyObject cname: __pyx_n_u_trailing_metadata */
  {__pyx_k_transient_failure, sizeof(__pyx_k_transient_failure), 0, 1, 1}, /* PyObject cname: __pyx_n_u_transient_failure */
  {__pyx_k_true, sizeof(__pyx_k_true), 0, 1, 1}, /* PyObject cname: __pyx_n_u_true */
  {__pyx_k_try_to_connect, sizeof(__pyx_k_try_to_connect), 0, 1, 1}, /* PyObject cname: __pyx_n_u_try_to_connect */
  {__pyx_k_type, sizeof(__pyx_k_type), 0, 1, 1}, /* PyObject cname: __pyx_n_u_type */
  {__pyx_k_typing, sizeof(__pyx_k_typing), 0, 1, 1}, /* PyObject cname: __pyx_n_u_typing */
  {__pyx_k_uds, sizeof(__pyx_k_uds), 0, 1, 1}, /* PyObject cname: __pyx_n_u_uds */
  {__pyx_k_unary_handler, sizeof(__pyx_k_unary_handler), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unary_handler */
  {__pyx_k_unary_stream, sizeof(__pyx_k_unary_stream), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unary_stream */
  {__pyx_k_unary_unary, sizeof(__pyx_k_unary_unary), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unary_unary */
  {__pyx_k_unauthenticated, sizeof(__pyx_k_unauthenticated), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unauthenticated */
  {__pyx_k_unavailable, sizeof(__pyx_k_unavailable), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unavailable */
  {__pyx_k_unimplemented, sizeof(__pyx_k_unimplemented), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unimplemented */
  {__pyx_k_uninstall_context, sizeof(__pyx_k_uninstall_context), 0, 1, 1}, /* PyObject cname: __pyx_n_u_uninstall_context */
  {__pyx_k_unknown, sizeof(__pyx_k_unknown), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unknown */
  {__pyx_k_unused_future, sizeof(__pyx_k_unused_future), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unused_future */
  {__pyx_k_unused_task, sizeof(__pyx_k_unused_task), 0, 1, 1}, /* PyObject cname: __pyx_n_u_unused_task */
  {__pyx_k_update, sizeof(__pyx_k_update), 0, 1, 1}, /* PyObject cname: __pyx_n_u_update */
  {__pyx_k_upper, sizeof(__pyx_k_upper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_upper */
  {__pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 1, 1}, /* PyObject cname: __pyx_n_u_use_setstate */
  {__pyx_k_used_mask, sizeof(__pyx_k_used_mask), 0, 1, 1}, /* PyObject cname: __pyx_n_u_used_mask */
  {__pyx_k_user_tag, sizeof(__pyx_k_user_tag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_user_tag */
  {__pyx_k_utf8, sizeof(__pyx_k_utf8), 0, 1, 1}, /* PyObject cname: __pyx_n_u_utf8 */
  {__pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 1, 0}, /* PyObject cname: __pyx_kp_u_utf_8 */
  {__pyx_k_value, sizeof(__pyx_k_value), 0, 1, 1}, /* PyObject cname: __pyx_n_u_value */
  {__pyx_k_values, sizeof(__pyx_k_values), 0, 1, 1}, /* PyObject cname: __pyx_n_u_values */
  {__pyx_k_wait, sizeof(__pyx_k_wait), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait */
  {__pyx_k_wait_for, sizeof(__pyx_k_wait_for), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait_for */
  {__pyx_k_wait_for_ready, sizeof(__pyx_k_wait_for_ready), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait_for_ready */
  {__pyx_k_wait_for_ready_explicitly_set, sizeof(__pyx_k_wait_for_ready_explicitly_set), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait_for_ready_explicitly_set */
  {__pyx_k_wait_for_termination, sizeof(__pyx_k_wait_for_termination), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait_for_termination */
  {__pyx_k_wait_time, sizeof(__pyx_k_wait_time), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wait_time */
  {__pyx_k_warning, sizeof(__pyx_k_warning), 0, 1, 1}, /* PyObject cname: __pyx_n_u_warning */
  {__pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 1, 1}, /* PyObject cname: __pyx_n_u_warnings */
  {__pyx_k_watch_connectivity_state, sizeof(__pyx_k_watch_connectivity_state), 0, 1, 1}, /* PyObject cname: __pyx_n_u_watch_connectivity_state */
  {__pyx_k_wrap, sizeof(__pyx_k_wrap), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wrap */
  {__pyx_k_wrapper, sizeof(__pyx_k_wrapper), 0, 1, 1}, /* PyObject cname: __pyx_n_u_wrapper */
  {__pyx_k_write, sizeof(__pyx_k_write), 0, 1, 1}, /* PyObject cname: __pyx_n_u_write */
  {__pyx_k_write_flag, sizeof(__pyx_k_write_flag), 0, 1, 1}, /* PyObject cname: __pyx_n_u_write_flag */
  {__pyx_k_xds, sizeof(__pyx_k_xds), 0, 1, 1}, /* PyObject cname: __pyx_n_u_xds */
  {__pyx_k_xds_server_credentials, sizeof(__pyx_k_xds_server_credentials), 0, 1, 1}, /* PyObject cname: __pyx_n_u_xds_server_credentials */
  {__pyx_k_yes, sizeof(__pyx_k_yes), 0, 1, 1}, /* PyObject cname: __pyx_n_u_yes */
  {__pyx_k_yield_to_queue, sizeof(__pyx_k_yield_to_queue), 0, 1, 1}, /* PyObject cname: __pyx_n_u_yield_to_queue */
  {0, 0, 0, 0, 0}
};
/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry const *t, PyObject **target, const char* const* encoding_names);

/* #### Code section: cached_builtins ### */

static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 106, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(2, 24, __pyx_L1_error)
  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(2, 49, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(3, 74, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(4, 26, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(5, 35, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_range); if (!__pyx_builtin_range) __PYX_ERR(5, 302, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(6, 31, __pyx_L1_error)
  __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(6, 31, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(6, 113, __pyx_L1_error)
  __pyx_builtin_StopAsyncIteration = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_StopAsyncIteration); if (!__pyx_builtin_StopAsyncIteration) __PYX_ERR(6, 136, __pyx_L1_error)
  __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(6, 188, __pyx_L1_error)
  __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(7, 108, __pyx_L1_error)
  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_id); if (!__pyx_builtin_id) __PYX_ERR(8, 58, __pyx_L1_error)
  __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(9, 701, __pyx_L1_error)
  __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(9, 701, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":81
 * 
 *   cdef void maybe_save_registered_method(self, bytes method_name) except *:
 *     with _observability.get_plugin() as plugin:             # <<<<<<<<<<<<<<
 *       if plugin and plugin.observability_enabled:
 *         plugin.save_registered_method(method_name)
*/
  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(12, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":99
 *       break
 *     fn = to_call[0]
 *     args = to_call[1:]             # <<<<<<<<<<<<<<
 *     fn(*args)
 * 
*/
  __pyx_mstate_global->__pyx_slice[0] = PySlice_New(__pyx_mstate_global->__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(28, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi":123
 * 
 *   import gevent
 *   import gevent.pool             # <<<<<<<<<<<<<<
 * 
 *   gevent_hub = gevent.hub
*/
  __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_gevent, __pyx_mstate_global->__pyx_n_u_pool); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(28, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/common.pyx.pxi":188
 *             with warnings.catch_warnings():
 *                 # Convert DeprecationWarning to errors so we can capture them with except
 *                 warnings.simplefilter("error", DeprecationWarning)             # <<<<<<<<<<<<<<
 *                 try:
 *                     return asyncio.get_event_loop_policy().get_event_loop()
*/
  __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_error, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(6, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
*/
  __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(3, __pyx_mstate_global->__pyx_int_238750788, __pyx_mstate_global->__pyx_int_228825662, __pyx_mstate_global->__pyx_int_222419149); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);
  __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(3, __pyx_mstate_global->__pyx_int_171651213, __pyx_mstate_global->__pyx_int_118587260, __pyx_mstate_global->__pyx_int_171381981); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(10, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi":521
 *       return target
 * 
 *   def integrated_call(             # <<<<<<<<<<<<<<
 *       self, int flags, method, host, object deadline, object metadata,
 *       CallCredentials credentials, operationses_and_tags,
*/
  __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(12, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi":127
 *   # We name this 'poll' to avoid problems with CPython's expectations for
 *   # 'special' methods (like next and __next__).
 *   def poll(self, deadline=None):             # <<<<<<<<<<<<<<
 *     global g_gevent_activated
 *     if g_gevent_activated:
*/
  __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(15, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/metadata.pyx.pxi":24
 * 
 * 
 * _Metadatum = collections.namedtuple('_Metadatum', ('key', 'value',))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_key, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]);
  __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_Metadatum, __pyx_mstate_global->__pyx_tuple[7]); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(18, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi":141
 *     self.registered_methods[method_bytes] = registered_method
 * 
 *   def start(self, backup_queue=True):             # <<<<<<<<<<<<<<
 *     """Start the Cython gRPC Server.
 * 
*/
  __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(1, Py_True); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(23, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":33
 * # This flag is also not supported for non-native IO manager.
 * _GRPC_ENABLE_FORK_SUPPORT = (
 *     os.environ.get('GRPC_ENABLE_FORK_SUPPORT', '0')             # <<<<<<<<<<<<<<
 *         .lower() in _TRUE_VALUES)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[10] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_GRPC_ENABLE_FORK_SUPPORT_2, __pyx_mstate_global->__pyx_kp_u_0); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(1, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[10]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[10]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":106
 * 
 * 
 * class ForkManagedThread(object):             # <<<<<<<<<<<<<<
 *     def __init__(self, target, args=()):
 *         if _GRPC_ENABLE_FORK_SUPPORT:
*/
  __pyx_mstate_global->__pyx_tuple[11] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[11])) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[11]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[11]);
  __pyx_mstate_global->__pyx_tuple[12] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[12])) __PYX_ERR(1, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[12]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[12]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":107
 * 
 * class ForkManagedThread(object):
 *     def __init__(self, target, args=()):             # <<<<<<<<<<<<<<
 *         if _GRPC_ENABLE_FORK_SUPPORT:
 *             def managed_target(*args):
*/
  __pyx_mstate_global->__pyx_tuple[13] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[13])) __PYX_ERR(1, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[13]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[13]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":171
 * 
 * 
 * class _ActiveThreadCount(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self._num_active_threads = 0
*/
  __pyx_mstate_global->__pyx_tuple[14] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[14])) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[14]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[14]);
  __pyx_mstate_global->__pyx_tuple[15] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[15])) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[15]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[15]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi":203
 * 
 * 
 * class _ForkState(object):             # <<<<<<<<<<<<<<
 *     def __init__(self):
 *         self.fork_in_progress_condition = threading.Condition()
*/
  __pyx_mstate_global->__pyx_tuple[16] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[16]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[16]);
  __pyx_mstate_global->__pyx_tuple[17] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(1, 203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[17]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[17]);

  /* "src/python/grpcio/grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi":17
 * import enum
 * 
 * cdef str _GRPC_ASYNCIO_ENGINE = os.environ.get('GRPC_ASYNCIO_ENGINE', 'poller').upper()             # <<<<<<<<<<<<<<
 * cdef _AioState _global_aio_state = _AioState()
 * 
*/
  __pyx_mstate_global->__pyx_tuple[18] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_GRPC_ASYNCIO_ENGINE, __pyx_mstate_global->__pyx_n_u_poller); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(33, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[18]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[18]);
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_get.method_name = &__pyx_mstate->__pyx_n_u_get;
  __pyx_mstate->__pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_keys.method_name = &__pyx_mstate->__pyx_n_u_keys;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
  if (__Pyx_InitStrings(__pyx_string_tab, __pyx_mstate->__pyx_string_tab, __pyx_string_tab_encodings) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_mstate->__pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_mstate->__pyx_float_1_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_0 = PyLong_FromLong(0); if (unlikely(!__pyx_mstate->__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_1 = PyLong_FromLong(1); if (unlikely(!__pyx_mstate->__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_2 = PyLong_FromLong(2); if (unlikely(!__pyx_mstate->__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_5 = PyLong_FromLong(5); if (unlikely(!__pyx_mstate->__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_10 = PyLong_FromLong(10); if (unlikely(!__pyx_mstate->__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_1000 = PyLong_FromLong(1000); if (unlikely(!__pyx_mstate->__pyx_int_1000)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_1500 = PyLong_FromLong(1500); if (unlikely(!__pyx_mstate->__pyx_int_1500)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_118587260 = PyLong_FromLong(118587260L); if (unlikely(!__pyx_mstate->__pyx_int_118587260)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_171381981 = PyLong_FromLong(171381981L); if (unlikely(!__pyx_mstate->__pyx_int_171381981)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_171651213 = PyLong_FromLong(171651213L); if (unlikely(!__pyx_mstate->__pyx_int_171651213)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_222419149 = PyLong_FromLong(222419149L); if (unlikely(!__pyx_mstate->__pyx_int_222419149)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_228825662 = PyLong_FromLong(228825662L); if (unlikely(!__pyx_mstate->__pyx_int_228825662)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_int_238750788 = PyLong_FromLong(238750788L); if (unlikely(!__pyx_mstate->__pyx_int_238750788)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_codeobjects ### */
typedef struct {
    unsigned int argcount : 4;
    unsigned int num_posonly_args : 1;
    unsigned int num_kwonly_args : 1;
    unsigned int nlocals : 4;
    unsigned int flags : 10;
    unsigned int first_line : 11;
    unsigned int line_table_length : 13;
} __Pyx_PyCode_New_function_description;
/* NewCodeObj.proto */
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        const char *line_table,
        PyObject *tuple_dedup_map
);


static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
  PyObject* tuple_dedup_map = PyDict_New();
  if (unlikely(!tuple_dedup_map)) return -1;
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67, 7};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_wrap, __pyx_k_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_latent_event_arg};
    __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_wrap, __pyx_k_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67, 9};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_wrap, __pyx_k_A_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cb, __pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_wrap, __pyx_k_A_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 340, 21};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_started_tags, __pyx_mstate->__pyx_n_u_started_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_on_success, __pyx_k_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 380, 24};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_on_success, __pyx_k_A_T_t3I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 383, 47};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_on_failure, __pyx_k_A_d_l_0_q_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 400, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_started_tags};
    __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_on_success, __pyx_k_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 530, 22};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_on_success, __pyx_k_A_WA_AT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 48, 95};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_status, __pyx_mstate->__pyx_n_u_error_details, __pyx_mstate->__pyx_n_u_c_error_details};
    __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_callback, __pyx_k_WA_wc_1_q_q_l_2_a_fCxq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 70, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_index};
    __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_3, __pyx_mstate->__pyx_n_u_genexpr, __pyx_k__14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS), 52, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_run_2, __pyx_k_t1IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS), 57, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_run_2, __pyx_k_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS), 109, 22};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_managed_target, __pyx_k_A_A_3_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR), 123, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_agen, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_future, __pyx_mstate->__pyx_n_u_response};
    __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_async_generator_to_generator, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_ASYNC_GENERATOR), 141, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_gen, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_thread_pool, __pyx_mstate->__pyx_n_u_queue, __pyx_mstate->__pyx_n_u_yield_to_queue, __pyx_mstate->__pyx_n_u_yield_to_queue, __pyx_mstate->__pyx_n_u_future, __pyx_mstate->__pyx_n_u_response};
    __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_generator_to_async_generator, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 153, 56};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_item};
    __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_yield_to_queue, __pyx_k_A_0_d_7_wa_AU_avU, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 77, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_batch_operation_tag, __pyx_mstate->__pyx_n_u_future, __pyx_mstate->__pyx_n_u_wrapper, __pyx_mstate->__pyx_n_u_error, __pyx_mstate->__pyx_n_u_grpc_call_error_string, __pyx_mstate->__pyx_n_u_c_event};
    __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_execute_batch, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 115, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_receive_op, __pyx_mstate->__pyx_n_u_ops, __pyx_mstate->__pyx_n_u_e};
    __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_receive_message, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 139, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_message, __pyx_mstate->__pyx_n_u_send_initial_metadata_op, __pyx_mstate->__pyx_n_u_write_flag, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_send_message, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 151, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_flags, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_send_initial_metadata, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 162, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_receive_initial_metadata, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 169, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_grpc_call_wrapper, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_mstate->__pyx_n_u_send_initial_metadata_op, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_7, __pyx_mstate->__pyx_n_u_send_error_status_from_server, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 235, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_future};
    __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_status, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 258, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_future};
    __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_initial_metadata, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 296, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_request, __pyx_mstate->__pyx_n_u_outbound_initial_metadata, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_ops, __pyx_mstate->__pyx_n_u_initial_metadata_op, __pyx_mstate->__pyx_n_u_send_message_op, __pyx_mstate->__pyx_n_u_send_close_op, __pyx_mstate->__pyx_n_u_receive_initial_metadata_op, __pyx_mstate->__pyx_n_u_receive_message_op, __pyx_mstate->__pyx_n_u_receive_status_on_client_op, __pyx_mstate->__pyx_n_u_code};
    __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_unary_unary, __pyx_k__17, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 347, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_handle_status_once_received, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 364, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_received_message};
    __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_receive_serialized_message, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 381, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_message};
    __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_send_serialized_message, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 389, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_send_receive_close, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 395, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_request, __pyx_mstate->__pyx_n_u_outbound_initial_metadata, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_status_task, __pyx_mstate->__pyx_n_u_outbound_ops, __pyx_mstate->__pyx_n_u_initial_metadata_op, __pyx_mstate->__pyx_n_u_send_message_op, __pyx_mstate->__pyx_n_u_send_close_op, __pyx_mstate->__pyx_n_u_batch_error};
    __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_initiate_unary_stream, __pyx_k__18, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 437, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_outbound_initial_metadata, __pyx_mstate->__pyx_n_u_metadata_sent_observer, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_inbound_ops, __pyx_mstate->__pyx_n_u_receive_message_op, __pyx_mstate->__pyx_n_u_receive_status_on_client_op, __pyx_mstate->__pyx_n_u_code};
    __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_stream_unary, __pyx_k__18, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 496, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_outbound_initial_metadata, __pyx_mstate->__pyx_n_u_metadata_sent_observer, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_status_task, __pyx_mstate->__pyx_n_u_batch_error};
    __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_initiate_stream_stream, __pyx_k__18, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 71, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_last_observed_state, __pyx_mstate->__pyx_n_u_deadline, __pyx_mstate->__pyx_n_u_c_deadline, __pyx_mstate->__pyx_n_u_future, __pyx_mstate->__pyx_n_u_wrapper};
    __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_watch_connectivity_state, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 127, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_raw_message};
    __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_read, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 140, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_message};
    __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_write, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 150, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_metadata};
    __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_send_initial_metadata_2, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 164, 8};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_mstate->__pyx_n_u_actual_code};
    __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_abort, __pyx_k__19, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 203, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_status};
    __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_abort_with_status, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 354, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_interceptors, __pyx_mstate->__pyx_n_u_query_handler, __pyx_mstate->__pyx_n_u_handler_call_details, __pyx_mstate->__pyx_n_u_interceptor, __pyx_mstate->__pyx_n_u_continuation};
    __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_run_interceptor, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 370, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_method, __pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_generic_handlers, __pyx_mstate->__pyx_n_u_interceptors, __pyx_mstate->__pyx_n_u_query_handlers, __pyx_mstate->__pyx_n_u_query_handlers, __pyx_mstate->__pyx_n_u_handler_call_details};
    __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_find_method_handler, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 372, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_handler_call_details, __pyx_mstate->__pyx_n_u_generic_handler, __pyx_mstate->__pyx_n_u_method_handler};
    __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_query_handlers, __pyx_k_A_q__HAQ_gQ_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 389, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_unary_handler, __pyx_mstate->__pyx_n_u_request, __pyx_mstate->__pyx_n_u_servicer_context, __pyx_mstate->__pyx_n_u_response_serializer, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_response_message, __pyx_mstate->__pyx_n_u_sync_servicer_context, __pyx_mstate->__pyx_n_u_callback, __pyx_mstate->__pyx_n_u_response_raw, __pyx_mstate->__pyx_n_u_finish_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_finish_handler_with_unary_respo, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 460, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_stream_handler, __pyx_mstate->__pyx_n_u_request, __pyx_mstate->__pyx_n_u_servicer_context, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_async_response_generator, __pyx_mstate->__pyx_n_u_response_message, __pyx_mstate->__pyx_n_u_sync_servicer_context, __pyx_mstate->__pyx_n_u_gen, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_finish_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_finish_handler_with_stream_resp, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 530, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_method_handler, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_request_raw, __pyx_mstate->__pyx_n_u_request_message, __pyx_mstate->__pyx_n_u_servicer_context};
    __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_unary_unary_rpc, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 564, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_method_handler, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_request_raw, __pyx_mstate->__pyx_n_u_request_message, __pyx_mstate->__pyx_n_u_servicer_context};
    __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_unary_stream_rpc, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_ASYNC_GENERATOR), 603, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_message};
    __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_async_message_receiver, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 619, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_anext, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 623, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_method_handler, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_servicer_context, __pyx_mstate->__pyx_n_u_request_iterator};
    __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_stream_unary_rpc, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 655, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_method_handler, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_servicer_context, __pyx_mstate->__pyx_n_u_request_iterator};
    __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_stream_stream_rpc, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 686, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_rpc_coro, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_e, __pyx_mstate->__pyx_n_u_status_code};
    __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_exceptions, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 744, 41};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_unused_task, __pyx_mstate->__pyx_n_u_callback};
    __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_callbacks, __pyx_k_A_IQ_Q_C7_9T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 755, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rpc_task, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_op, __pyx_mstate->__pyx_n_u_ops};
    __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_cancellation_from_core, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 772, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_rpc_coro, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_rpc_task};
    __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_schedule_rpc_coro, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 795, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_generic_handlers, __pyx_mstate->__pyx_n_u_interceptors, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_concurrency_exceeded, __pyx_mstate->__pyx_n_u_method_handler};
    __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_handle_rpc, __pyx_k_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 942, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_error, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_future, __pyx_mstate->__pyx_n_u_wrapper};
    __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_request_call, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 962, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_server_started, __pyx_mstate->__pyx_n_u_rpc_state, __pyx_mstate->__pyx_n_u_rpc_tasks, __pyx_mstate->__pyx_n_u_concurrency_exceeded, __pyx_mstate->__pyx_n_u_rpc_coro, __pyx_mstate->__pyx_n_u_rpc_task};
    __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_server_main_loop, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 1022, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_server_started};
    __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_start, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 1036, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_start_shutting_down, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 1053, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_grace};
    __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_shutdown, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_COROUTINE), 1093, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_timeout};
    __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_wait_for_termination, __pyx_k__16, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24, 93};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_tag, __pyx_mstate->__pyx_n_u_retain_self, __pyx_mstate->__pyx_n_u_batch_operation_tag, __pyx_mstate->__pyx_n_u_error};
    __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_start_batch, __pyx_k_t4q_Jaq_22DA_2_xq_Qa_1_i_2EQ_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 38, 19};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_start_client_batch, __pyx_k_4_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 43, 17};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_start_server_batch, __pyx_k_4_A_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 46, 142};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_error_code, __pyx_mstate->__pyx_n_u_details, __pyx_mstate->__pyx_n_u_result, __pyx_mstate->__pyx_n_u_c_details};
    __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_cancel, __pyx_k_l_1_t4q_Jaq_6_1_Jaq_1_Q_WAQ_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69, 39};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_call_credentials, __pyx_mstate->__pyx_n_u_c_call_credentials, __pyx_mstate->__pyx_n_u_call_error};
    __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_set_credentials, __pyx_k_55ERq_q_IQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76, 44};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_peer, __pyx_mstate->__pyx_n_u_result};
    __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_peer, __pyx_k_a_q_A_WA_aq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 96, 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_op};
    __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_11, __pyx_mstate->__pyx_n_u_custom_op_on_c_call, __pyx_k_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 326, 24};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_operate, __pyx_k_T_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 330, 20};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_cancel, __pyx_k_1D_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 372, 24};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_operations, __pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_operate, __pyx_k_T_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 376, 20};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_cancel, __pyx_k_1D_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 379, 37};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_on_success, __pyx_mstate->__pyx_n_u_on_success, __pyx_mstate->__pyx_n_u_on_failure, __pyx_mstate->__pyx_n_u_on_failure};
    __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_next_event, __pyx_k_1_T_7_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 513, 42};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_c_target, __pyx_mstate->__pyx_n_u_target};
    __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_target, __pyx_k_WA_WA_wa_aq_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 521, 41};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_flags, __pyx_mstate->__pyx_n_u_method, __pyx_mstate->__pyx_n_u_host, __pyx_mstate->__pyx_n_u_deadline, __pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_credentials, __pyx_mstate->__pyx_n_u_operationses_and_tags, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_registered_call_handle};
    __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_integrated_call, __pyx_k_Q_1_IWHF_Ja_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 529, 60};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_on_success, __pyx_mstate->__pyx_n_u_on_success, __pyx_mstate->__pyx_n_u_queue_deadline};
    __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_next_call_event, __pyx_k_a_t5_2Q_q_1D_WA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 543, 41};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_flags, __pyx_mstate->__pyx_n_u_method, __pyx_mstate->__pyx_n_u_host, __pyx_mstate->__pyx_n_u_deadline, __pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_credentials, __pyx_mstate->__pyx_n_u_operationses_and_tags, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_registered_call_handle};
    __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_segregated_call, __pyx_k_Q_1_IWHF_Ja_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 551, 53};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_try_to_connect};
    __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_check_connectivity_state, __pyx_k_WA_WA_4A_1_j_1_4wa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 559, 19};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_last_observed_state, __pyx_mstate->__pyx_n_u_deadline};
    __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_watch_connectivity_state, __pyx_k_AT_2Gq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 563, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_close, __pyx_k_6_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 566, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_close_on_fork_2, __pyx_k_6_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 569, 54};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_method};
    __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython, __pyx_mstate->__pyx_n_u_get_registered_call_handle, __pyx_k_wgT_2_q_1Jj_Ya_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 41};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_start_channel_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_top_channels, __pyx_k_a_c_j_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_start_server_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_servers, __pyx_k_9_c_j_9_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 32, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_server_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_server, __pyx_k_8_c_j_35Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 39, 52};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_server_id, __pyx_mstate->__pyx_n_u_start_socket_id, __pyx_mstate->__pyx_n_u_max_results, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_server_sockets, __pyx_k_c_j_6a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 52, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_channel_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_channel, __pyx_k_9_c_j_47q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_subchannel_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_subchannel, __pyx_k_AQ_c_j_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 66, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_socket_id, __pyx_mstate->__pyx_n_u_c_returned_str};
    __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_12, __pyx_mstate->__pyx_n_u_channelz_get_socket, __pyx_k_8_c_j_36a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 27};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_client_config_in_slice, __pyx_mstate->__pyx_n_u_result};
    __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_13, __pyx_mstate->__pyx_n_u_dump_xds_configs, __pyx_k_6a_AQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17, 34};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_cb_func, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_t};
    __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_spawn_callback_in_thread, __pyx_k_q_y_Q_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24, 10};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_callback_func};
    __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_set_async_callback_func, __pyx_k__20, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_callback, __pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_spawn_callback_async, __pyx_k_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 97, 27};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_maybe_register_shutdown_handler, __pyx_k_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 86};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_A_G1F_a_vWA_q_q_q_34q_QR_34q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 307, 153};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pem_root_certs, __pyx_mstate->__pyx_n_u_pem_key_cert_pairs, __pyx_mstate->__pyx_n_u_force_client_auth, __pyx_mstate->__pyx_n_u_credentials, __pyx_mstate->__pyx_n_u_c_pem_root_certs, __pyx_mstate->__pyx_n_u_c_cert_config, __pyx_mstate->__pyx_n_u_c_options};
    __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_server_credentials_ssl, __pyx_k_q_t1A_8_q_q_AQ_s_1_I_1_1_k_q_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 332, 119};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pem_root_certs, __pyx_mstate->__pyx_n_u_pem_key_cert_pairs, __pyx_mstate->__pyx_n_u_cert_config};
    __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_server_certificate_config_ssl, __pyx_k_q_t1A_DA_q_q_6aq_s_1_I_Gq_Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 346, 122};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_initial_cert_config, __pyx_mstate->__pyx_n_u_cert_config_fetcher, __pyx_mstate->__pyx_n_u_force_client_auth, __pyx_mstate->__pyx_n_u_credentials, __pyx_mstate->__pyx_n_u_c_options};
    __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_server_credentials_ssl_dynamic_c, __pyx_k_T_1_Q_1_T_1A_8_A_A_8_MQ_1_MQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 420, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_local_connect_type};
    __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_channel_credentials_local, __pyx_k__21, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 88};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_A_G1F_a_vWA_q_q_q_4q_RYYZ_4q_RS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_8_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 428, 10};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_channel_credentials_insecure, __pyx_k_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 431, 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_local_connect_type, __pyx_mstate->__pyx_n_u_credentials};
    __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_server_credentials_local, __pyx_k_8_B_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 436, 34};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_fallback_credentials, __pyx_mstate->__pyx_n_u_credentials};
    __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_xds_server_credentials, __pyx_k_8_AUUV, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 444, 26};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_credentials};
    __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_insecure_server_credentials, __pyx_k_8_EQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 466, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_service_accounts};
    __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_channel_credentials_alts, __pyx_k_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 470, 44};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_credentials, __pyx_mstate->__pyx_n_u_c_options};
    __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_server_credentials_alts, __pyx_k_8_22_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 495, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call_creds};
    __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_2, __pyx_mstate->__pyx_n_u_channel_credentials_compute_engi, __pyx_k__22, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 122, 23};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_deadline};
    __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_14, __pyx_mstate->__pyx_n_u_internal_poll, __pyx_k_4_at, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 127, 43};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_deadline};
    __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_14, __pyx_mstate->__pyx_n_u_poll, __pyx_k_q_a_6H_a_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 134, 22};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_14, __pyx_mstate->__pyx_n_u_shutdown, __pyx_k_AT_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 139, 35};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_14, __pyx_mstate->__pyx_n_u_clear, __pyx_k_t4q_Jaq_e2V3a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 58, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 80, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 99, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 127, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 141, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_initial_metadata, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 150, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 183, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_message, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 192, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 220, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 223, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_code, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 226, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_details, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 229, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_error_string, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 238, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_type, __pyx_k_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 249, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_15, __pyx_mstate->__pyx_n_u_cancelled, __pyx_k_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 170, 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_algorithm};
    __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_enable_algorithm, __pyx_k_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 174, 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_algorithm};
    __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_disable_algorithm, __pyx_k_0_l, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178, 27};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_algorithm, __pyx_mstate->__pyx_n_u_result};
    __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_is_algorithm_enabled, __pyx_k_A_4_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 185, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_to_channel_arg, __pyx_k_Ja, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 192, 21};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_algorithm, __pyx_mstate->__pyx_n_u_name};
    __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_compression_algorithm_name, __pyx_k_1Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 200, 7};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_16, __pyx_mstate->__pyx_n_u_reset_grpc_config_vars, __pyx_k__23, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 36, 113};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_n_u_auth_context, __pyx_mstate->__pyx_n_u_properties, __pyx_mstate->__pyx_n_u_property, __pyx_mstate->__pyx_n_u_identities};
    __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_17, __pyx_mstate->__pyx_n_u_peer_identities, __pyx_k_q_A_Q_1_aq_q_q_y_1_xwc_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 55, 78};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_n_u_auth_context, __pyx_mstate->__pyx_n_u_c_key, __pyx_mstate->__pyx_n_u_key};
    __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_17, __pyx_mstate->__pyx_n_u_peer_identity_key, __pyx_k_q_A_Q_1_7q_V3a_q_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69, 155};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_n_u_auth_context, __pyx_mstate->__pyx_n_u_properties, __pyx_mstate->__pyx_n_u_property, __pyx_mstate->__pyx_n_u_py_auth_context, __pyx_mstate->__pyx_n_u_key};
    __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_17, __pyx_mstate->__pyx_n_u_auth_context, __pyx_k_q_A_Q_1_2_1_A_q_y_1_xvS_T_1_HHA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59, 74};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_call_queue, __pyx_mstate->__pyx_n_u_server_queue, __pyx_mstate->__pyx_n_u_tag, __pyx_mstate->__pyx_n_u_request_call_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_request_call_2, __pyx_k_t4_3d_Jaq_G4q_Jaq_O1A_4_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69, 86};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_call_queue, __pyx_mstate->__pyx_n_u_server_queue, __pyx_mstate->__pyx_n_u_method, __pyx_mstate->__pyx_n_u_tag, __pyx_mstate->__pyx_n_u_request_call_tag, __pyx_mstate->__pyx_n_u_method_bytes};
    __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_request_registered_call, __pyx_k_t4_3d_Jaq_G4q_Jaq_O1A_q_4_WX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124, 50};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_queue};
    __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_register_completion_queue, __pyx_k_t1_Jaq_1_k_31_WAQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 133, 61};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_fully_qualified_method, __pyx_mstate->__pyx_n_u_method_bytes, __pyx_mstate->__pyx_n_u_registered_method};
    __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_register_method, __pyx_k_q_Ct_e1_a_X_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 141, 96};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_backup_queue};
    __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_start, __pyx_k_q_t1_Jaq_q_q_AT_a_q_A_q_Qit5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 161, 115};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_address, __pyx_mstate->__pyx_n_u_server_credentials, __pyx_mstate->__pyx_n_u_result, __pyx_mstate->__pyx_n_u_address_c_string, __pyx_mstate->__pyx_n_u_creds};
    __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_add_http2_port, __pyx_k_l_1_7_1_WAQ_1_q_7q_1D_a_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 189, 71};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_queue, __pyx_mstate->__pyx_n_u_tag};
    __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_shutdown, __pyx_k_uA_Jaq_T_Jaq_Q_wd_Jaq_awa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 206, 40};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_cancel_all_calls, __pyx_k_t4q_Jaq_Q_AT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 218, 129};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_18, __pyx_mstate->__pyx_n_u_destroy, __pyx_k_t_S_T_q_t1_4_c_Qa_l_4_7q_D_e1_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 85};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_A_G1F_a_vWA_q_q_q_T_G1_T_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_event};
    __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_install_context_from_request_cal_2, __pyx_k__24, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_event};
    __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_install_context_from_request_cal, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 25, 2};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_uninstall_context, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 28, 2};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_build_census_context, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 85};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_A_G1F_a_vWA_q_q_q_d_7_WA_d_7_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_1F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call_state, __pyx_mstate->__pyx_n_u_census_ctx};
    __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_set_census_context_on_call, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 37, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_call_state, __pyx_mstate->__pyx_n_u_census_ctx};
    __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_set_instrumentation_context_on_c, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 40, 7};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_19, __pyx_mstate->__pyx_n_u_get_deadline_from_context, __pyx_k__25, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 26, 54};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_observability_plugin, __pyx_mstate->__pyx_n_u_xds, __pyx_mstate->__pyx_n_u_capsule, __pyx_mstate->__pyx_n_u_capsule_ptr};
    __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_20, __pyx_mstate->__pyx_n_u_get_server_call_tracer_factory_a, __pyx_k_UUV_B_4q_Q_ay_3a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34, 12};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_20, __pyx_mstate->__pyx_n_u_clear_server_call_tracer_factory, __pyx_k_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 38, 121};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_event, __pyx_mstate->__pyx_n_u_server_call_tracer, __pyx_mstate->__pyx_n_u_plugin, __pyx_mstate->__pyx_n_u_trace_id, __pyx_mstate->__pyx_n_u_span_id, __pyx_mstate->__pyx_n_u_is_sampled};
    __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_20, __pyx_mstate->__pyx_n_u_maybe_save_server_trace_context, __pyx_k_q_a_uG4vQ_9_J_5PUUV_wavWA_7xt1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 49, 48};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_gevent_increment_channel_count, __pyx_k_q_q_s_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 61, 45};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_gevent_decrement_channel_count, __pyx_k_q_q_s_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 93, 57};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_to_call, __pyx_mstate->__pyx_n_u_fn, __pyx_mstate->__pyx_n_u_args};
    __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_spawn_greenlets, __pyx_k_q_Q_xs_7_1_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 102, 11};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_run_spawn_greenlets, __pyx_k_vQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 105, 35};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_lk};
    __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_shutdown_await_next_greenlet, __pyx_k_q_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 114, 82};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_gevent};
    __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_21, __pyx_mstate->__pyx_n_u_init_grpc_gevent, __pyx_k_vQ_A_q_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15, 23};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_contextvars};
    __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_contextvars_supported, __pyx_k_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 33, 2};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_target};
    __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_run_with_context, __pyx_k__15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50, 19};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_target, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_run_2, __pyx_mstate->__pyx_n_u_run_2};
    __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_run_with_context, __pyx_k_A_k_a_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 56, 10};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_target, __pyx_mstate->__pyx_n_u_run_2, __pyx_mstate->__pyx_n_u_run_2};
    __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_4, __pyx_mstate->__pyx_n_u_run_with_context, __pyx_k_A_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 93, 56};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_fork_handlers_and_grpc_init, __pyx_k_Q_q_t_a_1G1_4A_31_6a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 107, 67};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_target, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_managed_target, __pyx_mstate->__pyx_n_u_managed_target};
    __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_init, __pyx_k_q_1_9G1G3DAEVV_9G1G3DAYeST, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 118, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_daemonic};
    __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_setDaemon, __pyx_k_A_HJa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 121, 26};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_start, __pyx_k_A_1_Q_HF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 126, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_join, __pyx_k_A_HE, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 130, 79};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_postfork_state_to_reset};
    __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_block_if_fork_in_progress, __pyx_k_a_q_t_a_wa_4G1A_Q_2_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142, 17};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_enter_user_request_generator, __pyx_k_q_z, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 147, 22};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_return_from_user_request_generat, __pyx_k_q_z_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 153, 9};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_get_fork_epoch, __pyx_k_a_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 157, 7};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_is_fork_support_enabled, __pyx_k_1_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 161, 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_channel};
    __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_fork_register_channel, __pyx_k_q_9D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 166, 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_channel};
    __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_fork_unregister_channel, __pyx_k_q_9HAQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 172, 21};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_init, __pyx_k_A_1_N_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_increment, __pyx_k_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 180, 36};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_decrement, __pyx_k_A_t_1_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 186, 97};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_timeout_secs, __pyx_mstate->__pyx_n_u_end_time, __pyx_mstate->__pyx_n_u_wait_time};
    __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_await_zero_threads, __pyx_k_A_4uCr_A_4_Ba_5_4_Cq_1_IRt5_S_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 204, 75};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_5, __pyx_mstate->__pyx_n_u_init, __pyx_k_A_Q_IU_q_5Q_N_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 61, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_bool, __pyx_k_A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 64, 7};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_len, __pyx_k_A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67, 10};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_repr, __pyx_k_q_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 70, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_repr_2, __pyx_k_t6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 73, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_str_2, __pyx_k_t6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 110, 59};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_coro, __pyx_mstate->__pyx_n_u_loop, __pyx_mstate->__pyx_n_u_runtime_error};
    __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_schedule_coro_threadsafe, __pyx_k_t_q_1_s_Qa_7_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 177, 74};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_get_working_loop, __pyx_k_A_7_1_Qiq_7_8_7_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 196, 11};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_get_working_loop, __pyx_k_A_woQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 201, 198};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_item};
    __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_6, __pyx_mstate->__pyx_n_u_raise_if_not_valid_trailing_meta, __pyx_k_t7_Jaz_iq_GG___4z_1B_KKccd_3avS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 31, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_22, __pyx_mstate->__pyx_n_u_code, __pyx_k_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_22, __pyx_mstate->__pyx_n_u_details, __pyx_k_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 37, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_22, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_k_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 40, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_22, __pyx_mstate->__pyx_n_u_debug_error_string, __pyx_k_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 34, 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_callback_wrapper, __pyx_mstate->__pyx_n_u_success};
    __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_23, __pyx_mstate->__pyx_n_u_handle_callback_wrapper, __pyx_k_q_0_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 66, 29};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_23, __pyx_mstate->__pyx_n_u_close, __pyx_k_A_4q_t1_E_q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 91, 39};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_loop};
    __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_23, __pyx_mstate->__pyx_n_u_bind_loop, __pyx_k_A_5_4q_q_q_d_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_23, __pyx_mstate->__pyx_n_u_poll_wrapper, __pyx_k_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 143, 156};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_context_loop, __pyx_mstate->__pyx_n_u_data, __pyx_mstate->__pyx_n_u_event, __pyx_mstate->__pyx_n_u_context, __pyx_mstate->__pyx_n_u_loop};
    __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_23, __pyx_mstate->__pyx_n_u_handle_events, __pyx_k_A_1_4_E_U_t7_M_G6_G4q_M_a_87_uCq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 68, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u__5};
    __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_24, __pyx_mstate->__pyx_n_u_grpc_shutdown_wrapper, __pyx_k__26, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 91, 38};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_24, __pyx_mstate->__pyx_n_u_init_grpc_aio, __pyx_k_a_Jc_a_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 104, 43};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_24, __pyx_mstate->__pyx_n_u_shutdown_grpc_aio, __pyx_k_A_a_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69, 151};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_common};
    __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_repr, __pyx_k_q_4t5_q_Ja_4xuCs_A_Ja_9_he1_HHA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 170, 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_callback};
    __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_add_done_callback, __pyx_k_A_4uA_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176, 35};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_time_remaining, __pyx_k_A_4_Q_1_s_k_4uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 182, 101};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_details, __pyx_mstate->__pyx_n_u_details_bytes, __pyx_mstate->__pyx_n_u_c_details, __pyx_mstate->__pyx_n_u_error};
    __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_cancel, __pyx_k_A_Q_L_Q_a_AQ_L_q_HA_A_a_vS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 213, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_done, __pyx_k_A_t9G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 224, 37};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_cancelled, __pyx_k_A_4t5_1_t85_3j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 254, 27};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_is_ok, __pyx_k_A_t5_4t85_3j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276, 21};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_is_locally_cancelled, __pyx_k_A_4q_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 288, 27};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_error_str};
    __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_8, __pyx_mstate->__pyx_n_u_set_internal_error, __pyx_k_A_L_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 61, 37};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_try_to_connect};
    __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_check_connectivity_state, __pyx_k_A_4y_1_A_8_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 103, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_closing, __pyx_k_A_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 106, 18};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_close, __pyx_k_A_Kq_AT, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 110, 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_closed, __pyx_k_A_t9D_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 113, 83};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_method, __pyx_mstate->__pyx_n_u_deadline, __pyx_mstate->__pyx_n_u_python_call_credentials, __pyx_mstate->__pyx_n_u_wait_for_ready, __pyx_mstate->__pyx_n_u_cython_call_credentials};
    __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_9, __pyx_mstate->__pyx_n_u_call, __pyx_k_A_4wa_AQ_7_t4q_j_Q_a_xq_j_0I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 206, 23};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_metadata};
    __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_trailing_metadata, __pyx_k_A_AQ_K_E, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_k_A_t_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 213, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_invocation_metadata, __pyx_k_A_t_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 216, 25};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code};
    __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_code, __pyx_k_A_K_oQa_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 220, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_code, __pyx_k_A_t_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 223, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_details, __pyx_k_A_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 226, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_details, __pyx_k_A_t_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 229, 30};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_compression};
    __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_compression, __pyx_k_A_4_aq_4A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 235, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_disable_next_message_compression, __pyx_k_A_K_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 238, 46};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_c_peer, __pyx_mstate->__pyx_n_u_peer};
    __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer, __pyx_k_A_A_1D_1_wgQa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 245, 41};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_query_call, __pyx_mstate->__pyx_n_u_identities};
    __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer_identities, __pyx_k_A_t1_D_1__AQ_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 252, 58};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_query_call, __pyx_mstate->__pyx_n_u_identity_key};
    __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer_identity_key, __pyx_k_A_t1_D_1_A_1_waq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 262, 82};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_query_call, __pyx_mstate->__pyx_n_u_bytes_ctx, __pyx_mstate->__pyx_n_u_ctx, __pyx_mstate->__pyx_n_u_key};
    __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_auth_context, __pyx_k_A_t1_D_1_L_A_1_q_1Cwa_1A_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 275, 55};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_time_remaining, __pyx_k_A_4_9C_a_1_4_RtSXX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 281, 28};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_callback, __pyx_mstate->__pyx_n_u_cb};
    __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_add_done_callback, __pyx_k_A_Yhaz_Kz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 285, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_done, __pyx_k_A_t_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 288, 17};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_cancelled, __pyx_k_A_t_m3j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 301, 45};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code, __pyx_mstate->__pyx_n_u_details, __pyx_mstate->__pyx_n_u_trailing_metadata, __pyx_mstate->__pyx_n_u_future};
    __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_abort, __pyx_k_A_1_q_iq_j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 311, 36};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_metadata, __pyx_mstate->__pyx_n_u_future};
    __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_send_initial_metadata_2, __pyx_k_A_1_q_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 317, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_metadata};
    __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_trailing_metadata, __pyx_k_A_I_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 320, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_invocation_metadata, __pyx_k_A_t9_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 323, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_code};
    __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_code, __pyx_k_A_IYaq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 326, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_details};
    __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_details, __pyx_k_A_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 329, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_compression};
    __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_set_compression, __pyx_k_A_I_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 332, 12};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_disable_next_message_compression, __pyx_k_A_I_6a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 335, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_callback};
    __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_add_callback, __pyx_k_A_Kwaq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 338, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer, __pyx_k_A_t9E, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 341, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer_identities, __pyx_k_A_t9_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 344, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_peer_identity_key, __pyx_k_A_t9_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 347, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_auth_context, __pyx_k_A_t9M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 350, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_time_remaining, __pyx_k_A_t9O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 365, 39};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_handler};
    __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_is_async_handler, __pyx_k_7_ay_72FayPSSZZmmnno, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 879, 31};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_check_before_request_call, __pyx_k_A_4_S_A_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 885, 31};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_unused_future};
    __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_decrease_active_rpcs_count, __pyx_k_A_Q_4_Rt1_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 890, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_rpc_task};
    __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_decrease_once_finished, __pyx_k_A_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3, 9};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 932, 14};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_generic_rpc_handlers};
    __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_add_generic_rpc_handlers, __pyx_k_A_gQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 935, 15};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_address};
    __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_add_insecure_port, __pyx_k_A_t8_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 938, 20};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_address, __pyx_mstate->__pyx_n_u_server_credentials};
    __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_add_secure_port, __pyx_k_A_t8_1_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1011, 81};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_task};
    __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_serving_task_crash_handler, __pyx_k_A_4z_4z_Cq_4y_1_D_Qd_l_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1126, 13};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_src_python_grpcio_grpc__cython_10, __pyx_mstate->__pyx_n_u_is_running, __pyx_k_A_t9Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 515};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_k_T_D_D_PPTT__cckkooyy_N_N_R_R_o, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16, 11};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_k_q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 78};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_PickleError, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_ChannelCredential, __pyx_k_hk_A_1_kkmmn_XQa_7_4A5J_XY_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 79};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_PickleError, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_InsecureChannelCr, __pyx_k_hk_A_1_kkmmn_XQa_7_A_ZZhhi_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 75};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_PickleError, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle__Tag, __pyx_k_hk_A_1_kkmmn_4xq_7_awnA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 76};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_PickleError, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_CensusContext, __pyx_k_hk_A_1_kkmmn_7_q0_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1, 86};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_PickleError, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_pyx_unpickle_AioServer, __pyx_k_hk_A_1_____a_a_b_9HAQ_7_1L_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad;
  }
  Py_DECREF(tuple_dedup_map);
  return 0;
  bad:
  Py_DECREF(tuple_dedup_map);
  return -1;
}
/* #### Code section: init_globals ### */

static int __Pyx_InitGlobals(void) {
  /* PythonCompatibility.init */
  if (likely(__Pyx_init_co_variables() == 0)); else

if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CachedMethodType.init */
  #if CYTHON_COMPILING_IN_LIMITED_API
{
    PyObject *typesModule=NULL;
    typesModule = PyImport_ImportModule("types");
    if (typesModule) {
        __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
        Py_DECREF(typesModule);
    }
} // error handling follows
#endif

if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* Coro_CheckExact.init */
  #if CYTHON_COMPILING_IN_LIMITED_API
{
    PyObject *typesModule=NULL;
    typesModule = PyImport_ImportModule("types");
    if (typesModule) {
        __pyx_mstate_global->__Pyx_CachedCoroType = PyObject_GetAttrString(typesModule, "CoroutineType");
        Py_DECREF(typesModule);
    }
} // error handling follows
#endif

if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else

if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
            "name '%U' is not defined", name);
    }
    return result;
}

/* TupleAndListFromArray */
#if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    Py_ssize_t i;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    for (i = 0; i < n; i++) {
        if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < 0)) {
            Py_DECREF(res);
            return NULL;
        }
        Py_INCREF(src[i]);
    }
    return res;
}
#elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\
        !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS)
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length, length2;
        int kind;
        void *data1, *data2;
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        #endif
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length < 0)) return -1;
        #endif
        length2 = __Pyx_PyUnicode_GET_LENGTH(s2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length2 < 0)) return -1;
        #endif
        if (length != length2) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    return (equals == Py_EQ);
return_ne:
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(n == -1)) return NULL;
    #endif
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        if (s == namei) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs;
    PyObject *dict;
#if !CYTHON_ASSUME_SAFE_SIZE
    nkwargs = PyTuple_Size(kwnames);
    if (unlikely(nkwargs < 0)) return NULL;
#else
    nkwargs = PyTuple_GET_SIZE(kwnames);
#endif
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
#if !CYTHON_ASSUME_SAFE_MACROS
        PyObject *key = PyTuple_GetItem(kwnames, i);
        if (!key) goto bad;
#else
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
#endif
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* FixUpExtensionType */
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
#else
    const PyType_Slot *slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
        int changed = 0;
#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
        const
#endif
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
#if PY_VERSION_HEX < 0x030900b1
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
#if PY_VERSION_HEX >= 0x030800b4
                    type->tp_vectorcall_offset = memb->offset;
#else
                    type->tp_print = (printfunc) memb->offset;
#endif
                    changed = 1;
                }
#endif
#else
                if ((0));
#endif
#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
                        Py_DECREF(descr);
                        return -1;
                    }
                    Py_DECREF(descr);
                    changed = 1;
                }
#endif
            }
            memb++;
        }
        if (changed)
            PyType_Modified(type);
    }
#endif
    return 0;
}

/* FetchSharedCythonModule */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
}

/* dict_setdefault */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value,
                                                       int is_safe_type) {
    PyObject* value;
    CYTHON_MAYBE_UNUSED_VAR(is_safe_type);
#if CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_CallMethod(d, "setdefault", "OO", key, default_value);
#elif PY_VERSION_HEX >= 0x030d0000
    PyDict_SetDefaultRef(d, key, default_value, &value);
#else
    value = PyDict_SetDefault(d, key, default_value);
    if (unlikely(!value)) return NULL;
    Py_INCREF(value);
#endif
    return value;
}

/* FetchCommonType */
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t expected_basicsize) {
    Py_ssize_t basicsize;
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
    if (unlikely(!py_basicsize)) return -1;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = NULL;
    if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
#else
    basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
#endif
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
    int get_item_ref_result;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    py_object_name = PyUnicode_FromString(object_name);
    if (!py_object_name) return NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) goto done;
    abi_module_dict = PyModule_GetDict(abi_module);
    if (!abi_module_dict) goto done;
    get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
    if (get_item_ref_result == 1) {
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else if (unlikely(get_item_ref_result == -1)) {
        goto bad;
    }
    CYTHON_UNUSED_VAR(module);
    cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type, 1);
    if (unlikely(new_cached_type != cached_type)) {
        if (unlikely(!new_cached_type)) goto bad;
        Py_DECREF(cached_type);
        cached_type = new_cached_type;
        if (__Pyx_VerifyCachedType(
                cached_type,
                object_name,
                spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else {
        Py_DECREF(new_cached_type);
    }
done:
    Py_XDECREF(abi_module);
    Py_DECREF(py_object_name);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CallTypeTraverse */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
    if (__Pyx_get_runtime_version() < 0x03090000) return 0;
    #endif
    if (!always_call) {
        PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
        unsigned long flags = PyType_GetFlags(base);
        if (flags & Py_TPFLAGS_HEAPTYPE) {
            return 0;
        }
    }
    Py_VISIT((PyObject*)Py_TYPE(o));
    return 0;
}
#endif

/* PyMethodNew */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *result;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    {
        PyObject *args[] = {func, self};
        result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
    }
    #else
    result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
    #endif
    return result;
}
#else
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#endif

/* PyVectorcallFastCallDict */
#if CYTHON_METH_FASTCALL && (CYTHON_VECTORCALL || CYTHON_BACKPORT_VECTORCALL)
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i, pos;
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    #if !CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t nkw = PyDict_Size(kw);
    if (unlikely(nkw == -1)) return NULL;
    #else
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    #endif
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (PyDict_Next(kw, &pos, &key, &value)) {
        keys_are_strings &=
        #if CYTHON_COMPILING_IN_LIMITED_API
            PyType_GetFlags(Py_TYPE(key));
        #else
            Py_TYPE(key)->tp_flags;
        #endif
        Py_INCREF(key);
        Py_INCREF(value);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
        #else
        PyTuple_SET_ITEM(kwnames, i, key);
        #endif
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    Py_ssize_t kw_size =
        likely(kw == NULL) ?
        0 :
#if !CYTHON_ASSUME_SAFE_SIZE
        PyDict_Size(kw);
#else
        PyDict_GET_SIZE(kw);
#endif
    if (kw_size == 0) {
        return vc(func, args, nargs, NULL);
    }
#if !CYTHON_ASSUME_SAFE_SIZE
    else if (unlikely(kw_size == -1)) {
        return NULL;
    }
#endif
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
        int result;
        PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func);
        if (unlikely(!newFunc)) {
            PyErr_Clear(); // It's only an optimization, so don't throw an error
            return 0;
        }
        result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
        Py_DECREF(newFunc);
        return result;
    }
    return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if (PyMethod_Check(func)) {
        func = PyMethod_GET_FUNCTION(func);
    }
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) {
    PyObject *result;
    CYTHON_UNUSED_VAR(closure);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_doc_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#else
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_name_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    Py_INCREF(op->func_qualname);
    result = op->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_dict_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_dict_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_dict, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_defaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_kwdefaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_annotations_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
    int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
    if (is_coroutine) {
        PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(is_coroutine_value)) {
            return is_coroutine_value;
        }
ignore:
        PyErr_Clear();
    }
    return __Pyx_PyBool_FromLong(is_coroutine);
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    result = __Pyx_CyFunction_get_is_coroutine_value(op);
    if (unlikely(!result))
        return NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    if (op->func_is_coroutine) {
        Py_DECREF(result);
        result = __Pyx_NewRef(op->func_is_coroutine);
    } else {
        op->func_is_coroutine = __Pyx_NewRef(result);
    }
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        py_name, message, size);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        name, message, size);
#endif
}
static void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s",
        py_name, message);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s",
        name, message);
#endif
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
    {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#if CYTHON_METH_FASTCALL
#if CYTHON_BACKPORT_VECTORCALL || CYTHON_COMPILING_IN_LIMITED_API
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(args);
    __Pyx_BEGIN_CRITICAL_SECTION(m);
    Py_INCREF(m->func_qualname);
    result = m->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    Py_CLEAR(m->defaults);
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
    Py_VISIT(m->func_dict);
    __Pyx_VISIT_CONST(m->func_name);
    __Pyx_VISIT_CONST(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    __Pyx_VISIT_CONST(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    Py_VISIT(m->defaults);
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
    PyObject *repr;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
    __Pyx_END_CRITICAL_SECTION();
    return repr;
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes no arguments", size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes exactly one argument", size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
    __Pyx_CyFunction_raise_type_error(
        (__pyx_CyFunctionObject*)func, "takes no keyword arguments");
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL && (CYTHON_VECTORCALL || CYTHON_BACKPORT_VECTORCALL)
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_SIZE
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(argc < 0)) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL && (CYTHON_VECTORCALL || CYTHON_BACKPORT_VECTORCALL)
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            __Pyx_CyFunction_raise_type_error(
                cyfunc, "needs an argument");
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
        __Pyx_CyFunction_raise_type_error(
            cyfunc, "takes no keyword arguments");
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes no arguments", nargs);
        return NULL;
    }
    return meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes exactly one argument", nargs);
        return NULL;
    }
    return meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, (size_t)nargs, kwnames);
}
#endif
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if CYTHON_METH_FASTCALL
#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
    Py_TPFLAGS_HAVE_VECTORCALL |
#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
#endif // CYTHON_METH_FASTCALL
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
static int __pyx_CyFunction_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
    if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
    if (unlikely(!m->defaults))
        return NULL;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
}

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject *const *args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject *const *args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
    PyObject *kwdefs;
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
        return NULL;
    }
    if (
            co->co_kwonlyargcount == 0 &&
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
#if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API
  #if PY_VERSION_HEX < 0x03090000
    #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable)
  #elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
    PyTypeObject *tp = Py_TYPE(callable);
    #if defined(__Pyx_CyFunction_USED)
    if (__Pyx_CyFunction_CheckExact(callable)) {
        return __Pyx_CyFunction_func_vectorcall(callable);
    }
    #endif
    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
        return NULL;
    }
    assert(PyCallable_Check(callable));
    Py_ssize_t offset = tp->tp_vectorcall_offset;
    assert(offset > 0);
    vectorcallfunc ptr;
    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
    return ptr;
}
  #else
    #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
  #endif
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    #if PY_VERSION_HEX < 0x030800B1
    #if CYTHON_FAST_PYCCALL
    if (PyCFunction_Check(func)) {
        if (kwargs) {
            return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
        } else {
            return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
        }
    }
    if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
        return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
    }
    #endif
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
    }
    #endif
    #endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API
        vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
        if (f) {
            return f(func, args, _nargs, NULL);
        }
        #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
        if (__Pyx_CyFunction_CheckExact(func)) {
            __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
            if (f) return f(func, args, _nargs, NULL);
        }
        #elif CYTHON_COMPILING_IN_LIMITED_API && CYTHON_VECTORCALL
        return PyObject_Vectorcall(func, args, _nargs, NULL);
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* UnpackUnboundCMethod */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
#elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {
        return _PyObject_Vectorcall
            (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);
}
#else
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
    return
#if PY_VERSION_HEX < 0x03090000
    _PyObject_Vectorcall
#else
    PyObject_Vectorcall
#endif
        (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
}
#endif
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
     METH_VARARGS | METH_KEYWORDS,
#else
     METH_FASTCALL | METH_KEYWORDS,
#endif
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method, *result=NULL;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    result = method;
#if CYTHON_COMPILING_IN_CPYTHON
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            result = unbound_method;
        }
    }
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    if (unlikely(target->method)) {
        Py_DECREF(result);
    } else
#endif
    target->method = result;
    return 0;
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
        }
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *result = NULL;
        PyObject *args = PyTuple_New(2);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
        return result;
    }
#endif
    {
        PyObject *args[4] = {NULL, self, arg1, arg2};
        return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
    }
}

/* ParseKeywords */
static int __Pyx_ValidateDuplicatePosArgs(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char* function_name)
{
    PyObject ** const *name = argnames;
    while (name != first_kw_arg) {
        PyObject *key = **name;
        int found = PyDict_Contains(kwds, key);
        if (unlikely(found)) {
            if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
            goto bad;
        }
        name++;
    }
    return 0;
bad:
    return -1;
}
#if CYTHON_USE_UNICODE_INTERNALS
static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
    int kind;
    Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
    if (len != PyUnicode_GET_LENGTH(s2)) return 0;
    kind = PyUnicode_KIND(s1);
    if (kind != PyUnicode_KIND(s2)) return 0;
    const void *data1 = PyUnicode_DATA(s1);
    const void *data2 = PyUnicode_DATA(s2);
    return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
}
#endif
static int __Pyx_MatchKeywordArg_str(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    #if CYTHON_USE_UNICODE_INTERNALS
    Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
    if (unlikely(key_hash == -1)) {
        key_hash = PyObject_Hash(key);
        if (unlikely(key_hash == -1))
            goto bad;
    }
    #endif
    name = first_kw_arg;
    while (*name) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) {
                *index_found = (size_t) (name - argnames);
                return 1;
            }
        }
        #endif
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
            if (__Pyx_UnicodeKeywordsEqual(name_str, key))
                goto arg_passed_twice;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            if (unlikely(name_str == key)) goto arg_passed_twice;
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) goto arg_passed_twice;
        }
        #endif
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
bad:
    return -1;
}
static int __Pyx_MatchKeywordArg_nostr(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
    name = first_kw_arg;
    while (*name) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (cmp == 1) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        if (unlikely(cmp == -1)) goto bad;
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (unlikely(cmp != 0)) {
            if (cmp == 1) goto arg_passed_twice;
            else goto bad;
        }
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
bad:
    return -1;
}
static CYTHON_INLINE int __Pyx_MatchKeywordArg(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    return likely(PyUnicode_CheckExact(key)) ?
        __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
        __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
}
static void __Pyx_RejectUnknownKeyword(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char *function_name)
{
    Py_ssize_t pos = 0;
    PyObject *key = NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(kwds);
    while (PyDict_Next(kwds, &pos, &key, NULL)) {
        PyObject** const *name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (!*name) {
            #if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(key);
            #endif
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp != 1) {
                if (cmp == 0) {
                    PyErr_Format(PyExc_TypeError,
                        "%s() got an unexpected keyword argument '%U'",
                        function_name, key);
                }
                #if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(key);
                #endif
                break;
            }
            #if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(key);
            #endif
        }
    }
    __Pyx_END_CRITICAL_SECTION();
    assert(PyErr_Occurred());
}
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t extracted = 0;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    name = first_kw_arg;
    while (*name && num_kwargs > extracted) {
        PyObject * key = **name;
        PyObject *value;
        int found = 0;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        found = PyDict_GetItemRef(kwds, key, &value);
        #else
        value = PyDict_GetItemWithError(kwds, key);
        if (value) {
            Py_INCREF(value);
            found = 1;
        } else {
            if (unlikely(PyErr_Occurred())) goto bad;
        }
        #endif
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            extracted++;
        }
        name++;
    }
    if (num_kwargs > extracted) {
        if (ignore_unknown_kwargs) {
            if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
                goto bad;
        } else {
            __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
            goto bad;
        }
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t len;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    if (PyDict_Update(kwds2, kwds) < 0) goto bad;
    name = first_kw_arg;
    while (*name) {
        PyObject *key = **name;
        PyObject *value;
#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
        int found = PyDict_Pop(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
        }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        int found = PyDict_GetItemRef(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
        }
#else
    #if CYTHON_COMPILING_IN_CPYTHON
        value = _PyDict_Pop(kwds2, key, kwds2);
    #else
        value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
    #endif
        if (value == kwds2) {
            Py_DECREF(value);
        } else {
            if (unlikely(!value)) goto bad;
            values[name-argnames] = value;
        }
#endif
        name++;
    }
    len = PyDict_Size(kwds2);
    if (len > 0) {
        return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
    } else if (unlikely(len == -1)) {
        goto bad;
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject *key = NULL;
    PyObject** const * name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
#if CYTHON_AVOID_BORROWED_REFS
        key = __Pyx_PySequence_ITEM(kwds, pos);
#else
        key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
#endif
#if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!key)) goto bad;
#endif
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            PyObject *value = kwvalues[pos];
            values[name-argnames] = __Pyx_NewRef(value);
        } else {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp == 1) {
                PyObject *value = kwvalues[pos];
                values[index_found] = __Pyx_NewRef(value);
            } else {
                if (unlikely(cmp == -1)) goto bad;
                if (kwds2) {
                    PyObject *value = kwvalues[pos];
                    if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                } else if (!ignore_unknown_kwargs) {
                    goto invalid_keyword;
                }
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        key = NULL;
        #endif
    }
    return 0;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    goto bad;
bad:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(key);
    #endif
    return -1;
}
static int __Pyx_ParseKeywords(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)))
        return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
    else if (kwds2)
        return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
    else
        return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
    int from_annotation_subclass = 0;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (!exact) {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    } else if (exact == 2) {
        if (__Pyx_TypeCheck(obj, type)) {
            from_annotation_subclass = 1;
            extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
        }
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")"
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        "%s%U"
#endif
        , name, type_name, obj_type_name
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        , (from_annotation_subclass ? ". " : ""), extra_info
#endif
        );
#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    if (exact == 2 && from_annotation_subclass) {
        PyObject *res;
        PyObject *vargs[2];
        vargs[0] = PyErr_GetRaisedException();
        vargs[1] = extra_info;
        res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
        Py_XDECREF(res);
        PyErr_SetRaisedException(vargs[0]);
    }
#endif
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* PyObjectFastCallMethod */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) {
    PyObject *result;
    PyObject *attr = PyObject_GetAttr(args[0], name);
    if (unlikely(!attr))
        return NULL;
    result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1);
    Py_DECREF(attr);
    return result;
}
#endif

/* RaiseException */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
#elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}

/* decode_c_bytes */
static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes(
         const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    if (unlikely((start < 0) | (stop < 0))) {
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    if (stop > length)
        stop = length;
    if (unlikely(stop <= start))
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_unicode);
    length = stop - start;
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C0000
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#elif __PYX_LIMITED_VERSION_HEX > 0x030C0000
    local_value = PyErr_GetRaisedException();
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
#if __PYX_LIMITED_VERSION_HEX > 0x030C0000
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
#else
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
#endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    PyErr_SetHandledException(local_value);
    Py_XDECREF(local_value);
    Py_XDECREF(local_type);
    Py_XDECREF(local_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
#if __PYX_LIMITED_VERSION_HEX <= 0x030C0000
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
#endif
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        if (!PyErr_Occurred())
            PyErr_SetNone(PyExc_NameError);
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
    PyErr_Clear();
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear();
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return result;
    }
#else
    result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* RejectKeywords */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
    PyObject *key = NULL;
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) {
        key = __Pyx_PySequence_ITEM(kwds, 0);
    } else {
        Py_ssize_t pos = 0;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
        if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
#endif
        PyDict_Next(kwds, &pos, &key, NULL);
        Py_INCREF(key);
    }
    if (likely(key)) {
        PyErr_Format(PyExc_TypeError,
            "%s() got an unexpected keyword argument '%U'",
            function_name, key);
        Py_DECREF(key);
    }
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS && !CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            return __Pyx_PyList_GetItemRef(o, n);
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_subscript) {
            PyObject *r, *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* PyObjectCall2Args */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectCallOneArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(tp);
    PyErr_Format(PyExc_AttributeError,
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod1 */
#if !(CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C0000)
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_GetMethod;
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* append */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_mstate_global->__pyx_n_u_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* HasAttr */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!PyUnicode_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_PyObject_GetAttrStrNoError(o, n);
    if (!r) {
        return (unlikely(PyErr_Occurred())) ? -1 : 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a, x;
#ifdef HAVE_LONG_LONG
    const PY_LONG_LONG llb = intval;
    PY_LONG_LONG lla, llx;
#endif
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        return __Pyx_NewRef(op2);
    }
    if (likely(__Pyx_PyLong_IsCompact(op1))) {
        a = __Pyx_PyLong_CompactValue(op1);
    } else {
        const digit* digits = __Pyx_PyLong_Digits(op1);
        const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
        switch (size) {
            case -2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
        }
    }
            x = a + b;
        return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
    long_long:
            llx = lla + llb;
        return PyLong_FromLongLong(llx);
#endif
    return __Pyx_Fallback___Pyx_PyLong_AddObjC(op1, op2, inplace);
    
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_AddObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) + (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_AddObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_AddObjC(op1, op2, inplace);
}
#endif

/* PyObjectLookupSpecial */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* CallUnboundCMethod1 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
    int was_initialized =  __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        int flag = cfunc->flag;
        if (flag == METH_O) {
            return __Pyx_CallCFunction(cfunc, self, arg);
        } else if (flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, &arg, 1);
        } else if (flag == (METH_FASTCALL | METH_KEYWORDS)) {
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, &arg, 1, NULL);
        }
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod1(&tmp_cfunc, self, arg);
    }
#endif
    PyObject* result = __Pyx__CallUnboundCMethod1(cfunc, self, arg);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
    PyObject *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *args = PyTuple_New(1);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 0, arg);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
    } else
#endif
    {
        result = __Pyx_PyObject_Call2Args(cfunc->method, self, arg);
    }
    return result;
}

/* py_dict_pop */
static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop)
    PyObject *value;
    if (PyDict_Pop(d, key, &value) == 0) {
        if (default_value) {
            Py_INCREF(default_value);
        } else {
            PyErr_SetObject(PyExc_KeyError, key);
        }
        value = default_value;
    }
    return value;
#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    return _PyDict_Pop(d, key, default_value);
#else
    if (default_value) {
        return __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, d, key, default_value);
    } else {
        return __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, d, key);
    }
#endif
}

/* PyObjectCallNoArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* pyfrozenset_new */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
    if (it) {
        PyObject* result;
#if CYTHON_COMPILING_IN_PYPY
        PyObject* args;
        args = PyTuple_Pack(1, it);
        if (unlikely(!args))
            return NULL;
        result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL);
        Py_DECREF(args);
        return result;
#else
        if (PyFrozenSet_CheckExact(it)) {
            Py_INCREF(it);
            return it;
        }
        result = PyFrozenSet_New(it);
        if (unlikely(!result))
            return NULL;
        if ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
#if CYTHON_COMPILING_IN_LIMITED_API
            || __Pyx_get_runtime_version() >= 0x030A0000
#endif
            )
            return result;
        {
            Py_ssize_t size = __Pyx_PySet_GET_SIZE(result);
            if (likely(size > 0))
                return result;
#if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(size < 0)) {
                Py_DECREF(result);
                return NULL;
            }
#endif
        }
        Py_DECREF(result);
#endif
    }
    return __Pyx_PyObject_CallNoArg((PyObject*) &PyFrozenSet_Type);
}

/* py_set_discard_unhashable */
static int __Pyx_PySet_DiscardUnhashable(PyObject *set, PyObject *key) {
    PyObject *tmpkey;
    int rv;
    if (likely(!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError)))
        return -1;
    PyErr_Clear();
    tmpkey = __Pyx_PyFrozenSet_New(key);
    if (tmpkey == NULL)
        return -1;
    rv = PySet_Discard(set, tmpkey);
    Py_DECREF(tmpkey);
    return rv;
}

/* py_set_remove */
static int __Pyx_PySet_RemoveNotFound(PyObject *set, PyObject *key, int found) {
    if (unlikely(found < 0)) {
        found = __Pyx_PySet_DiscardUnhashable(set, key);
    }
    if (likely(found == 0)) {
        PyObject *tup;
        tup = PyTuple_Pack(1, key);
        if (!tup)
            return -1;
        PyErr_SetObject(PyExc_KeyError, tup);
        Py_DECREF(tup);
        return -1;
    }
    return found;
}
static CYTHON_INLINE int __Pyx_PySet_Remove(PyObject *set, PyObject *key) {
    int found = PySet_Discard(set, key);
    if (unlikely(found != 1)) {
        return __Pyx_PySet_RemoveNotFound(set, key, found);
    }
    return 0;
}

/* RaiseClosureNameError */
static void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* set_iter */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
    *p_source_is_set = is_set;
    if (likely(is_set)) {
        *p_orig_length = PySet_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#else
    CYTHON_UNUSED_VAR(is_set);
    *p_source_is_set = 0;
#endif
    *p_orig_length = 0;
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set) {
    if (!CYTHON_COMPILING_IN_CPYTHON || PY_VERSION_HEX >= 0x030d0000 || unlikely(!source_is_set)) {
        *value = PyIter_Next(iter_obj);
        if (unlikely(!*value)) {
            return __Pyx_IterFinish();
        }
        CYTHON_UNUSED_VAR(orig_length);
        CYTHON_UNUSED_VAR(ppos);
        return 1;
    }
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "set changed size during iteration");
        return -1;
    }
    {
        Py_hash_t hash;
        int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
        assert (ret != -1);
        if (likely(ret)) {
            Py_INCREF(*value);
            return 1;
        }
    }
#endif
    return 0;
}

/* CallUnboundCMethod0 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        if (likely(cfunc->flag == METH_NOARGS))
            return __Pyx_CallCFunction(cfunc, self, NULL);
        if (likely(cfunc->flag == METH_FASTCALL))
            return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
        if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
            return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
        if (cfunc->flag == METH_VARARGS)
            return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
        return __Pyx__CallUnboundCMethod0(cfunc, self);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *result;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
    result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
    return result;
}

/* py_dict_values */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
}

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double b = floatval;
    double a, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op1))) {
        a = __Pyx_PyFloat_AS_DOUBLE(op1);
        
    } else
    if (likely(PyLong_CheckExact(op1))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op1)) {
            a = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op1)) {
            a = (double) __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    a = PyLong_AsDouble(op1);
                    if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
    }
        result = a + b;
        return PyFloat_FromDouble(result);
}
#endif

/* py_dict_keys */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_keys, d);
}

/* DictGetItem */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    if (unlikely(__Pyx_PyDict_GetItemRef(d, key, &value) == 0)) { // no value, no error
        if (unlikely(PyTuple_Check(key))) {
            PyObject* args = PyTuple_Pack(1, key);
            if (likely(args)) {
                PyErr_SetObject(PyExc_KeyError, args);
                Py_DECREF(args);
            }
        } else {
            PyErr_SetObject(PyExc_KeyError, key);
        }
    }
    return value;
}
#endif

/* PyObjectFormatAndDecref */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
    if (unlikely(!s)) return NULL;
    if (likely(PyUnicode_CheckExact(s))) return s;
    return __Pyx_PyObject_FormatAndDecref(s, f);
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
    PyObject *result;
    if (unlikely(!s)) return NULL;
    result = PyObject_Format(s, f);
    Py_DECREF(s);
    return result;
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    if (max_char > 1114111) max_char = 1114111;
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - result_ulength < 0))
        goto overflow;
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = values[i];
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (__Pyx_PyUnicode_READY(uval) == (-1))
            goto bad;
        #endif
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(ulength < 0)) goto bad;
        #endif
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    Py_ssize_t i;
    PyObject *result = NULL;
    PyObject *value_tuple = PyTuple_New(value_count);
    if (unlikely(!value_tuple)) return NULL;
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    for (i=0; i<value_count; i++) {
        if (__Pyx_PyTuple_SET_ITEM(value_tuple, i, values[i]) != (0)) goto bad;
        Py_INCREF(values[i]);
    }
    result = PyUnicode_Join(__pyx_mstate_global->__pyx_empty_unicode, value_tuple);
bad:
    Py_DECREF(value_tuple);
    return result;
#endif
}

/* PyObjectVectorCallKwBuilder */
#if CYTHON_VECTORCALL
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_PyObject_FastCallDict;
    if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
    Py_INCREF(key);
    args[n] = value;
    return 0;
}
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_VectorcallBuilder_AddArgStr;
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n);
}
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    PyObject *pyKey = PyUnicode_FromString(key);
    if (!pyKey) return -1;
    return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n);
}
#else // CYTHON_VECTORCALL
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) {
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return PyDict_SetItem(builder, key, value);
}
#endif

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
    else state = (PyGILState_STATE)0;
    CYTHON_UNUSED_VAR(clineno);
    CYTHON_UNUSED_VAR(lineno);
    CYTHON_UNUSED_VAR(filename);
    CYTHON_MAYBE_UNUSED_VAR(nogil);
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(0);
    }
    ctx = PyUnicode_FromString(name);
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
    if (nogil)
        PyGILState_Release(state);
}

/* IterNextPlain */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void) {
    if (unlikely(!__pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache))
        __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache = __Pyx_GetBuiltinName(__pyx_mstate_global->__pyx_n_u_next);
    return __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator) {
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    PyObject *result;
    PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI();
    if (unlikely(!next)) return NULL;
    result = PyObject_CallFunctionObjArgs(next, iterator, NULL);
    return result;
#else
    (void)__Pyx_GetBuiltinName; // only for early limited API
    iternextfunc iternext = __Pyx_PyObject_GetIterNextFunc(iterator);
    assert(iternext);
    return iternext(iterator);
#endif
}

/* IterNext */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03080000
static PyObject *__Pyx_PyIter_Next2(PyObject *o, PyObject *defval) {
    PyObject *result;
    PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI();
    if (unlikely(!next)) return NULL;
    result = PyObject_CallFunctionObjArgs(next, o, defval, NULL);
    return result;
}
#else
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(iterator));
    PyErr_Format(PyExc_TypeError,
        __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name);
    __Pyx_DECREF_TypeName(iterator_type_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
#if !CYTHON_COMPILING_IN_LIMITED_API
    iternextfunc iternext = __Pyx_PyObject_TryGetSlot(iterator, tp_iternext, iternextfunc);
    if (likely(iternext)) {
        next = iternext(iterator);
        if (likely(next))
            return next;
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
    #endif
    } else if (CYTHON_USE_TYPE_SLOTS) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else
#endif
    if (unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else {
        next = defval ? PyIter_Next(iterator) : __Pyx_PyIter_Next_Plain(iterator);
        if (likely(next))
            return next;
    }
    return __Pyx_PyIter_Next2Default(defval);
}
#endif

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* PyLongCompare */
static CYTHON_INLINE int __Pyx_PyLong_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 1;
    }
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) == 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 0;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 0;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal == 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = __Pyx_PyFloat_AS_DOUBLE(op1);
        return ((double)a == (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* pep479 */
static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
    PyObject *exc, *val, *tb, *cur_exc, *new_exc;
    __Pyx_PyThreadState_declare
    int is_async_stopiteration = 0;
    CYTHON_MAYBE_UNUSED_VAR(in_async_gen);
    __Pyx_PyThreadState_assign
    cur_exc = __Pyx_PyErr_CurrentExceptionType();
    if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) {
        if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopAsyncIteration))) {
            is_async_stopiteration = 1;
        } else {
            return;
        }
    }
    __Pyx_GetException(&exc, &val, &tb);
    Py_XDECREF(exc);
    Py_XDECREF(tb);
    new_exc = PyObject_CallFunction(PyExc_RuntimeError, "s",
        is_async_stopiteration ? "async generator raised StopAsyncIteration" :
        in_async_gen ? "async generator raised StopIteration" :
        "generator raised StopIteration");
    if (!new_exc) {
        Py_XDECREF(val);
        return;
    }
    PyException_SetCause(new_exc, val); // steals ref to val
    PyErr_SetObject(PyExc_RuntimeError, new_exc);
}

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyLong_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyLong_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return NULL;
}

/* decode_c_string */
static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    Py_ssize_t length;
    if (unlikely((start < 0) | (stop < 0))) {
        size_t slen = strlen(cstring);
        if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) {
            PyErr_SetString(PyExc_OverflowError,
                            "c-string too long to convert to Python");
            return NULL;
        }
        length = (Py_ssize_t) slen;
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    if (unlikely(stop <= start))
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_unicode);
    length = stop - start;
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

/* PyObjectVectorCallMethodKwBuilder */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
    PyObject *result;
    PyObject *obj = PyObject_GetAttr(args[0], name);
    if (unlikely(!obj))
        return NULL;
    result = __Pyx_Object_Vectorcall_CallFromBuilder(obj, args+1, nargsf-1, kwnames);
    Py_DECREF(obj);
    return result;
}
#endif

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *empty_list = 0;
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    if (level == -1) {
        const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
        if (package_sep != (0)) {
            module = PyImport_ImportModuleLevelObject(
                name, __pyx_mstate_global->__pyx_d, empty_dict, from_list, 1);
            if (unlikely(!module)) {
                if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                    goto bad;
                PyErr_Clear();
            }
        }
        level = 0;
    }
    if (!module) {
        module = PyImport_ImportModuleLevelObject(
            name, __pyx_mstate_global->__pyx_d, empty_dict, from_list, level);
    }
bad:
    Py_XDECREF(empty_dict);
    Py_XDECREF(empty_list);
    return module;
}

/* ImportDottedModule */
static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
    PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
    Py_ssize_t size;
    if (unlikely(PyErr_Occurred())) {
        PyErr_Clear();
    }
#if CYTHON_ASSUME_SAFE_SIZE
    size = PyTuple_GET_SIZE(parts_tuple);
#else
    size = PyTuple_Size(parts_tuple);
    if (size < 0) goto bad;
#endif
    if (likely(size == count)) {
        partial_name = name;
    } else {
        slice = PySequence_GetSlice(parts_tuple, 0, count);
        if (unlikely(!slice))
            goto bad;
        sep = PyUnicode_FromStringAndSize(".", 1);
        if (unlikely(!sep))
            goto bad;
        partial_name = PyUnicode_Join(sep, slice);
    }
    PyErr_Format(
        PyExc_ModuleNotFoundError,
        "No module named '%U'", partial_name);
bad:
    Py_XDECREF(sep);
    Py_XDECREF(slice);
    Py_XDECREF(partial_name);
    return NULL;
}
static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
    PyObject *imported_module;
#if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\
        CYTHON_COMPILING_IN_GRAAL
    PyObject *modules = PyImport_GetModuleDict();
    if (unlikely(!modules))
        return NULL;
    imported_module = __Pyx_PyDict_GetItemStr(modules, name);
    Py_XINCREF(imported_module);
#else
    imported_module = PyImport_GetModule(name);
#endif
    return imported_module;
}
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
    Py_ssize_t i, nparts;
#if CYTHON_ASSUME_SAFE_SIZE
    nparts = PyTuple_GET_SIZE(parts_tuple);
#else
    nparts = PyTuple_Size(parts_tuple);
    if (nparts < 0) return NULL;
#endif
    for (i=1; i < nparts && module; i++) {
        PyObject *part, *submodule;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        part = PyTuple_GET_ITEM(parts_tuple, i);
#else
        part = __Pyx_PySequence_ITEM(parts_tuple, i);
        if (!part) return NULL;
#endif
        submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF(part);
#endif
        Py_DECREF(module);
        module = submodule;
    }
    if (unlikely(!module)) {
        return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
    }
    return module;
}
static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
    PyObject *imported_module;
    PyObject *module = __Pyx_Import(name, NULL, 0);
    if (!parts_tuple || unlikely(!module))
        return module;
    imported_module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(imported_module)) {
        Py_DECREF(module);
        return imported_module;
    }
    PyErr_Clear();
    return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
}
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(module)) {
        PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_mstate_global->__pyx_n_u_spec);
        if (likely(spec)) {
            PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_mstate_global->__pyx_n_u_initializing);
            if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
                Py_DECREF(spec);
                spec = NULL;
            }
            Py_XDECREF(unsafe);
        }
        if (likely(!spec)) {
            PyErr_Clear();
            return module;
        }
        Py_DECREF(spec);
        Py_DECREF(module);
    } else if (PyErr_Occurred()) {
        PyErr_Clear();
    }
#endif
    return __Pyx__ImportDottedModule(name, parts_tuple);
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_TrueDivideObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a, x;
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
    }
    if (likely(__Pyx_PyLong_IsCompact(op1))) {
        a = __Pyx_PyLong_CompactValue(op1);
    } else {
        const digit* digits = __Pyx_PyLong_Digits(op1);
        const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
        switch (size) {
            case -2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                    a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            case -3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                    a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            case -4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                    a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                }
                CYTHON_FALLTHROUGH;
            default: return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
        }
    }
            if ((8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53)))
                    || __Pyx_PyLong_DigitCount(op1) <= 52 / PyLong_SHIFT) {
                return PyFloat_FromDouble((double)a / (double)b);
            }
            return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
        return PyLong_FromLong(x);
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_TrueDivideObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) / (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_TrueDivideObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_TrueDivideObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_TrueDivideObjC(op1, op2, inplace);
}
#endif

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_MultiplyObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a, x;
#ifdef HAVE_LONG_LONG
    const PY_LONG_LONG llb = intval;
    PY_LONG_LONG lla, llx;
#endif
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        return __Pyx_NewRef(op1);
    }
    if (likely(__Pyx_PyLong_IsCompact(op1))) {
        a = __Pyx_PyLong_CompactValue(op1);
    } else {
        const digit* digits = __Pyx_PyLong_Digits(op1);
        const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
        switch (size) {
            case -2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                    a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                    lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                    a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                    lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                    a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                    lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
        }
    }
            CYTHON_UNUSED_VAR(a);
            CYTHON_UNUSED_VAR(b);
            #ifdef HAVE_LONG_LONG
            lla = a;
            goto long_long;
            #else
            return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            #endif
        return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
    long_long:
            llx = lla * llb;
        return PyLong_FromLongLong(llx);
#endif
    return __Pyx_Fallback___Pyx_PyLong_MultiplyObjC(op1, op2, inplace);
    
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_MultiplyObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) * (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_MultiplyObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_MultiplyObjC(op1, op2, inplace);
}
#endif

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_value = exc_info->exc_value;
    exc_info->exc_value = *value;
    if (tmp_value == NULL || tmp_value == Py_None) {
        Py_XDECREF(tmp_value);
        tmp_value = NULL;
        tmp_type = NULL;
        tmp_tb = NULL;
    } else {
        tmp_type = (PyObject*) Py_TYPE(tmp_value);
        Py_INCREF(tmp_type);
        #if CYTHON_COMPILING_IN_CPYTHON
        tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
        Py_XINCREF(tmp_tb);
        #else
        tmp_tb = PyException_GetTraceback(tmp_value);
        #endif
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
  #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
  #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* PyLongBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_Fallback___Pyx_PyLong_SubtractObjC(PyObject *op1, PyObject *op2, int inplace) {
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#if CYTHON_USE_PYLONG_INTERNALS
static PyObject* __Pyx_Unpacked___Pyx_PyLong_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    long a, x;
#ifdef HAVE_LONG_LONG
    const PY_LONG_LONG llb = intval;
    PY_LONG_LONG lla, llx;
#endif
    if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        return PyLong_FromLong(-intval);
    }
    if (likely(__Pyx_PyLong_IsCompact(op1))) {
        a = __Pyx_PyLong_CompactValue(op1);
    } else {
        const digit* digits = __Pyx_PyLong_Digits(op1);
        const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
        switch (size) {
            case -2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 2:
                if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                    a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 3:
                if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                    a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case -4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            case 4:
                if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                    a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                    break;
                #ifdef HAVE_LONG_LONG
                } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                    lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                    goto long_long;
                #endif
                }
                CYTHON_FALLTHROUGH;
            default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
        }
    }
            x = a - b;
        return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
    long_long:
            llx = lla - llb;
        return PyLong_FromLongLong(llx);
#endif
    return __Pyx_Fallback___Pyx_PyLong_SubtractObjC(op1, op2, inplace);
    
    
}
#endif
static PyObject* __Pyx_Float___Pyx_PyLong_SubtractObjC(PyObject *float_val, long intval, int zerodivision_check) {
    CYTHON_UNUSED_VAR(zerodivision_check);
    const long b = intval;
    double a = __Pyx_PyFloat_AS_DOUBLE(float_val);
        double result;
        
        result = ((double)a) - (double)b;
        return PyFloat_FromDouble(result);
}
static CYTHON_INLINE PyObject* __Pyx_PyLong_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        return __Pyx_Unpacked___Pyx_PyLong_SubtractObjC(op1, op2, intval, inplace, zerodivision_check);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        return __Pyx_Float___Pyx_PyLong_SubtractObjC(op1, intval, zerodivision_check);
    }
    return __Pyx_Fallback___Pyx_PyLong_SubtractObjC(op1, op2, inplace);
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* ReturnWithStopIteration */
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async);
static CYTHON_INLINE void __Pyx_ReturnWithStopIteration(PyObject* value, int async, int iternext) {
    if (value == Py_None) {
        if (async || !iternext)
            PyErr_SetNone(async ? PyExc_StopAsyncIteration : PyExc_StopIteration);
        return;
    }
    __Pyx__ReturnWithStopIteration(value, async);
}
static void __Pyx__ReturnWithStopIteration(PyObject* value, int async) {
#if CYTHON_COMPILING_IN_CPYTHON
    __Pyx_PyThreadState_declare
#endif
    PyObject *exc;
    PyObject *exc_type = async ? PyExc_StopAsyncIteration : PyExc_StopIteration;
#if CYTHON_COMPILING_IN_CPYTHON
    if ((PY_VERSION_HEX >= (0x030C00A6)) || unlikely(PyTuple_Check(value) || PyExceptionInstance_Check(value))) {
        if (PY_VERSION_HEX >= (0x030e00A1)) {
            exc = __Pyx_PyObject_CallOneArg(exc_type, value);
        } else {
            PyObject *args_tuple = PyTuple_New(1);
            if (unlikely(!args_tuple)) return;
            Py_INCREF(value);
            PyTuple_SET_ITEM(args_tuple, 0, value);
            exc = PyObject_Call(exc_type, args_tuple, NULL);
            Py_DECREF(args_tuple);
        }
        if (unlikely(!exc)) return;
    } else {
        Py_INCREF(value);
        exc = value;
    }
    #if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    #if CYTHON_USE_EXC_INFO_STACK
    if (!__pyx_tstate->exc_info->exc_value)
    #else
    if (!__pyx_tstate->exc_type)
    #endif
    {
        Py_INCREF(exc_type);
        __Pyx_ErrRestore(exc_type, exc, NULL);
        return;
    }
    #endif
#else
    exc = __Pyx_PyObject_CallOneArg(exc_type, value);
    if (unlikely(!exc)) return;
#endif
    PyErr_SetObject(exc_type, exc);
    Py_DECREF(exc);
}

/* CoroutineBase */
#if !CYTHON_COMPILING_IN_LIMITED_API
#include <frameobject.h>
#if PY_VERSION_HEX >= 0x030b00a6 && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#endif // CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void
__Pyx_Coroutine_Undelegate(__pyx_CoroutineObject *gen) {
#if CYTHON_USE_AM_SEND
    gen->yieldfrom_am_send = NULL;
#endif
    Py_CLEAR(gen->yieldfrom);
}
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    CYTHON_UNUSED_VAR(__pyx_tstate);
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
        else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) {
            #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
            value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
            if (unlikely(!value)) goto limited_api_failure;
            #else
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            #endif
            Py_DECREF(ev);
        }
        else if (unlikely(PyTuple_Check(ev))) {
            Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(ev);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely(tuple_size < 0)) {
                Py_XDECREF(tb);
                Py_DECREF(ev);
                Py_DECREF(et);
                return -1;
            }
            #endif
            if (tuple_size >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#elif CYTHON_ASSUME_SAFE_MACROS
                value = PySequence_ITEM(ev, 0);
#else
                value = PySequence_GetItem(ev, 0);
                if (!value) goto limited_api_failure;
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_GetAttr(ev, __pyx_mstate_global->__pyx_n_u_value);
#else
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
#endif
    Py_DECREF(ev);
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!value)) return -1;
#endif
    *pvalue = value;
    return 0;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL || !CYTHON_ASSUME_SAFE_MACROS
  limited_api_failure:
    Py_XDECREF(et);
    Py_XDECREF(tb);
    Py_XDECREF(ev);
    return -1;
#endif
}
static CYTHON_INLINE
__Pyx_PySendResult __Pyx_Coroutine_status_from_result(PyObject **retval) {
    if (*retval) {
        return PYGEN_NEXT;
    } else if (likely(__Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, retval) == 0)) {
        return PYGEN_RETURN;
    } else {
        return PYGEN_ERROR;
    }
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_CLEAR(exc_state->exc_value);
#else
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
#endif
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) {
    const char *msg;
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
static void __Pyx_Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    CYTHON_MAYBE_UNUSED_VAR(closing);
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
__Pyx_PySendResult __Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, PyObject **result, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(__Pyx_Coroutine_get_is_running(self));  // Callers should ensure is_running
    if (unlikely(self->resume_label == -1)) {
        __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
        return PYGEN_ERROR;
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_value) {
        #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        #else
        PyObject *exc_tb;
        #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
        exc_tb = PyException_GetTraceback(exc_state->exc_value);
        #elif PY_VERSION_HEX >= 0x030B00a4
        exc_tb = ((PyBaseExceptionObject*) exc_state->exc_value)->traceback;
        #else
        exc_tb = exc_state->exc_traceback;
        #endif
        if (exc_tb) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
            PyFrameObject *f = tb->tb_frame;
            assert(f->f_back == NULL);
            #if PY_VERSION_HEX >= 0x030B00A1
            f->f_back = PyThreadState_GetFrame(tstate);
            #else
            Py_XINCREF(tstate->frame);
            f->f_back = tstate->frame;
            #endif
            #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_CPYTHON
            Py_DECREF(exc_tb);
            #endif
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    retval = self->body(self, tstate, value);
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    *result = retval;
    if (self->resume_label == -1) {
        return likely(retval) ? PYGEN_RETURN : PYGEN_ERROR;
    }
    return PYGEN_NEXT;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(exc_state);
#else
    PyObject *exc_tb;
    #if PY_VERSION_HEX >= 0x030B00a4
    if (!exc_state->exc_value) return;
    exc_tb = PyException_GetTraceback(exc_state->exc_value);
    #else
    exc_tb = exc_state->exc_traceback;
    #endif
    if (likely(exc_tb)) {
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
        #if PY_VERSION_HEX >= 0x030B00a4
        Py_DECREF(exc_tb);
        #endif
    }
#endif
}
#define __Pyx_Coroutine_MethodReturnFromResult(gen, result, retval, iternext)\
    ((result) == PYGEN_NEXT ? (retval) : __Pyx__Coroutine_MethodReturnFromResult(gen, result, retval, iternext))
static PyObject *
__Pyx__Coroutine_MethodReturnFromResult(PyObject* gen, __Pyx_PySendResult result, PyObject *retval, int iternext) {
    CYTHON_MAYBE_UNUSED_VAR(gen);
    if (likely(result == PYGEN_RETURN)) {
        int is_async = 0;
        #ifdef __Pyx_AsyncGen_USED
        is_async = __Pyx_AsyncGen_CheckExact(gen);
        #endif
        __Pyx_ReturnWithStopIteration(retval, is_async, iternext);
        Py_XDECREF(retval);
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
#if PY_VERSION_HEX < 0x030d00A1
            _PyGen_SetStopIterationValue(result);
#else
            if (!PyTuple_Check(result) && !PyExceptionInstance_Check(result)) {
                PyErr_SetObject(PyExc_StopIteration, result);
            } else {
                PyObject *exc = __Pyx_PyObject_CallOneArg(PyExc_StopIteration, result);
                if (likely(exc != NULL)) {
                    PyErr_SetObject(PyExc_StopIteration, exc);
                    Py_DECREF(exc);
                }
            }
#endif
        }
        Py_DECREF(result);
        result = NULL;
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE __Pyx_PySendResult
__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen, PyObject** retval) {
    __Pyx_PySendResult result;
    PyObject *val = NULL;
    assert(__Pyx_Coroutine_get_is_running(gen));
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    result = __Pyx_Coroutine_SendEx(gen, val, retval, 0);
    Py_XDECREF(val);
    return result;
}
#if CYTHON_USE_AM_SEND
static __Pyx_PySendResult
__Pyx_Coroutine_SendToDelegate(__pyx_CoroutineObject *gen, __Pyx_pyiter_sendfunc gen_am_send, PyObject *value, PyObject **retval) {
    PyObject *ret = NULL;
    __Pyx_PySendResult delegate_result, result;
    assert(__Pyx_Coroutine_get_is_running(gen));
    delegate_result = gen_am_send(gen->yieldfrom, value, &ret);
    if (delegate_result == PYGEN_NEXT) {
        assert (ret != NULL);
        *retval = ret;
        return PYGEN_NEXT;
    }
    assert (delegate_result != PYGEN_ERROR || ret == NULL);
    __Pyx_Coroutine_Undelegate(gen);
    result = __Pyx_Coroutine_SendEx(gen, ret, retval, 0);
    Py_XDECREF(ret);
    return result;
}
#endif
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result = __Pyx_Coroutine_AmSend(self, value, &retval);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
}
static __Pyx_PySendResult
__Pyx_Coroutine_AmSend(PyObject *self, PyObject *value, PyObject **retval) {
    __Pyx_PySendResult result;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, value, retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
      #if !CYTHON_USE_AM_SEND
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
      #endif
        {
            #if !CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x03080000
            if (value == Py_None && PyIter_Check(yf))
                ret = __Pyx_PyIter_Next_Plain(yf);
            else
            #endif
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_mstate_global->__pyx_n_u_send, value);
        }
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            *retval = ret;
            return PYGEN_NEXT;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, value, retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return result;
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    CYTHON_UNUSED_VAR(gen);
    assert(__Pyx_Coroutine_get_is_running(gen));
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        result = __Pyx_Coroutine_Close(yf, &retval);
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        result = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf);
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
        result = PYGEN_RETURN;
    } else
    #endif
    {
        PyObject *meth;
        result = PYGEN_RETURN;
        meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_close);
        if (unlikely(!meth)) {
            if (unlikely(PyErr_Occurred())) {
                PyErr_WriteUnraisable(yf);
            }
        } else {
            retval = __Pyx_PyObject_CallNoArg(meth);
            Py_DECREF(meth);
            if (unlikely(!retval)) {
                result = PYGEN_ERROR;
            }
        }
    }
    Py_XDECREF(retval);
    return result == PYGEN_ERROR ? -1 : 0;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __Pyx_PySendResult result;
    PyObject *retval = NULL;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    #if CYTHON_USE_AM_SEND
    if (gen->yieldfrom_am_send) {
        result = __Pyx_Coroutine_SendToDelegate(gen, gen->yieldfrom_am_send, Py_None, &retval);
    } else
    #endif
    if (gen->yieldfrom) {
        PyObject *yf = gen->yieldfrom;
        PyObject *ret;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && (PY_VERSION_HEX < 0x030A00A3 || !CYTHON_USE_AM_SEND)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
            ret = __Pyx_PyIter_Next_Plain(yf);
        if (likely(ret)) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &retval);
    } else {
        result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    }
    __Pyx_Coroutine_unset_is_running(gen);
    return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 1);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result;
    CYTHON_UNUSED_VAR(arg);
    result = __Pyx_Coroutine_Close(self, &retval);
    if (unlikely(result == PYGEN_ERROR))
        return NULL;
    Py_XDECREF(retval);
    Py_RETURN_NONE;
}
static __Pyx_PySendResult
__Pyx_Coroutine_Close(PyObject *self, PyObject **retval) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PySendResult result;
    PyObject *yf;
    int err = 0;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        *retval = __Pyx_Coroutine_AlreadyRunningError(gen);
        return PYGEN_ERROR;
    }
    yf = gen->yieldfrom;
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    result = __Pyx_Coroutine_SendEx(gen, NULL, retval, 1);
    if (result == PYGEN_ERROR) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_Coroutine_unset_is_running(gen);
        if (!__Pyx_PyErr_Occurred()) {
            return PYGEN_RETURN;
        } else if (likely(__Pyx_PyErr_ExceptionMatches2(PyExc_GeneratorExit, PyExc_StopIteration))) {
            __Pyx_PyErr_Clear();
            return PYGEN_RETURN;
        }
        return PYGEN_ERROR;
    } else if (likely(result == PYGEN_RETURN && *retval == Py_None)) {
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_RETURN;
    } else {
        const char *msg;
        Py_DECREF(*retval);
        *retval = NULL;
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
            msg = "async generator ignored GeneratorExit";
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        __Pyx_Coroutine_unset_is_running(gen);
        return PYGEN_ERROR;
    }
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen)))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    yf = gen->yieldfrom;
    if (yf) {
        __Pyx_PySendResult result;
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                goto propagate_exception;
            goto throw_here;
        }
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_mstate_global->__pyx_n_u_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (unlikely(PyErr_Occurred())) {
                    __Pyx_Coroutine_unset_is_running(gen);
                    return NULL;
                }
                __Pyx_Coroutine_Undelegate(gen);
                goto throw_here;
            }
            if (likely(args)) {
                ret = __Pyx_PyObject_Call(meth, args, NULL);
            } else {
                PyObject *cargs[4] = {NULL, typ, val, tb};
                ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
            }
            Py_DECREF(meth);
        }
        Py_DECREF(yf);
        if (ret) {
            __Pyx_Coroutine_unset_is_running(gen);
            return ret;
        }
        result = __Pyx_Coroutine_FinishDelegation(gen, &ret);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, ret, 0);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
propagate_exception:
    {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, NULL, &retval, 0);
        __Pyx_Coroutine_unset_is_running(gen);
        return __Pyx_Coroutine_MethodReturnFromResult(self, result, retval, 0);
    }
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (unlikely(!PyArg_UnpackTuple(args, "throw", 1, 3, &typ, &val, &tb)))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
#if PY_VERSION_HEX >= 0x030B00a4
    Py_VISIT(exc_state->exc_value);
#else
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
#endif
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    {
        int e = __Pyx_call_type_traverse((PyObject*)gen, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_frame);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if CYTHON_USE_TP_FINALIZE
        if (unlikely(PyObject_CallFinalizerFromDealloc(self)))
#else
        {
            destructor del = __Pyx_PyObject_GetSlot(gen, tp_del, destructor);
            if (del) del(self);
        }
        if (unlikely(Py_REFCNT(self) > 0))
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    __Pyx_PyHeapTypeObject_GC_Del(gen);
}
#if CYTHON_USE_TP_FINALIZE
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *retval = NULL;
        __Pyx_PySendResult result = __Pyx_Coroutine_Close(self, &retval);
        if (result == PYGEN_ERROR) {
            PyErr_WriteUnraisable(self);
        } else {
            Py_XDECREF(retval);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
}
#endif
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_name;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_name, value);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context)
{
    PyObject *name = self->gi_qualname;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
    return 0;
}
static PyObject *
__Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
{
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyObject *frame;
    #if PY_VERSION_HEX >= 0x030d0000
    Py_BEGIN_CRITICAL_SECTION(self);
    #endif
    frame = self->gi_frame;
    if (!frame) {
        if (unlikely(!self->gi_code)) {
            Py_RETURN_NONE;
        }
        PyObject *globals = PyDict_New();
        if (unlikely(!globals)) return NULL;
        frame = (PyObject *) PyFrame_New(
            PyThreadState_Get(),            /*PyThreadState *tstate,*/
            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
            globals,                        /*PyObject *globals,*/
            0                               /*PyObject *locals*/
        );
        Py_DECREF(globals);
        if (unlikely(!frame))
            return NULL;
        if (unlikely(self->gi_frame)) {
            Py_DECREF(frame);
            frame = self->gi_frame;
        } else {
            self->gi_frame = frame;
        }
    }
    Py_INCREF(frame);
    #if PY_VERSION_HEX >= 0x030d0000
    Py_END_CRITICAL_SECTION();
    #endif
    return frame;
#else
    CYTHON_UNUSED_VAR(self);
    Py_RETURN_NONE;
#endif
}
static PyObject *
__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) {
    CYTHON_UNUSED_VAR(context);
    PyObject *frame = self->gi_frame;
    if (frame)
        return __Pyx_NewRef(frame);
    return __Pyx__Coroutine_get_frame(self);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->yieldfrom_am_send = NULL;
    #if PY_VERSION_HEX >= 0x030B00a4 && !CYTHON_COMPILING_IN_LIMITED_API
    gen->gi_exc_state.exc_value = NULL;
    #else
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
    #endif
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    gen->gi_frame = NULL;
    PyObject_GC_Track(gen);
    return gen;
}
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    gen->is_running = 1;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen) {
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    assert(gen->is_running);
    gen->is_running = 0;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
}
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen) {
    char result;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_BEGIN_CRITICAL_SECTION(gen);
    #endif
    result = gen->is_running;
    #if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_END_CRITICAL_SECTION();
    #endif
    return result;
}
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure) {
    CYTHON_UNUSED_VAR(closure);
    char result = __Pyx_Coroutine_get_is_running((__pyx_CoroutineObject*)gen);
    if (result) Py_RETURN_TRUE;
    else Py_RETURN_FALSE;
}
#if __PYX_HAS_PY_AM_SEND == 2
static void __Pyx_SetBackportTypeAmSend(PyTypeObject *type, __Pyx_PyAsyncMethodsStruct *static_amsend_methods, __Pyx_pyiter_sendfunc am_send) {
    Py_ssize_t ptr_offset = (char*)(type->tp_as_async) - (char*)type;
    if (ptr_offset < 0 || ptr_offset > type->tp_basicsize) {
        return;
    }
    memcpy((void*)static_amsend_methods, (void*)(type->tp_as_async), sizeof(*type->tp_as_async));
    static_amsend_methods->am_send = am_send;
    type->tp_as_async = __Pyx_SlotTpAsAsync(static_amsend_methods);
}
#endif

/* Coroutine */
static void __Pyx_CoroutineAwait_dealloc(PyObject *self) {
    PyObject_GC_UnTrack(self);
    Py_CLEAR(((__pyx_CoroutineAwaitObject*)self)->coroutine);
    __Pyx_PyHeapTypeObject_GC_Del(self);
}
static int __Pyx_CoroutineAwait_traverse(__pyx_CoroutineAwaitObject *self, visitproc visit, void *arg) {
    {
        int e = __Pyx_call_type_traverse((PyObject*)self, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(self->coroutine);
    return 0;
}
static int __Pyx_CoroutineAwait_clear(__pyx_CoroutineAwaitObject *self) {
    Py_CLEAR(self->coroutine);
    return 0;
}
static PyObject *__Pyx_CoroutineAwait_Next(__pyx_CoroutineAwaitObject *self) {
    return __Pyx_Generator_Next(self->coroutine);
}
static PyObject *__Pyx_CoroutineAwait_Send(__pyx_CoroutineAwaitObject *self, PyObject *value) {
    return __Pyx_Coroutine_Send(self->coroutine, value);
}
#if __PYX_HAS_PY_AM_SEND
static __Pyx_PySendResult __Pyx_CoroutineAwait_AmSend(PyObject *self, PyObject *value, PyObject **retval) {
    return __Pyx_Coroutine_AmSend(((__pyx_CoroutineAwaitObject*)self)->coroutine, value, retval);
}
#endif
static PyObject *__Pyx_CoroutineAwait_Throw(__pyx_CoroutineAwaitObject *self, PyObject *args) {
    return __Pyx_Coroutine_Throw(self->coroutine, args);
}
static __Pyx_PySendResult __Pyx_CoroutineAwait_Close(__pyx_CoroutineAwaitObject *self) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result = __Pyx_Coroutine_Close(self->coroutine, &retval);
    Py_XDECREF(retval);
    return result;
}
static PyObject *__Pyx_CoroutineAwait_Close_Method(__pyx_CoroutineAwaitObject *self, PyObject *arg) {
    PyObject *retval = NULL;
    __Pyx_PySendResult result;
    CYTHON_UNUSED_VAR(arg);
    result = __Pyx_Coroutine_Close(self->coroutine, &retval);
    if (unlikely(result == PYGEN_ERROR))
        return NULL;
    Py_XDECREF(retval);
    Py_RETURN_NONE;
}
static PyObject *__Pyx_CoroutineAwait_self(PyObject *self) {
    Py_INCREF(self);
    return self;
}
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_CoroutineAwait_no_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) {
    CYTHON_UNUSED_VAR(type);
    CYTHON_UNUSED_VAR(args);
    CYTHON_UNUSED_VAR(kwargs);
    PyErr_SetString(PyExc_TypeError, "cannot instantiate type, use 'await coroutine' instead");
    return NULL;
}
#endif
static PyObject *__Pyx_CoroutineAwait_reduce_ex(__pyx_CoroutineAwaitObject *self, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    __Pyx_TypeName self_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE((PyObject*)self));
    PyErr_Format(PyExc_TypeError, "cannot pickle '" __Pyx_FMT_TYPENAME "' object",
                         self_type_name);
    __Pyx_DECREF_TypeName(self_type_name);
    return NULL;
}
static PyMethodDef __pyx_CoroutineAwait_methods[] = {
    {"send", (PyCFunction) __Pyx_CoroutineAwait_Send, METH_O,
     PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_CoroutineAwait_Throw, METH_VARARGS,
     PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_CoroutineAwait_Close_Method, METH_NOARGS, PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")},
    {"__reduce_ex__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_O, 0},
    {"__reduce__", (PyCFunction) __Pyx_CoroutineAwait_reduce_ex, METH_NOARGS, 0},
    {0, 0, 0, 0}
};
static PyType_Slot __pyx_CoroutineAwaitType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CoroutineAwait_dealloc},
    {Py_tp_traverse, (void *)__Pyx_CoroutineAwait_traverse},
    {Py_tp_clear, (void *)__Pyx_CoroutineAwait_clear},
#if !CYTHON_COMPILING_IN_PYPY
    {Py_tp_new, (void *)__Pyx_CoroutineAwait_no_new},
#endif
    {Py_tp_methods, (void *)__pyx_CoroutineAwait_methods},
    {Py_tp_iter, (void *)__Pyx_CoroutineAwait_self},
    {Py_tp_iternext, (void *)__Pyx_CoroutineAwait_Next},
#if __PYX_HAS_PY_AM_SEND == 1
    {Py_am_send, (void *)__Pyx_CoroutineAwait_AmSend},
#endif
    {0, 0},
};
static PyType_Spec __pyx_CoroutineAwaitType_spec = {
    __PYX_TYPE_MODULE_PREFIX "coroutine_wrapper",
    sizeof(__pyx_CoroutineAwaitObject),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | __Pyx_TPFLAGS_HAVE_AM_SEND,
    __pyx_CoroutineAwaitType_slots
};
#if __PYX_HAS_PY_AM_SEND == 2 // backport
static __Pyx_PyAsyncMethodsStruct __pyx_CoroutineAwait_as_async;
#endif
static CYTHON_INLINE PyObject *__Pyx__Coroutine_await(PyObject *coroutine) {
    __pyx_CoroutineAwaitObject *await = PyObject_GC_New(__pyx_CoroutineAwaitObject, __pyx_mstate_global->__pyx_CoroutineAwaitType);
    if (unlikely(!await)) return NULL;
    Py_INCREF(coroutine);
    await->coroutine = coroutine;
    PyObject_GC_Track(await);
    return (PyObject*)await;
}
static PyObject *__Pyx_Coroutine_await(PyObject *coroutine) {
    if (unlikely(!coroutine || !__Pyx_Coroutine_Check(coroutine))) {
        PyErr_SetString(PyExc_TypeError, "invalid input, expected coroutine");
        return NULL;
    }
    return __Pyx__Coroutine_await(coroutine);
}
static PyMethodDef __pyx_Coroutine_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     PyDoc_STR("send(arg) -> send 'arg' into coroutine,\nreturn next iterated value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in coroutine,\nreturn next iterated value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, PyDoc_STR("close() -> raise GeneratorExit inside coroutine.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Coroutine_memberlist[] = {
    {"cr_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     PyDoc_STR("object being awaited, or None")},
    {"cr_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Coroutine_getsets[] = {
    {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     PyDoc_STR("name of the coroutine"), 0},
    {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     PyDoc_STR("qualified name of the coroutine"), 0},
    {"cr_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     PyDoc_STR("Frame of the coroutine"), 0},
    {"cr_running", __Pyx_Coroutine_get_is_running_getter, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_CoroutineType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_am_await, (void *)&__Pyx_Coroutine_await},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_methods, (void *)__pyx_Coroutine_methods},
    {Py_tp_members, (void *)__pyx_Coroutine_memberlist},
    {Py_tp_getset, (void *)__pyx_Coroutine_getsets},
    {Py_tp_getattro, (void *) PyObject_GenericGetAttr},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    {Py_am_send, (void *)__Pyx_Coroutine_AmSend},
#endif
    {0, 0},
};
static PyType_Spec __pyx_CoroutineType_spec = {
    __PYX_TYPE_MODULE_PREFIX "coroutine",
    sizeof(__pyx_CoroutineObject),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE | __Pyx_TPFLAGS_HAVE_AM_SEND,
    __pyx_CoroutineType_slots
};
#if __PYX_HAS_PY_AM_SEND == 2
static __Pyx_PyAsyncMethodsStruct __pyx_Coroutine_as_async;
#endif
static int __pyx_Coroutine_init(PyObject *module) {
    __pyx_mstatetype *mstate;
    CYTHON_MAYBE_UNUSED_VAR(module);
    mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_CoroutineType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineType_spec, NULL);
    if (unlikely(!mstate->__pyx_CoroutineType))
        return -1;
#if __PYX_HAS_PY_AM_SEND == 2
    __Pyx_SetBackportTypeAmSend(mstate->__pyx_CoroutineType, &__pyx_Coroutine_as_async, &__Pyx_Coroutine_AmSend);
#endif
#ifdef __Pyx_IterableCoroutine_USED
    if (unlikely(__pyx_IterableCoroutine_init(module) == -1))
        return -1;
#endif
    mstate->__pyx_CoroutineAwaitType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CoroutineAwaitType_spec, NULL);
    if (unlikely(!mstate->__pyx_CoroutineAwaitType))
        return -1;
#if __PYX_HAS_PY_AM_SEND == 2
    __Pyx_SetBackportTypeAmSend(mstate->__pyx_CoroutineAwaitType, &__pyx_CoroutineAwait_as_async, &__Pyx_CoroutineAwait_AmSend);
#endif
    return 0;
}

/* CoroutineSetYieldFrom */
static void
__Pyx_Coroutine_Set_Owned_Yield_From(__pyx_CoroutineObject *gen, PyObject *yf) {
    assert (!gen->yieldfrom);
#if CYTHON_USE_AM_SEND
    assert (!gen->yieldfrom_am_send);
    #if PY_VERSION_HEX < 0x030A00F0
    if (__Pyx_PyType_HasFeature(Py_TYPE(yf), __Pyx_TPFLAGS_HAVE_AM_SEND))
    #endif
    {
        __Pyx_pyiter_sendfunc am_send;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
        am_send = __Pyx_PyObject_TryGetSubSlot(yf, tp_as_async, am_send, __Pyx_pyiter_sendfunc);
        #else
        __Pyx_PyAsyncMethodsStruct* tp_as_async = (__Pyx_PyAsyncMethodsStruct*) Py_TYPE(yf)->tp_as_async;
        am_send = tp_as_async ? tp_as_async->am_send : NULL;
        #endif
        if (likely(am_send)) {
            gen->yieldfrom_am_send = am_send;
        }
    }
#endif
    gen->yieldfrom = yf;
}

/* Coro_CheckExact */
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_PyCoro_CheckExact(PyObject *o) {
    return (PyObject*)Py_TYPE(o) == __pyx_mstate_global->__Pyx_CachedCoroType;
}
#endif

/* GetAwaitIter */
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAwaitableIter(PyObject *o) {
#ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(o)) {
        return __Pyx_NewRef(o);
    }
#endif
    return __Pyx__Coroutine_GetAwaitableIter(o);
}
static void __Pyx_Coroutine_AwaitableIterError(PyObject *source) {
#if (PY_VERSION_HEX < 0x030d0000 || defined(_PyErr_FormatFromCause)) && !CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_TypeName source_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(source));
    _PyErr_FormatFromCause(PyExc_TypeError,
        "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name);
    __Pyx_DECREF_TypeName(source_type_name);
#else
    PyObject *exc, *val, *val2, *tb;
    __Pyx_TypeName source_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(source));
    assert(PyErr_Occurred());
    PyErr_Fetch(&exc, &val, &tb);
    PyErr_NormalizeException(&exc, &val, &tb);
    if (tb != NULL) {
        PyException_SetTraceback(val, tb);
        Py_DECREF(tb);
    }
    Py_DECREF(exc);
    assert(!PyErr_Occurred());
    PyErr_Format(PyExc_TypeError,
        "'async for' received an invalid object from __anext__: " __Pyx_FMT_TYPENAME, source_type_name);
    __Pyx_DECREF_TypeName(source_type_name);
    PyErr_Fetch(&exc, &val2, &tb);
    PyErr_NormalizeException(&exc, &val2, &tb);
    Py_INCREF(val);
    PyException_SetCause(val2, val);
    PyException_SetContext(val2, val);
    PyErr_Restore(exc, val2, tb);
#endif
}
static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *obj) {
    PyObject *res;
    unaryfunc am_await;
    am_await = __Pyx_PyObject_TryGetSubSlot(obj, tp_as_async, am_await, unaryfunc);
    if (likely(am_await)) {
        res = (*am_await)(obj);
    } else
#if CYTHON_COMPILING_IN_CPYTHON && defined(CO_ITERABLE_COROUTINE)
#if PY_VERSION_HEX >= 0x030C00A6
    if (PyGen_CheckExact(obj) && (PyGen_GetCode((PyGenObject*)obj)->co_flags & CO_ITERABLE_COROUTINE)) {
#else
    if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
#endif
        return __Pyx_NewRef(obj);
    } else
#endif
    {
        PyObject *method = NULL;
        int is_method = __Pyx_PyObject_GetMethod(obj, __pyx_mstate_global->__pyx_n_u_await, &method);
        if (likely(is_method)) {
            res = __Pyx_PyObject_CallOneArg(method, obj);
        } else if (likely(method)) {
            res = __Pyx_PyObject_CallNoArg(method);
        } else
            goto slot_error;
        Py_DECREF(method);
    }
    if (unlikely(!res)) {
        __Pyx_Coroutine_AwaitableIterError(obj);
        goto bad;
    }
    if (unlikely(!PyIter_Check(res))) {
        __Pyx_TypeName res_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(res));
        PyErr_Format(PyExc_TypeError,
            "__await__() returned non-iterator of type '" __Pyx_FMT_TYPENAME "'", res_type_name);
        __Pyx_DECREF_TypeName(res_type_name);
        Py_CLEAR(res);
    } else {
        int is_coroutine = 0;
        #ifdef __Pyx_Coroutine_USED
        is_coroutine |= __Pyx_Coroutine_Check(res);
        #endif
        is_coroutine |= __Pyx_PyCoro_CheckExact(res);
        if (unlikely(is_coroutine)) {
            /* __await__ must return an *iterator*, not
               a coroutine or another awaitable (see PEP 492) */
            PyErr_SetString(PyExc_TypeError,
                            "__await__() returned a coroutine");
            Py_CLEAR(res);
        }
    }
    return res;
slot_error:
    {
        __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
        PyErr_Format(PyExc_TypeError,
            "object " __Pyx_FMT_TYPENAME " can't be used in 'await' expression", obj_type_name);
        __Pyx_DECREF_TypeName(obj_type_name);
    }
bad:
    return NULL;
}

/* CoroutineYieldFrom */
  static __Pyx_PySendResult __Pyx_Coroutine_Yield_From_Coroutine(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) {
    __Pyx_PySendResult result;
    if (unlikely(((__pyx_CoroutineObject*)source)->yieldfrom)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "coroutine is being awaited already");
        return PYGEN_ERROR;
    }
    result = __Pyx_Coroutine_AmSend(source, Py_None, retval);
    if (result == PYGEN_NEXT) {
        Py_INCREF(source);
        __Pyx_Coroutine_Set_Owned_Yield_From(gen, source);
    }
    return result;
}
static __Pyx_PySendResult __Pyx_Coroutine_Yield_From_Generic(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) {
    __Pyx_PySendResult result;
    PyObject *source_gen = NULL;
    source_gen = __Pyx_Coroutine_GetAwaitableIter(source);
    if (unlikely(!source_gen)) return PYGEN_ERROR;
    if (__Pyx_Coroutine_Check(source_gen)) {
        result = __Pyx_Coroutine_Yield_From_Coroutine(gen, source_gen, retval);
        Py_DECREF(source_gen);
        return result;
    }
    *retval = __Pyx_PyIter_Next_Plain(source_gen);
    if (*retval) {
        __Pyx_Coroutine_Set_Owned_Yield_From(gen, source_gen);
        return PYGEN_NEXT;
    }
    result = __Pyx_Coroutine_status_from_result(retval);
    Py_XDECREF(source_gen);
    return result;
}
static CYTHON_INLINE __Pyx_PySendResult __Pyx_Coroutine_Yield_From(__pyx_CoroutineObject *gen, PyObject *source, PyObject **retval) {
    if (__Pyx_Coroutine_Check(source)) {
        return __Pyx_Coroutine_Yield_From_Coroutine(gen, source, retval);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(source)) {
        *retval = __Pyx_async_gen_asend_iternext(source);
        if (*retval) {
            Py_INCREF(source);
            __Pyx_Coroutine_Set_Owned_Yield_From(gen, source);
            return PYGEN_NEXT;
        }
        return __Pyx_Coroutine_status_from_result(retval);
    }
#endif
    return __Pyx_Coroutine_Yield_From_Generic(gen, source, retval);
}

/* ErrOccurredWithGIL */
  static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void) {
  int err;
  PyGILState_STATE _save = PyGILState_Ensure();
  err = !!PyErr_Occurred();
  PyGILState_Release(_save);
  return err;
}

/* PyObjectCallMethod0 */
  static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* UnpackTupleError */
  static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else {
      Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(t);
 #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely(size < 0)) return;
 #endif
      if (size < index) {
        __Pyx_RaiseNeedMoreValuesError(size);
      } else {
        __Pyx_RaiseTooManyValuesError(index);
      }
    }
}

/* UnpackTuple2 */
  static CYTHON_INLINE int __Pyx_unpack_tuple2(
        PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple) {
    if (likely(is_tuple || PyTuple_Check(tuple))) {
        Py_ssize_t size;
        if (has_known_size) {
            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);
        }
        size = __Pyx_PyTuple_GET_SIZE(tuple);
        if (likely(size == 2)) {
            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);
        }
        if (size >= 0) {
            __Pyx_UnpackTupleError(tuple, 2);
        }
        return -1;
    } else {
        return __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple);
    }
}
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
    value1 = __Pyx_PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = __Pyx_PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = __Pyx_PyObject_GetIterNextFunc(iter);
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
  #if CYTHON_COMPILING_IN_PYPY
#include <string.h>
#endif
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#else
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
#if !CYTHON_COMPILING_IN_PYPY
static CYTHON_INLINE int __Pyx_dict_iter_next_source_is_dict(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem) {
    PyObject *key, *value;
    if (unlikely(orig_length != PyDict_Size(iter_obj))) {
        PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
        return -1;
    }
    if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
        return 0;
    }
    if (pitem) {
        PyObject* tuple = PyTuple_New(2);
        if (unlikely(!tuple)) {
            return -1;
        }
        Py_INCREF(key);
        Py_INCREF(value);
        #if CYTHON_ASSUME_SAFE_MACROS
        PyTuple_SET_ITEM(tuple, 0, key);
        PyTuple_SET_ITEM(tuple, 1, value);
        #else
        if (unlikely(PyTuple_SetItem(tuple, 0, key) < 0)) {
            Py_DECREF(value);
            Py_DECREF(tuple);
            return -1;
        }
        if (unlikely(PyTuple_SetItem(tuple, 1, value) < 0)) {
            Py_DECREF(tuple);
            return -1;
        }
        #endif
        *pitem = tuple;
    } else {
        if (pkey) {
            Py_INCREF(key);
            *pkey = key;
        }
        if (pvalue) {
            Py_INCREF(value);
            *pvalue = value;
        }
    }
    return 1;
}
#endif
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        int result;
#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_BEGIN_CRITICAL_SECTION(iter_obj);
#endif
        result = __Pyx_dict_iter_next_source_is_dict(iter_obj, orig_length, ppos, pkey, pvalue, pitem);
#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_END_CRITICAL_SECTION();
#endif
        return result;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(iter_obj);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(tuple_size < 0)) return -1;
        #endif
        if (unlikely(pos >= tuple_size)) return 0;
        *ppos = pos + 1;
        #if CYTHON_ASSUME_SAFE_MACROS
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        #else
        next_item = PyTuple_GetItem(iter_obj, pos);
        if (unlikely(!next_item)) return -1;
        #endif
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        Py_ssize_t list_size = __Pyx_PyList_GET_SIZE(iter_obj);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(list_size < 0)) return -1;
        #endif
        if (unlikely(pos >= list_size)) return 0;
        *ppos = pos + 1;
        #if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
        next_item = PyList_GetItemRef(iter_obj, pos);
        if (unlikely(!next_item)) return -1;
        #elif CYTHON_ASSUME_SAFE_MACROS
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
        #else
        next_item = PyList_GetItem(iter_obj, pos);
        if (unlikely(!next_item)) return -1;
        Py_INCREF(next_item);
        #endif
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* dict_getitem_default */
  static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
    PyObject* value;
#if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (unlikely(PyErr_Occurred()))
            return NULL;
        value = default_value;
    }
    Py_INCREF(value);
    if ((1));
#else
    if (PyBytes_CheckExact(key) || PyUnicode_CheckExact(key) || PyLong_CheckExact(key)) {
        value = PyDict_GetItem(d, key);
        if (unlikely(!value)) {
            value = default_value;
        }
        Py_INCREF(value);
    }
#endif
    else {
        if (default_value == Py_None)
            value = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_get, d, key);
        else
            value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_get, d, key, default_value);
    }
    return value;
}

/* PyUnicode_Unicode */
  static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) {
    if (unlikely(obj == Py_None))
        obj = __pyx_mstate_global->__pyx_kp_u_None;
    return __Pyx_NewRef(obj);
}

/* ImportFrom */
  static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__6);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\
                CYTHON_COMPILING_IN_GRAAL
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
    }
    return value;
}

/* ObjectGetItem */
  #if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* AsyncIter */
  static PyObject *__Pyx_Coroutine_GetAsyncIter_Fail(PyObject *obj) {
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
                 "'async for' requires an object with __aiter__ method, got " __Pyx_FMT_TYPENAME, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_Coroutine_GetAsyncIter(PyObject *obj) {
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(obj)) {
        return __Pyx_NewRef(obj);
    }
#endif
    {
        unaryfunc am_aiter = __Pyx_PyObject_TryGetSubSlot(obj, tp_as_async, am_aiter, unaryfunc);
        if (likely(am_aiter)) {
            return (*am_aiter)(obj);
        }
    }
    return __Pyx_Coroutine_GetAsyncIter_Fail(obj);
}
static PyObject *__Pyx_Coroutine_AsyncIterNext_Fail(PyObject *obj) {
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'async for' requires an object with __anext__ method, got " __Pyx_FMT_TYPENAME, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_Coroutine_AsyncIterNext(PyObject *obj) {
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(obj)) {
        return __Pyx_async_gen_anext(obj);
    }
#endif
    {
        unaryfunc am_anext = __Pyx_PyObject_TryGetSubSlot(obj, tp_as_async, am_anext, unaryfunc);
        if (likely(am_anext)) {
            return (*am_anext)(obj);
        }
    }
    return __Pyx_Coroutine_AsyncIterNext_Fail(obj);
}

/* CallNextTpTraverse */
  static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
    PyTypeObject* type = Py_TYPE(obj);
    traverseproc tp_traverse = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc) != current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_traverse = __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc)) == current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_traverse)
        return tp_traverse(obj, v, a);
    return 0;
}

/* CallNextTpClear */
  static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
    PyTypeObject* type = Py_TYPE(obj);
    inquiry tp_clear = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_clear, inquiry) != current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_clear = __Pyx_PyType_GetSlot(type, tp_clear, inquiry)) == current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_clear)
        tp_clear(obj);
}

/* ValidateBasesTuple */
  #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_SIZE
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (unlikely(n < 0)) return -1;
#endif
    for (i = 1; i < n; i++)
    {
        PyTypeObject *b;
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !CYTHON_USE_TYPE_SLOTS
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
  CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
    while (t) {
        PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
        if (bases) {
            return 1;
        }
        t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
    }
    return 0;
}
static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    if (!__Pyx_PyType_HasMultipleInheritance(t)) {
        return PyType_Ready(t);
    }
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
                !CYTHON_COMPILING_IN_GRAAL
        gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* SetVTable */
  static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable */
  static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
  static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i=0;
    Py_ssize_t size;
    void** base_vtables;
    __Pyx_TypeName tp_base_name = NULL;
    __Pyx_TypeName base_name = NULL;
    void* unknown = (void*)-1;
    PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*);
    int base_depth = 0;
    {
        PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        while (base) {
            base_depth += 1;
            base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
        }
    }
    base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
#if CYTHON_COMPILING_IN_LIMITED_API
    size = PyTuple_Size(bases);
    if (size < 0) goto other_failure;
#else
    size = PyTuple_GET_SIZE(bases);
#endif
    for (i = 1; i < size; i++) {
        PyObject *basei;
        void* base_vtable;
#if CYTHON_AVOID_BORROWED_REFS
        basei = PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#else
        basei = PyTuple_GET_ITEM(bases, i);
#endif
        base_vtable = __Pyx_GetVtable((PyTypeObject*)basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
            }
        }
    }
    PyErr_Clear();
    PyMem_Free(base_vtables);
    return 0;
bad:
    {
        PyTypeObject* basei = NULL;
        PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        tp_base_name = __Pyx_PyType_GetFullyQualifiedName(tp_base);
#if CYTHON_AVOID_BORROWED_REFS
        basei = (PyTypeObject*)PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = (PyTypeObject*)PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#else
        basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i);
#endif
        base_name = __Pyx_PyType_GetFullyQualifiedName(basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
    }
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
really_bad: // bad has failed!
#endif
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
other_failure:
#endif
    PyMem_Free(base_vtables);
    return -1;
}

/* LimitedApiGetTypeDict */
  #if CYTHON_COMPILING_IN_LIMITED_API
static Py_ssize_t __Pyx_GetTypeDictOffset(void) {
    PyObject *tp_dictoffset_o;
    Py_ssize_t tp_dictoffset;
    tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__");
    if (unlikely(!tp_dictoffset_o)) return -1;
    tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
    Py_DECREF(tp_dictoffset_o);
    if (unlikely(tp_dictoffset == 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' doesn't have a dictoffset");
        return -1;
    } else if (unlikely(tp_dictoffset < 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' has an unexpected negative dictoffset. "
            "Please report this as Cython bug");
        return -1;
    }
    return tp_dictoffset;
}
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {
    static Py_ssize_t tp_dictoffset = 0;
    if (unlikely(tp_dictoffset == 0)) {
        tp_dictoffset = __Pyx_GetTypeDictOffset();
        if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
            tp_dictoffset = 0; // try again next time?
            return NULL;
        }
    }
    return *(PyObject**)((char*)tp + tp_dictoffset);
}
#endif

/* DelItemOnTypeDict */
  static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_DelItem(tp_dict, k);
    if (likely(!result)) PyType_Modified(tp);
    return result;
}

/* SetItemOnTypeDict */
  static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_SetItem(tp_dict, k, v);
    if (likely(!result)) {
        PyType_Modified(tp);
        if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
            PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name,  (PyObject *) tp, k, NULL);
            if (!setNameResult) return -1;
            Py_DECREF(setNameResult);
        }
    }
    return result;
}

/* SetupReduce */
  static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
            if (likely(reduce_cython)) {
                ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetFullyQualifiedName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* FormatTypeName */
  #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
static __Pyx_TypeName
__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
{
    PyObject *module = NULL, *name = NULL, *result = NULL;
    #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
    name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_qualname);
    #else
    name = PyType_GetQualName(tp);
    #endif
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
    module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_module);
    if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
    if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
        result = name;
        name = NULL;
        goto done;
    }
    result = PyUnicode_FromFormat("%U.%U", module, name);
    if (unlikely(result == NULL)) goto bad;
  done:
    Py_XDECREF(name);
    Py_XDECREF(module);
    return result;
  bad:
    PyErr_Clear();
    if (name) {
        result = name;
        name = NULL;
    } else {
        result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__13);
    }
    goto done;
}
#endif

/* ValidateExternBase */
  static int __Pyx_validate_extern_base(PyTypeObject *base) {
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_itemsize;
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
    itemsize = ((PyTypeObject *)base)->tp_itemsize;
#else
    py_itemsize = PyObject_GetAttrString((PyObject*)base, "__itemsize__");
    if (!py_itemsize)
        return -1;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        return -1;
#endif
    if (itemsize) {
        __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(base);
        PyErr_Format(PyExc_TypeError,
                "inheritance from PyVarObject types like '" __Pyx_FMT_TYPENAME "' not currently supported", b_name);
        __Pyx_DECREF_TypeName(b_name);
        return -1;
    }
    return 0;
}

/* TypeImport */
  #ifndef __PYX_HAVE_RT_ImportType_3_1_1
#define __PYX_HAVE_RT_ImportType_3_1_1
static PyTypeObject *__Pyx_ImportType_3_1_1(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_1 check_size)
{
    PyObject *result = 0;
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !CYTHON_COMPILING_IN_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    if (size == 0) {
        return (PyTypeObject *)result;
    }
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_1_1 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_1_1 && (size_t)basicsize > size) {
        if (PyErr_WarnFormat(NULL, 0,
                "%.200s.%.200s size changed, may indicate binary incompatibility. "
                "Expected %zd from C header, got %zd from PyObject",
                module_name, class_name, size, basicsize) < 0) {
            goto bad;
        }
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* ListPack */
  static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...) {
    va_list va;
    PyObject *l = PyList_New(n);
    va_start(va, n);
    if (unlikely(!l)) goto end;
    for (Py_ssize_t i=0; i<n; ++i) {
        PyObject *arg = va_arg(va, PyObject*);
        Py_INCREF(arg);
        if (__Pyx_PyList_SET_ITEM(l, i, arg) != (0)) {
            Py_CLEAR(l);
            goto end;
        }
    }
    end:
    va_end(va);
    return l;
}

/* CalculateMetaclass */
  static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_SIZE
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
        metaclass = &PyType_Type;
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* Py3ClassCreate */
  static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
    Py_XDECREF(owned_metaclass);
    return result;
}

/* Py3UpdateBases */
  static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL;
#if CYTHON_ASSUME_SAFE_SIZE
    size_bases = PyTuple_GET_SIZE(bases);
#else
    size_bases = PyTuple_Size(bases);
    if (size_bases < 0) return NULL;
#endif
    for (i = 0; i < size_bases; i++) {
#if CYTHON_AVOID_BORROWED_REFS
        Py_CLEAR(base);
#endif
#if CYTHON_ASSUME_SAFE_MACROS
        base = PyTuple_GET_ITEM(bases, i);
#else
        base = PyTuple_GetItem(bases, i);
        if (!base) goto error;
#endif
#if CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(base);
#endif
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                PyObject *base_from_list;
#if CYTHON_ASSUME_SAFE_MACROS
                base_from_list = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base_from_list);
                Py_INCREF(base_from_list);
#else
                base_from_list = PyTuple_GetItem(bases, j);
                if (!base_from_list) goto error;
                Py_INCREF(base_from_list);
                if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error;
#endif
            }
        }
#if CYTHON_ASSUME_SAFE_SIZE
        j = PyList_GET_SIZE(new_bases);
#else
        j = PyList_Size(new_bases);
        if (j < 0) goto error;
#endif
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return result;
error:
    Py_XDECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return NULL;
}

/* CLineInTraceback */
  #if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_mstate_global->__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __Pyx_BEGIN_CRITICAL_SECTION(*cython_runtime_dict);
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback))
        Py_XINCREF(use_cline);
        __Pyx_END_CRITICAL_SECTION();
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_cython_runtime, __pyx_mstate_global->__pyx_n_u_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_INCREF(use_cline);
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_mstate_global->__pyx_cython_runtime, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    Py_XDECREF(use_cline);
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
  static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
    __Pyx_CachedCodeObjectType* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = code_cache->entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__find_code_object;
    return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
    if (old_count < 0) {
        __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
        return NULL;
    }
#endif
    __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
#endif
    return result;
#endif
}
static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
{
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            code_cache->entries = entries;
            code_cache->max_count = 64;
            code_cache->count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
        __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_INCREF(code_object);
        Py_DECREF(tmp);
        return;
    }
    if (code_cache->count == code_cache->max_count) {
        int new_max = code_cache->max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        code_cache->entries = entries;
        code_cache->max_count = new_max;
    }
    for (i=code_cache->count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    code_cache->count++;
    Py_INCREF(code_object);
}
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__insert_code_object;
    return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type expected = 0;
    if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
        return;
    }
#endif
    __pyx__insert_code_object(code_cache, code_line, code_object);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
#endif
#endif
}

/* AddTraceback */
  #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        (void) __pyx_cfilenm;
        (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!code_object) {
        code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
        if (unlikely(!code_object)) goto bad;
        py_py_line = PyLong_FromLong(py_line);
        if (unlikely(!py_py_line)) goto bad;
        py_funcname = PyUnicode_FromString(funcname);
        if (unlikely(!py_funcname)) goto bad;
        dict = PyDict_New();
        if (unlikely(!dict)) goto bad;
        {
            PyObject *old_code_object = code_object;
            code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
            Py_DECREF(old_code_object);
        }
        if (unlikely(!code_object)) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
    } else {
        dict = PyDict_New();
    }
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    if (c_line) {
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
    }
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_mstate_global->__pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* CIntFromPyVerify */
  #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus neg_one = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1, const_zero = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus __Pyx_PyLong_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus neg_one = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1, const_zero = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
        val = __Pyx_PyLong_As_enum____pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) >= 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) (((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)-1)*(((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) ((((((((((enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
#endif
        if (unlikely(ret))
            return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus");
    return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus");
    return (enum __pyx_t_4grpc_7_cython_6cygrpc_AioServerStatus) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_status_code __Pyx_PyLong_As_grpc_status_code(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_status_code neg_one = (grpc_status_code) -1, const_zero = (grpc_status_code) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_status_code val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_status_code) -1;
        val = __Pyx_PyLong_As_grpc_status_code(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_status_code, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_status_code) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_status_code) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_status_code) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) >= 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_status_code) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_status_code) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_status_code) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_status_code, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_status_code) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_status_code) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_status_code) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_status_code) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((((grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_status_code) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) (((grpc_status_code)-1)*(((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_status_code) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_status_code, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_status_code) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_status_code) ((((((((((grpc_status_code)digits[3]) << PyLong_SHIFT) | (grpc_status_code)digits[2]) << PyLong_SHIFT) | (grpc_status_code)digits[1]) << PyLong_SHIFT) | (grpc_status_code)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_status_code) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_status_code) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_status_code, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_status_code val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_status_code) -1;
#endif
        if (unlikely(ret))
            return (grpc_status_code) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_status_code");
    return (grpc_status_code) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_status_code");
    return (grpc_status_code) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_status_code(grpc_status_code value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_status_code neg_one = (grpc_status_code) -1, const_zero = (grpc_status_code) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_status_code) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_status_code) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_status_code) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_status_code) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_status_code) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_status_code),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_status_code));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyLong_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_connectivity_state __Pyx_PyLong_As_grpc_connectivity_state(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_connectivity_state neg_one = (grpc_connectivity_state) -1, const_zero = (grpc_connectivity_state) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_connectivity_state val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_connectivity_state) -1;
        val = __Pyx_PyLong_As_grpc_connectivity_state(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_connectivity_state) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_connectivity_state) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_connectivity_state) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) >= 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_connectivity_state) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_connectivity_state) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_connectivity_state) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_connectivity_state) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_connectivity_state) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((((grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_connectivity_state) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) (((grpc_connectivity_state)-1)*(((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_connectivity_state) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_connectivity_state, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_connectivity_state) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_connectivity_state) ((((((((((grpc_connectivity_state)digits[3]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[2]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[1]) << PyLong_SHIFT) | (grpc_connectivity_state)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_connectivity_state) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_connectivity_state) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_connectivity_state, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_connectivity_state val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_connectivity_state) -1;
#endif
        if (unlikely(ret))
            return (grpc_connectivity_state) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_connectivity_state");
    return (grpc_connectivity_state) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_connectivity_state");
    return (grpc_connectivity_state) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_local_connect_type(grpc_local_connect_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_local_connect_type neg_one = (grpc_local_connect_type) -1, const_zero = (grpc_local_connect_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_local_connect_type) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_local_connect_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_local_connect_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_local_connect_type) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_local_connect_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_local_connect_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_local_connect_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_local_connect_type __Pyx_PyLong_As_grpc_local_connect_type(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_local_connect_type neg_one = (grpc_local_connect_type) -1, const_zero = (grpc_local_connect_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_local_connect_type val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_local_connect_type) -1;
        val = __Pyx_PyLong_As_grpc_local_connect_type(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_local_connect_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_local_connect_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_local_connect_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) >= 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_local_connect_type) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_local_connect_type) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_local_connect_type) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_local_connect_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_local_connect_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((((grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_local_connect_type) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) (((grpc_local_connect_type)-1)*(((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_local_connect_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_local_connect_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_local_connect_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_local_connect_type) ((((((((((grpc_local_connect_type)digits[3]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[2]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[1]) << PyLong_SHIFT) | (grpc_local_connect_type)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_local_connect_type) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_local_connect_type) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_local_connect_type, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_local_connect_type val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_local_connect_type) -1;
#endif
        if (unlikely(ret))
            return (grpc_local_connect_type) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_local_connect_type");
    return (grpc_local_connect_type) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_local_connect_type");
    return (grpc_local_connect_type) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_completion_type __Pyx_PyLong_As_grpc_completion_type(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_completion_type neg_one = (grpc_completion_type) -1, const_zero = (grpc_completion_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_completion_type val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_completion_type) -1;
        val = __Pyx_PyLong_As_grpc_completion_type(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_completion_type, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_completion_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_completion_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_completion_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) >= 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_completion_type) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_completion_type) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_completion_type) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_completion_type, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_completion_type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_completion_type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((((grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_completion_type) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) (((grpc_completion_type)-1)*(((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_completion_type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_completion_type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_completion_type) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_completion_type) ((((((((((grpc_completion_type)digits[3]) << PyLong_SHIFT) | (grpc_completion_type)digits[2]) << PyLong_SHIFT) | (grpc_completion_type)digits[1]) << PyLong_SHIFT) | (grpc_completion_type)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_completion_type) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_completion_type) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_completion_type, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_completion_type val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_completion_type) -1;
#endif
        if (unlikely(ret))
            return (grpc_completion_type) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_completion_type");
    return (grpc_completion_type) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_completion_type");
    return (grpc_completion_type) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_connectivity_state(grpc_connectivity_state value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_connectivity_state neg_one = (grpc_connectivity_state) -1, const_zero = (grpc_connectivity_state) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_connectivity_state) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_connectivity_state) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_connectivity_state) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_connectivity_state) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_connectivity_state) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_connectivity_state),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_connectivity_state));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_call_error(grpc_call_error value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_call_error neg_one = (grpc_call_error) -1, const_zero = (grpc_call_error) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_call_error) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_call_error) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_call_error) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_call_error) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_call_error) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_call_error),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_call_error));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_completion_type(grpc_completion_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_completion_type neg_one = (grpc_completion_type) -1, const_zero = (grpc_completion_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_completion_type) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_completion_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_completion_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_completion_type) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_completion_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_completion_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_completion_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_op_type(grpc_op_type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_op_type neg_one = (grpc_op_type) -1, const_zero = (grpc_op_type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_op_type) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_op_type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_op_type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_op_type) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_op_type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_op_type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_op_type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_compression_algorithm(grpc_compression_algorithm value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_algorithm neg_one = (grpc_compression_algorithm) -1, const_zero = (grpc_compression_algorithm) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_compression_algorithm) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_compression_algorithm) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_algorithm) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_compression_algorithm),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_compression_algorithm));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_grpc_compression_level(grpc_compression_level value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_level neg_one = (grpc_compression_level) -1, const_zero = (grpc_compression_level) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(grpc_compression_level) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(grpc_compression_level) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(grpc_compression_level) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(grpc_compression_level) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(grpc_compression_level) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(grpc_compression_level),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(grpc_compression_level));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_compression_algorithm __Pyx_PyLong_As_grpc_compression_algorithm(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_compression_algorithm neg_one = (grpc_compression_algorithm) -1, const_zero = (grpc_compression_algorithm) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_compression_algorithm val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_compression_algorithm) -1;
        val = __Pyx_PyLong_As_grpc_compression_algorithm(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_compression_algorithm) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_compression_algorithm) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_compression_algorithm) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) >= 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_compression_algorithm) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_compression_algorithm) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_compression_algorithm) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_compression_algorithm) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_compression_algorithm) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((((grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_compression_algorithm) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) (((grpc_compression_algorithm)-1)*(((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_compression_algorithm) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_compression_algorithm, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_compression_algorithm) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_compression_algorithm) ((((((((((grpc_compression_algorithm)digits[3]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[2]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[1]) << PyLong_SHIFT) | (grpc_compression_algorithm)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_compression_algorithm) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_compression_algorithm) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_compression_algorithm, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_compression_algorithm val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_compression_algorithm) -1;
#endif
        if (unlikely(ret))
            return (grpc_compression_algorithm) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_compression_algorithm");
    return (grpc_compression_algorithm) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_compression_algorithm");
    return (grpc_compression_algorithm) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE size_t __Pyx_PyLong_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyLong_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (size_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(size_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(size_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        size_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (size_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (size_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (size_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (size_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((size_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((size_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (size_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntFromPy */
  static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyLong_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (long) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(long) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(long) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        long val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (long) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (long) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (long) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (long) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((long) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((long) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (long) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE grpc_call_error __Pyx_PyLong_As_grpc_call_error(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const grpc_call_error neg_one = (grpc_call_error) -1, const_zero = (grpc_call_error) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        grpc_call_error val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (grpc_call_error) -1;
        val = __Pyx_PyLong_As_grpc_call_error(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_call_error, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(grpc_call_error) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_call_error) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_call_error) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) >= 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (grpc_call_error) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(grpc_call_error) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_call_error) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(grpc_call_error, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(grpc_call_error) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(grpc_call_error) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(grpc_call_error) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(grpc_call_error) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((((grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(grpc_call_error) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) (((grpc_call_error)-1)*(((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(grpc_call_error) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(grpc_call_error, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(grpc_call_error) - 1 > 4 * PyLong_SHIFT)) {
                            return (grpc_call_error) ((((((((((grpc_call_error)digits[3]) << PyLong_SHIFT) | (grpc_call_error)digits[2]) << PyLong_SHIFT) | (grpc_call_error)digits[1]) << PyLong_SHIFT) | (grpc_call_error)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(grpc_call_error) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(grpc_call_error) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(grpc_call_error, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        grpc_call_error val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (grpc_call_error) -1;
#endif
        if (unlikely(ret))
            return (grpc_call_error) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to grpc_call_error");
    return (grpc_call_error) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to grpc_call_error");
    return (grpc_call_error) -1;
}

/* CIntToPy */
  static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if defined(HAVE_LONG_LONG) && !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
  static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyLong_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (unsigned int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(unsigned int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
        } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
        }
    }
    {
        unsigned int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (unsigned int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (unsigned int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (unsigned int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (unsigned int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((unsigned int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((unsigned int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (unsigned int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* Generator */
  static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {"gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     PyDoc_STR("object being iterated by 'yield from', or None")},
    {"gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     PyDoc_STR("name of the generator"), 0},
    {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     PyDoc_STR("qualified name of the generator"), 0},
    {"gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
     PyDoc_STR("Frame of the generator"), 0},
    {"gi_running", __Pyx_Coroutine_get_is_running_getter, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_GeneratorType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_Generator_Next},
    {Py_tp_methods, (void *)__pyx_Generator_methods},
    {Py_tp_members, (void *)__pyx_Generator_memberlist},
    {Py_tp_getset, (void *)__pyx_Generator_getsets},
    {Py_tp_getattro, (void *) PyObject_GenericGetAttr},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    {Py_am_send, (void *)__Pyx_Coroutine_AmSend},
#endif
    {0, 0},
};
static PyType_Spec __pyx_GeneratorType_spec = {
    __PYX_TYPE_MODULE_PREFIX "generator",
    sizeof(__pyx_CoroutineObject),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE | __Pyx_TPFLAGS_HAVE_AM_SEND,
    __pyx_GeneratorType_slots
};
#if __PYX_HAS_PY_AM_SEND == 2
static __Pyx_PyAsyncMethodsStruct __pyx_Generator_as_async;
#endif
static int __pyx_Generator_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_GeneratorType_spec, NULL);
    if (unlikely(!mstate->__pyx_GeneratorType)) {
        return -1;
    }
#if __PYX_HAS_PY_AM_SEND == 2
    __Pyx_SetBackportTypeAmSend(mstate->__pyx_GeneratorType, &__pyx_Generator_as_async, &__Pyx_Coroutine_AmSend);
#endif
    return 0;
}
static PyObject *__Pyx_Generator_GetInlinedResult(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *retval = NULL;
    if (unlikely(__Pyx_Coroutine_test_and_set_is_running(gen))) {
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    }
    __Pyx_PySendResult result = __Pyx_Coroutine_SendEx(gen, Py_None, &retval, 0);
    __Pyx_Coroutine_unset_is_running(gen);
    (void) result;
    assert (result == PYGEN_RETURN || result == PYGEN_ERROR);
    assert ((result == PYGEN_RETURN && retval != NULL) || (result == PYGEN_ERROR && retval == NULL));
    return retval;
}

/* AsyncGenerator */
  PyDoc_STRVAR(__Pyx_async_gen_send_doc,
"send(arg) -> send 'arg' into generator,\n\
return next yielded value or raise StopIteration.");
PyDoc_STRVAR(__Pyx_async_gen_close_doc,
"close() -> raise GeneratorExit inside generator.");
PyDoc_STRVAR(__Pyx_async_gen_throw_doc,
"throw(typ[,val[,tb]]) -> raise exception in generator,\n\
return next yielded value or raise StopIteration.");
PyDoc_STRVAR(__Pyx_async_gen_await_doc,
"__await__() -> return a representation that can be passed into the 'await' expression.");
static __pyx_CoroutineObject *__Pyx_AsyncGen_New(
            __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_PyAsyncGenObject *gen = PyObject_GC_New(__pyx_PyAsyncGenObject, __pyx_mstate_global->__pyx_AsyncGenType);
    if (unlikely(!gen))
        return NULL;
    gen->ag_finalizer = NULL;
    gen->ag_closed = 0;
    gen->ag_hooks_inited = 0;
    gen->ag_running_async = 0;
    return __Pyx__Coroutine_NewInit((__pyx_CoroutineObject*)gen, body, code, closure, name, qualname, module_name);
}
static PyObject *__Pyx_async_gen_asend_new(__pyx_PyAsyncGenObject *, PyObject *);
static PyObject *__Pyx_async_gen_athrow_new(__pyx_PyAsyncGenObject *, PyObject *);
static const char *__Pyx_NON_INIT_CORO_MSG = "can't send non-None value to a just-started coroutine";
static const char *__Pyx_ASYNC_GEN_IGNORED_EXIT_MSG = "async generator ignored GeneratorExit";
static const char *__Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG = "cannot reuse already awaited __anext__()/asend()";
static const char *__Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG = "cannot reuse already awaited aclose()/athrow()";
typedef enum {
    __PYX_AWAITABLE_STATE_INIT,
    __PYX_AWAITABLE_STATE_ITER,
    __PYX_AWAITABLE_STATE_CLOSED,
} __pyx_AwaitableState;
typedef struct __pyx_PyAsyncGenASend {
    PyObject_HEAD
    __pyx_PyAsyncGenObject *ags_gen;
    PyObject *ags_sendval;
    __pyx_AwaitableState ags_state;
} __pyx_PyAsyncGenASend;
typedef struct {
    PyObject_HEAD
    __pyx_PyAsyncGenObject *agt_gen;
    PyObject *agt_args;
    __pyx_AwaitableState agt_state;
} __pyx_PyAsyncGenAThrow;
typedef struct __pyx__PyAsyncGenWrappedValue {
    PyObject_HEAD
    PyObject *agw_val;
} __pyx__PyAsyncGenWrappedValue;
#define __pyx__PyAsyncGenWrappedValue_CheckExact(o)\
                    __Pyx_IS_TYPE(o, __pyx_mstate_global->__pyx__PyAsyncGenWrappedValueType)
static int
__Pyx_async_gen_traverse(__pyx_PyAsyncGenObject *gen, visitproc visit, void *arg)
{
    Py_VISIT(gen->ag_finalizer);
    return __Pyx_Coroutine_traverse((__pyx_CoroutineObject*)gen, visit, arg);
}
static PyObject *
__Pyx_async_gen_repr(__pyx_CoroutineObject *o)
{
    return PyUnicode_FromFormat("<async_generator object %S at %p>",
                                o->gi_qualname ? o->gi_qualname : Py_None, o);
}
static int
__Pyx_async_gen_init_hooks_firstiter(__pyx_PyAsyncGenObject *o, PyObject *firstiter)
{
    PyObject *res;
#if CYTHON_UNPACK_METHODS
    PyObject *self;
    if (likely(PyMethod_Check(firstiter)) && likely((self = PyMethod_GET_SELF(firstiter)) != NULL)) {
        PyObject *function = PyMethod_GET_FUNCTION(firstiter);
        res = __Pyx_PyObject_Call2Args(function, self, (PyObject*)o);
    } else
#endif
    res = __Pyx_PyObject_CallOneArg(firstiter, (PyObject*)o);
    Py_DECREF(firstiter);
    if (unlikely(res == NULL))
        return 1;
    Py_DECREF(res);
    return 0;
}
static CYTHON_INLINE int
__Pyx_async_gen_init_hooks_done(__pyx_PyAsyncGenObject *o) {
    return o->ag_hooks_inited != 0;
}
static int
__Pyx_async_gen_init_hooks(__pyx_PyAsyncGenObject *o)
{
#if !CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API
    PyThreadState *tstate;
#endif
    PyObject *finalizer;
    PyObject *firstiter;
    assert (!__Pyx_async_gen_init_hooks_done(o));
    o->ag_hooks_inited = 1;
#if CYTHON_COMPILING_IN_LIMITED_API
    {
        PyObject *hooks_func = PySys_GetObject("get_asyncgen_hooks");
        if (unlikely(!hooks_func)) {
            PyErr_SetString(
                PyExc_AttributeError,
                "Failed to get 'get_asyncgen_hooks' from sys"
            );
            return 1;
        }
        PyObject *async_gen_hooks = PyObject_CallFunctionObjArgs(hooks_func, NULL);
        if (unlikely(!async_gen_hooks)) return 1;
        firstiter = PySequence_GetItem(async_gen_hooks, 0);
        if (unlikely(!firstiter)) {
            Py_DECREF(async_gen_hooks);
            return 1;
        }
        if (firstiter == Py_None) {
            Py_CLEAR(firstiter);
        }
        finalizer = PySequence_GetItem(async_gen_hooks, 1);
        Py_DECREF(async_gen_hooks);
        if (unlikely(!finalizer)) {
            Py_XDECREF(firstiter);
            return 1;
        }
        if (finalizer == Py_None) {
            Py_CLEAR(finalizer);
        }
    }
#endif
#if CYTHON_COMPILING_IN_PYPY
    finalizer = _PyEval_GetAsyncGenFinalizer();
#elif !CYTHON_COMPILING_IN_LIMITED_API
    tstate = __Pyx_PyThreadState_Current;
    finalizer = tstate->async_gen_finalizer;
#endif
    if (finalizer) {
#if !CYTHON_COMPILING_IN_LIMITED_API
        Py_INCREF(finalizer);
#endif
        o->ag_finalizer = finalizer;
    }
#if CYTHON_COMPILING_IN_PYPY
    firstiter = _PyEval_GetAsyncGenFirstiter();
#elif !CYTHON_COMPILING_IN_LIMITED_API
    firstiter = tstate->async_gen_firstiter;
#endif
    if (firstiter) {
#if !CYTHON_COMPILING_IN_LIMITED_API
        Py_INCREF(firstiter);
#endif
        if (unlikely(__Pyx_async_gen_init_hooks_firstiter(o, firstiter)))
            return 1;
    }
    return 0;
}
static PyObject *
__Pyx_async_gen_anext(PyObject *g)
{
    __pyx_PyAsyncGenObject *o = (__pyx_PyAsyncGenObject*) g;
    if (!__Pyx_async_gen_init_hooks_done(o) && unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_asend_new(o, NULL);
}
static PyObject *
__Pyx_async_gen_anext_method(PyObject *g, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_async_gen_anext(g);
}
static PyObject *
__Pyx_async_gen_asend(__pyx_PyAsyncGenObject *o, PyObject *arg)
{
    if (!__Pyx_async_gen_init_hooks_done(o) && unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_asend_new(o, arg);
}
static PyObject *
__Pyx_async_gen_aclose(__pyx_PyAsyncGenObject *o, PyObject *arg)
{
    CYTHON_UNUSED_VAR(arg);
    if (!__Pyx_async_gen_init_hooks_done(o) && unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_athrow_new(o, NULL);
}
static PyObject *
__Pyx_async_gen_athrow(__pyx_PyAsyncGenObject *o, PyObject *args)
{
    if (!__Pyx_async_gen_init_hooks_done(o) && unlikely(__Pyx_async_gen_init_hooks(o))) {
        return NULL;
    }
    return __Pyx_async_gen_athrow_new(o, args);
}
static PyObject *
__Pyx_async_gen_self_method(PyObject *g, PyObject *arg) {
    CYTHON_UNUSED_VAR(arg);
    return __Pyx_NewRef(g);
}
static PyGetSetDef __Pyx_async_gen_getsetlist[] = {
    {"__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     PyDoc_STR("name of the async generator"), 0},
    {"__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     PyDoc_STR("qualified name of the async generator"), 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __Pyx_async_gen_memberlist[] = {
    {"ag_running", T_BOOL,   offsetof(__pyx_PyAsyncGenObject, ag_running_async), READONLY, NULL},
    {"ag_await", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     PyDoc_STR("object being awaited on, or None")},
    {"__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0},
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0},
    {0, 0, 0, 0, 0}
};
PyDoc_STRVAR(__Pyx_async_aclose_doc,
"aclose() -> raise GeneratorExit inside generator.");
PyDoc_STRVAR(__Pyx_async_asend_doc,
"asend(v) -> send 'v' in generator.");
PyDoc_STRVAR(__Pyx_async_athrow_doc,
"athrow(typ[,val[,tb]]) -> raise exception in generator.");
PyDoc_STRVAR(__Pyx_async_aiter_doc,
"__aiter__(v) -> return an asynchronous iterator.");
PyDoc_STRVAR(__Pyx_async_anext_doc,
"__anext__(v) -> continue asynchronous iteration and return the next element.");
static PyMethodDef __Pyx_async_gen_methods[] = {
    {"asend", (PyCFunction)__Pyx_async_gen_asend, METH_O, __Pyx_async_asend_doc},
    {"athrow",(PyCFunction)__Pyx_async_gen_athrow, METH_VARARGS, __Pyx_async_athrow_doc},
    {"aclose", (PyCFunction)__Pyx_async_gen_aclose, METH_NOARGS, __Pyx_async_aclose_doc},
    {"__aiter__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_aiter_doc},
    {"__anext__", (PyCFunction)__Pyx_async_gen_anext_method, METH_NOARGS, __Pyx_async_anext_doc},
    {0, 0, 0, 0}
};
static PyType_Slot __pyx_AsyncGenType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc},
    {Py_am_aiter, (void *)PyObject_SelfIter},
    {Py_am_anext, (void *)__Pyx_async_gen_anext},
    {Py_tp_repr, (void *)__Pyx_async_gen_repr},
    {Py_tp_traverse, (void *)__Pyx_async_gen_traverse},
    {Py_tp_methods, (void *)__Pyx_async_gen_methods},
    {Py_tp_members, (void *)__Pyx_async_gen_memberlist},
    {Py_tp_getset, (void *)__Pyx_async_gen_getsetlist},
#if CYTHON_USE_TP_FINALIZE
    {Py_tp_finalize, (void *)__Pyx_Coroutine_del},
#endif
    {0, 0},
};
static PyType_Spec __pyx_AsyncGenType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator",
    sizeof(__pyx_PyAsyncGenObject),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    __pyx_AsyncGenType_slots
};
static int
__Pyx_PyAsyncGen_ClearFreeLists(void)
{
    #if CYTHON_USE_FREELISTS
    int ret = __pyx_mstate_global->__Pyx_ag_value_freelist_free + __pyx_mstate_global->__Pyx_ag_asend_freelist_free;
    while (__pyx_mstate_global->__Pyx_ag_value_freelist_free) {
        __pyx__PyAsyncGenWrappedValue *o;
        o = __pyx_mstate_global->__Pyx_ag_value_freelist[--__pyx_mstate_global->__Pyx_ag_value_freelist_free];
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
    while (__pyx_mstate_global->__Pyx_ag_asend_freelist_free) {
        __pyx_PyAsyncGenASend *o;
        o = __pyx_mstate_global->__Pyx_ag_asend_freelist[--__pyx_mstate_global->__Pyx_ag_asend_freelist_free];
        assert(__Pyx_IS_TYPE(o, __pyx_mstate_global->__pyx__PyAsyncGenASendType));
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
    return ret;
    #else
    return 0;
    #endif
}
static void
__Pyx_PyAsyncGen_Fini(void)
{
    __Pyx_PyAsyncGen_ClearFreeLists();
}
static PyObject *
__Pyx_async_gen_unwrap_value(__pyx_PyAsyncGenObject *gen, PyObject *result, int iternext)
{
    if (result == NULL) {
        PyObject *exc_type = PyErr_Occurred();
        if (!exc_type) {
            PyErr_SetNone(PyExc_StopAsyncIteration);
            gen->ag_closed = 1;
        } else if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
            gen->ag_closed = 1;
        }
        gen->ag_running_async = 0;
        return NULL;
    }
    if (__pyx__PyAsyncGenWrappedValue_CheckExact(result)) {
        __Pyx_ReturnWithStopIteration(((__pyx__PyAsyncGenWrappedValue*)result)->agw_val, 0, iternext);
        Py_DECREF(result);
        gen->ag_running_async = 0;
        return NULL;
    }
    return result;
}
static void
__Pyx_async_gen_asend_dealloc(__pyx_PyAsyncGenASend *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->ags_gen);
    Py_CLEAR(o->ags_sendval);
    #if CYTHON_USE_FREELISTS
    if (likely(__pyx_mstate_global->__Pyx_ag_asend_freelist_free < _PyAsyncGen_MAXFREELIST)) {
        assert(__pyx_PyAsyncGenASend_CheckExact(o));
        __pyx_mstate_global->__Pyx_ag_asend_freelist[__pyx_mstate_global->__Pyx_ag_asend_freelist_free++] = o;
    } else
    #endif
    {
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
}
static int
__Pyx_async_gen_asend_traverse(__pyx_PyAsyncGenASend *o, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)o, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(o->ags_gen);
    Py_VISIT(o->ags_sendval);
    return 0;
}
static PyObject *
__Pyx_async_gen_asend_send_impl(PyObject *g, PyObject *arg, int iternext)
{
    __pyx_PyAsyncGenASend *o = (__pyx_PyAsyncGenASend*) g;
    PyObject *retval;
    if (unlikely(o->ags_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG);
        return NULL;
    }
    if (o->ags_state == __PYX_AWAITABLE_STATE_INIT) {
        if (unlikely(o->ags_gen->ag_running_async)) {
            PyErr_SetString(
                PyExc_RuntimeError,
                "anext(): asynchronous generator is already running");
            return NULL;
        }
        if (arg == NULL || arg == Py_None) {
            arg = o->ags_sendval ? o->ags_sendval : Py_None;
        }
        o->ags_state = __PYX_AWAITABLE_STATE_ITER;
    }
    o->ags_gen->ag_running_async = 1;
    retval = __Pyx_Coroutine_Send((PyObject*)o->ags_gen, arg);
    retval = __Pyx_async_gen_unwrap_value(o->ags_gen, retval, iternext);
    if (!retval) {
        o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    }
    return retval;
}
static PyObject *
__Pyx_async_gen_asend_send(PyObject *g, PyObject *arg)
{
    return __Pyx_async_gen_asend_send_impl(g, arg, 0);
}
static CYTHON_INLINE PyObject *
__Pyx_async_gen_asend_iternext(PyObject *o)
{
    return __Pyx_async_gen_asend_send_impl(o, Py_None, 1);
}
static PyObject *
__Pyx_async_gen_asend_throw(__pyx_PyAsyncGenASend *o, PyObject *args)
{
    PyObject *result;
    if (unlikely(o->ags_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_SEND_MSG);
        return NULL;
    }
    result = __Pyx_Coroutine_Throw((PyObject*)o->ags_gen, args);
    result = __Pyx_async_gen_unwrap_value(o->ags_gen, result, 0);
    if (result == NULL) {
        o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    }
    return result;
}
static PyObject *
__Pyx_async_gen_asend_close(PyObject *g, PyObject *args)
{
    __pyx_PyAsyncGenASend *o = (__pyx_PyAsyncGenASend*) g;
    CYTHON_UNUSED_VAR(args);
    o->ags_state = __PYX_AWAITABLE_STATE_CLOSED;
    Py_RETURN_NONE;
}
static PyMethodDef __Pyx_async_gen_asend_methods[] = {
    {"send", (PyCFunction)__Pyx_async_gen_asend_send, METH_O, __Pyx_async_gen_send_doc},
    {"throw", (PyCFunction)__Pyx_async_gen_asend_throw, METH_VARARGS, __Pyx_async_gen_throw_doc},
    {"close", (PyCFunction)__Pyx_async_gen_asend_close, METH_NOARGS, __Pyx_async_gen_close_doc},
    {"__await__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_gen_await_doc},
    {0, 0, 0, 0}
};
static PyType_Slot __pyx__PyAsyncGenASendType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_asend_dealloc},
    {Py_am_await, (void *)PyObject_SelfIter},
    {Py_tp_traverse, (void *)__Pyx_async_gen_asend_traverse},
    {Py_tp_methods, (void *)__Pyx_async_gen_asend_methods},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_async_gen_asend_iternext},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenASendType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_asend",
    sizeof(__pyx_PyAsyncGenASend),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenASendType_slots
};
static PyObject *
__Pyx_async_gen_asend_new(__pyx_PyAsyncGenObject *gen, PyObject *sendval)
{
    __pyx_PyAsyncGenASend *o;
    #if CYTHON_USE_FREELISTS
    if (likely(__pyx_mstate_global->__Pyx_ag_asend_freelist_free)) {
        __pyx_mstate_global->__Pyx_ag_asend_freelist_free--;
        o = __pyx_mstate_global->__Pyx_ag_asend_freelist[__pyx_mstate_global->__Pyx_ag_asend_freelist_free];
        _Py_NewReference((PyObject *)o);
    } else
    #endif
    {
        o = PyObject_GC_New(__pyx_PyAsyncGenASend, __pyx_mstate_global->__pyx__PyAsyncGenASendType);
        if (unlikely(o == NULL)) {
            return NULL;
        }
    }
    Py_INCREF((PyObject*)gen);
    o->ags_gen = gen;
    Py_XINCREF(sendval);
    o->ags_sendval = sendval;
    o->ags_state = __PYX_AWAITABLE_STATE_INIT;
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static void
__Pyx_async_gen_wrapped_val_dealloc(__pyx__PyAsyncGenWrappedValue *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->agw_val);
    #if CYTHON_USE_FREELISTS
    if (likely(__pyx_mstate_global->__Pyx_ag_value_freelist_free < _PyAsyncGen_MAXFREELIST)) {
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        __pyx_mstate_global->__Pyx_ag_value_freelist[__pyx_mstate_global->__Pyx_ag_value_freelist_free++] = o;
    } else
    #endif
    {
        __Pyx_PyHeapTypeObject_GC_Del(o);
    }
}
static int
__Pyx_async_gen_wrapped_val_traverse(__pyx__PyAsyncGenWrappedValue *o,
                                     visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)o, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(o->agw_val);
    return 0;
}
static PyType_Slot __pyx__PyAsyncGenWrappedValueType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_wrapped_val_dealloc},
    {Py_tp_traverse, (void *)__Pyx_async_gen_wrapped_val_traverse},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenWrappedValueType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_wrapped_value",
    sizeof(__pyx__PyAsyncGenWrappedValue),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenWrappedValueType_slots
};
static PyObject *
__Pyx__PyAsyncGenValueWrapperNew(PyObject *val)
{
    __pyx__PyAsyncGenWrappedValue *o;
    assert(val);
    #if CYTHON_USE_FREELISTS
    if (likely(__pyx_mstate_global->__Pyx_ag_value_freelist_free)) {
        __pyx_mstate_global->__Pyx_ag_value_freelist_free--;
        o = __pyx_mstate_global->__Pyx_ag_value_freelist[__pyx_mstate_global->__Pyx_ag_value_freelist_free];
        assert(__pyx__PyAsyncGenWrappedValue_CheckExact(o));
        _Py_NewReference((PyObject*)o);
    } else
    #endif
    {
        o = PyObject_GC_New(__pyx__PyAsyncGenWrappedValue, __pyx_mstate_global->__pyx__PyAsyncGenWrappedValueType);
        if (unlikely(!o)) {
            Py_DECREF(val);
            return NULL;
        }
    }
    o->agw_val = val;
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static void
__Pyx_async_gen_athrow_dealloc(__pyx_PyAsyncGenAThrow *o)
{
    PyObject_GC_UnTrack((PyObject *)o);
    Py_CLEAR(o->agt_gen);
    Py_CLEAR(o->agt_args);
    __Pyx_PyHeapTypeObject_GC_Del(o);
}
static int
__Pyx_async_gen_athrow_traverse(__pyx_PyAsyncGenAThrow *o, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)o, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(o->agt_gen);
    Py_VISIT(o->agt_args);
    return 0;
}
static PyObject *
__Pyx_async_gen_athrow_send_impl(__pyx_PyAsyncGenAThrow *o, PyObject *arg, int iternext)
{
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*)o->agt_gen;
    PyObject *retval, *exc_type;
    if (unlikely(o->agt_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG);
        return NULL;
    }
    if (unlikely(gen->resume_label == -1)) {
        o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
        PyErr_SetNone(PyExc_StopIteration);
        return NULL;
    }
    if (o->agt_state == __PYX_AWAITABLE_STATE_INIT) {
        if (unlikely(o->agt_gen->ag_running_async)) {
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            if (o->agt_args == NULL) {
                PyErr_SetString(
                    PyExc_RuntimeError,
                    "aclose(): asynchronous generator is already running");
            } else {
                PyErr_SetString(
                    PyExc_RuntimeError,
                    "athrow(): asynchronous generator is already running");
            }
            return NULL;
        }
        if (unlikely(o->agt_gen->ag_closed)) {
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            PyErr_SetNone(PyExc_StopAsyncIteration);
            return NULL;
        }
        if (unlikely(arg != Py_None)) {
            PyErr_SetString(PyExc_RuntimeError, __Pyx_NON_INIT_CORO_MSG);
            return NULL;
        }
        o->agt_state = __PYX_AWAITABLE_STATE_ITER;
        o->agt_gen->ag_running_async = 1;
        if (o->agt_args == NULL) {
            o->agt_gen->ag_closed = 1;
            retval = __Pyx__Coroutine_Throw((PyObject*)gen,
                PyExc_GeneratorExit, NULL, NULL, NULL, 0);
            if (retval && __pyx__PyAsyncGenWrappedValue_CheckExact(retval)) {
                Py_DECREF(retval);
                goto yield_close;
            }
        } else {
            PyObject *typ;
            PyObject *tb = NULL;
            PyObject *val = NULL;
            if (unlikely(!PyArg_UnpackTuple(o->agt_args, "athrow", 1, 3, &typ, &val, &tb))) {
                return NULL;
            }
            retval = __Pyx__Coroutine_Throw((PyObject*)gen,
                typ, val, tb, o->agt_args, 0);
            retval = __Pyx_async_gen_unwrap_value(o->agt_gen, retval, iternext);
        }
        if (retval == NULL) {
            goto check_error;
        }
        return retval;
    }
    assert (o->agt_state == __PYX_AWAITABLE_STATE_ITER);
    retval = __Pyx_Coroutine_Send((PyObject *)gen, arg);
    if (o->agt_args) {
        return __Pyx_async_gen_unwrap_value(o->agt_gen, retval, iternext);
    } else {
        if (retval) {
            if (unlikely(__pyx__PyAsyncGenWrappedValue_CheckExact(retval))) {
                Py_DECREF(retval);
                goto yield_close;
            }
            else {
                return retval;
            }
        }
        else {
            goto check_error;
        }
    }
yield_close:
    o->agt_gen->ag_running_async = 0;
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    PyErr_SetString(
        PyExc_RuntimeError, __Pyx_ASYNC_GEN_IGNORED_EXIT_MSG);
    return NULL;
check_error:
    o->agt_gen->ag_running_async = 0;
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    exc_type = PyErr_Occurred();
    if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
        if (o->agt_args == NULL) {
            PyErr_Clear();
            PyErr_SetNone(PyExc_StopIteration);
        }
    }
    return NULL;
}
static PyObject *
__Pyx_async_gen_athrow_send(__pyx_PyAsyncGenAThrow *o, PyObject *arg)
{
    return __Pyx_async_gen_athrow_send_impl(o, arg, 0);
}
static PyObject *
__Pyx_async_gen_athrow_throw(__pyx_PyAsyncGenAThrow *o, PyObject *args)
{
    PyObject *retval;
    if (unlikely(o->agt_state == __PYX_AWAITABLE_STATE_CLOSED)) {
        PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_CANNOT_REUSE_CLOSE_MSG);
        return NULL;
    }
    retval = __Pyx_Coroutine_Throw((PyObject*)o->agt_gen, args);
    if (o->agt_args) {
        return __Pyx_async_gen_unwrap_value(o->agt_gen, retval, 0);
    } else {
        PyObject *exc_type;
        if (unlikely(retval && __pyx__PyAsyncGenWrappedValue_CheckExact(retval))) {
            o->agt_gen->ag_running_async = 0;
            o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
            Py_DECREF(retval);
            PyErr_SetString(PyExc_RuntimeError, __Pyx_ASYNC_GEN_IGNORED_EXIT_MSG);
            return NULL;
        }
        exc_type = PyErr_Occurred();
        if (__Pyx_PyErr_GivenExceptionMatches2(exc_type, PyExc_StopAsyncIteration, PyExc_GeneratorExit)) {
            PyErr_Clear();
            PyErr_SetNone(PyExc_StopIteration);
        }
        return retval;
    }
}
static PyObject *
__Pyx_async_gen_athrow_iternext(__pyx_PyAsyncGenAThrow *o)
{
    return __Pyx_async_gen_athrow_send_impl(o, Py_None, 1);
}
static PyObject *
__Pyx_async_gen_athrow_close(PyObject *g, PyObject *args)
{
    __pyx_PyAsyncGenAThrow *o = (__pyx_PyAsyncGenAThrow*) g;
    CYTHON_UNUSED_VAR(args);
    o->agt_state = __PYX_AWAITABLE_STATE_CLOSED;
    Py_RETURN_NONE;
}
static PyMethodDef __Pyx_async_gen_athrow_methods[] = {
    {"send", (PyCFunction)__Pyx_async_gen_athrow_send, METH_O, __Pyx_async_gen_send_doc},
    {"throw", (PyCFunction)__Pyx_async_gen_athrow_throw, METH_VARARGS, __Pyx_async_gen_throw_doc},
    {"close", (PyCFunction)__Pyx_async_gen_athrow_close, METH_NOARGS, __Pyx_async_gen_close_doc},
    {"__await__", (PyCFunction)__Pyx_async_gen_self_method, METH_NOARGS, __Pyx_async_gen_await_doc},
    {0, 0, 0, 0}
};
static PyType_Slot __pyx__PyAsyncGenAThrowType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_async_gen_athrow_dealloc},
    {Py_am_await, (void *)PyObject_SelfIter},
    {Py_tp_traverse, (void *)__Pyx_async_gen_athrow_traverse},
    {Py_tp_iter, (void *)PyObject_SelfIter},
    {Py_tp_iternext, (void *)__Pyx_async_gen_athrow_iternext},
    {Py_tp_methods, (void *)__Pyx_async_gen_athrow_methods},
    {Py_tp_getattro, (void *)PyObject_GenericGetAttr},
    {0, 0},
};
static PyType_Spec __pyx__PyAsyncGenAThrowType_spec = {
    __PYX_TYPE_MODULE_PREFIX "async_generator_athrow",
    sizeof(__pyx_PyAsyncGenAThrow),
    0,
#if PY_VERSION_HEX >= 0x030A0000
    Py_TPFLAGS_IMMUTABLETYPE |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    __pyx__PyAsyncGenAThrowType_slots
};
static PyObject *
__Pyx_async_gen_athrow_new(__pyx_PyAsyncGenObject *gen, PyObject *args)
{
    __pyx_PyAsyncGenAThrow *o;
    o = PyObject_GC_New(__pyx_PyAsyncGenAThrow, __pyx_mstate_global->__pyx__PyAsyncGenAThrowType);
    if (unlikely(o == NULL)) {
        return NULL;
    }
    o->agt_gen = gen;
    o->agt_args = args;
    o->agt_state = __PYX_AWAITABLE_STATE_INIT;
    Py_INCREF((PyObject*)gen);
    Py_XINCREF(args);
    PyObject_GC_Track((PyObject*)o);
    return (PyObject*)o;
}
static int __pyx_AsyncGen_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_AsyncGenType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_AsyncGenType_spec, NULL);
    if (unlikely(!mstate->__pyx_AsyncGenType))
        return -1;
    mstate->__pyx__PyAsyncGenAThrowType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenAThrowType_spec, NULL);
    if (unlikely(!mstate->__pyx__PyAsyncGenAThrowType))
        return -1;
    mstate->__pyx__PyAsyncGenWrappedValueType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenWrappedValueType_spec, NULL);
    if (unlikely(!mstate->__pyx__PyAsyncGenWrappedValueType))
        return -1;
    mstate->__pyx__PyAsyncGenASendType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx__PyAsyncGenASendType_spec, NULL);
    if (unlikely(!mstate->__pyx__PyAsyncGenASendType))
        return -1;
    return 0;
}

/* AsyncGen */
  

/* GetRuntimeVersion */
  static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    return Py_Version & ~0xFFUL;
#else
    static unsigned long __Pyx_cached_runtime_version = 0;
    if (__Pyx_cached_runtime_version == 0) {
        const char* rt_version = Py_GetVersion();
        unsigned long version = 0;
        unsigned long factor = 0x01000000UL;
        unsigned int digit = 0;
        int i = 0;
        while (factor) {
            while ('0' <= rt_version[i] && rt_version[i] <= '9') {
                digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
                ++i;
            }
            version += factor * digit;
            if (rt_version[i] != '.')
                break;
            digit = 0;
            factor >>= 8;
            ++i;
        }
        __Pyx_cached_runtime_version = version;
    }
    return __Pyx_cached_runtime_version;
#endif
}

/* CheckBinaryVersion */
  static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* VoidPtrExport */
  static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig) {
    PyObject *d;
    PyObject *cobj = 0;
    if (__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_capi, &d) == -1)
        goto bad;
    if (!d) {
        d = PyDict_New();
        if (!d)
            goto bad;
        if (__Pyx_PyObject_SetAttrStr(__pyx_m, __pyx_mstate_global->__pyx_n_u_pyx_capi, d) < 0)
            goto bad;
    }
    cobj = PyCapsule_New(p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItem(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* FunctionExport */
  static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(__pyx_m, "__pyx_capi__");
    if (!d) {
        PyErr_Clear();
        d = PyDict_New();
        if (!d)
            goto bad;
        Py_INCREF(d);
        if (PyModule_AddObject(__pyx_m, "__pyx_capi__", d) < 0)
            goto bad;
    }
    tmp.fp = f;
    cobj = PyCapsule_New(tmp.p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

/* NewCodeObj */
  #if CYTHON_COMPILING_IN_LIMITED_API
    static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                       PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                       PyObject *fv, PyObject *cell, PyObject* fn,
                                       PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
#elif PY_VERSION_HEX >= 0x030B0000
  static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                         PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                         PyObject *fv, PyObject *cell, PyObject* fn,
                                         PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
    return result;
  }
#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        const char *line_table,
        PyObject *tuple_dedup_map
) {
    PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL, *line_table_bytes = NULL;
    Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
    PyObject *varnames_tuple = PyTuple_New(var_count);
    if (unlikely(!varnames_tuple)) return NULL;
    for (Py_ssize_t i=0; i < var_count; i++) {
        Py_INCREF(varnames[i]);
        if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
    }
    #if CYTHON_COMPILING_IN_LIMITED_API
    varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
    if (!varnames_tuple_dedup) {
        if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
        varnames_tuple_dedup = varnames_tuple;
    }
    #else
    varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
    if (unlikely(!varnames_tuple_dedup)) goto done;
    #endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(varnames_tuple_dedup);
    #endif
    if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL
        && !CYTHON_COMPILING_IN_GRAAL) {
        line_table_bytes = PyBytes_FromStringAndSize(line_table, descr.line_table_length);
        if (unlikely(!line_table_bytes)) goto done;
        Py_ssize_t code_len = (descr.line_table_length * 2 + 4) & ~3;
        code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
        if (unlikely(!code_bytes)) goto done;
        char* c_code_bytes = PyBytes_AsString(code_bytes);
        if (unlikely(!c_code_bytes)) goto done;
        memset(c_code_bytes, 0, (size_t) code_len);
    }
    code_obj = (PyObject*) __Pyx__PyCode_New(
        (int) descr.argcount,
        (int) descr.num_posonly_args,
        (int) descr.num_kwonly_args,
        (int) descr.nlocals,
        0,
        (int) descr.flags,
        code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        varnames_tuple_dedup,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        filename,
        funcname,
        (int) descr.first_line,
        (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table_bytes) ? line_table_bytes : __pyx_mstate_global->__pyx_empty_bytes
    );
done:
    Py_XDECREF(code_bytes);
    Py_XDECREF(line_table_bytes);
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(varnames_tuple_dedup);
    #endif
    Py_DECREF(varnames_tuple);
    return code_obj;
}

/* InitStrings */
  static int __Pyx_InitStrings(__Pyx_StringTabEntry const *t, PyObject **target, const char* const* encoding_names) {
    while (t->s) {
        PyObject *str;
        if (t->is_unicode) {
            if (t->intern) {
                str = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                str = PyUnicode_Decode(t->s, t->n - 1, encoding_names[t->encoding], NULL);
            } else {
                str = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            str = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        if (!str)
            return -1;
        *target = str;
        if (PyObject_Hash(str) == -1)
            return -1;
        ++t;
        ++target;
    }
    return 0;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    {
        const char* result;
        Py_ssize_t unicode_length;
        CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
        #else
        result = PyUnicode_AsUTF8AndSize(o, length);
        #endif
        #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        unicode_length = PyUnicode_GetLength(o);
        if (unlikely(unicode_length < 0)) return NULL;
        if (unlikely(unicode_length != *length)) {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
        #endif
        return result;
    }
#else
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
}
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
    if (PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
    if (PyByteArray_Check(o)) {
#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
#else
        *length = PyByteArray_Size(o);
        if (*length == -1) return NULL;
        return PyByteArray_AsString(o);
#endif
    } else
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
    PyErr_Format(PyExc_TypeError,
                 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
                 result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  PyObject *res = NULL;
  if (likely(PyLong_Check(x)))
      return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  if (likely(m && m->nb_int)) {
      res = m->nb_int(x);
  }
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
      res = PyNumber_Long(x);
  }
#endif
  if (likely(res)) {
      if (unlikely(!PyLong_CheckExact(res))) {
          return __Pyx_PyNumber_LongWrongResultType(res);
      }
  }
  else if (!PyErr_Occurred()) {
      PyErr_SetString(PyExc_TypeError,
                      "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyLong_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyLong_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
    CYTHON_UNUSED_VAR(b);
    return __Pyx_NewRef(Py_None);
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
    return PyLong_FromSize_t(ival);
}


  /* MultiPhaseInitModuleState */
  #if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
#else
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
#endif
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
#error "Module state with PEP489 requires atomics. Currently that's one of\
 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
#endif
#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#define __Pyx_ModuleStateLookup_Lock()
#define __Pyx_ModuleStateLookup_Unlock()
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(__cplusplus) && __cplusplus >= 201103L
#include <mutex>
static std::mutex __Pyx_ModuleStateLookup_mutex;
#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
#include <threads.h>
static mtx_t __Pyx_ModuleStateLookup_mutex;
static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
    mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
}
#define __Pyx_ModuleStateLookup_Lock()\
  call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
  mtx_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(HAVE_PTHREAD_H)
#include <pthread.h>
static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(_WIN32)
#include <Windows.h>  // synchapi.h on its own doesn't work
static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#else
#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
 Requires C standard >= C11, or C++ standard >= C++11,\
 or pthreads, or the Windows 32 API, or Python >= 3.13."
#endif
typedef struct {
    int64_t id;
    PyObject *module;
} __Pyx_InterpreterIdAndModule;
typedef struct {
    char interpreter_id_as_index;
    Py_ssize_t count;
    Py_ssize_t allocated;
    __Pyx_InterpreterIdAndModule table[1];
} __Pyx_ModuleStateLookupData;
#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
#else
static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
#endif
static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
        __Pyx_InterpreterIdAndModule* table,
        Py_ssize_t count,
        int64_t interpreterId) {
    __Pyx_InterpreterIdAndModule* begin = table;
    __Pyx_InterpreterIdAndModule* end = begin + count;
    if (begin->id == interpreterId) {
        return begin;
    }
    while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
        __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
        if (halfway->id == interpreterId) {
            return halfway;
        }
        if (halfway->id < interpreterId) {
            begin = halfway;
        } else {
            end = halfway;
        }
    }
    for (; begin < end; ++begin) {
        if (begin->id >= interpreterId) return begin;
    }
    return begin;
}
static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return NULL;
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
    {
        __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        if (likely(data)) {
            __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
            if (likely(data == new_data)) {
                goto read_finished;
            }
        }
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        __Pyx_ModuleStateLookup_Lock();
        __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
        data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
        __Pyx_ModuleStateLookup_Unlock();
    }
  read_finished:;
#else
    __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_InterpreterIdAndModule* found = NULL;
    if (unlikely(!data)) goto end;
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            found = data->table+interpreter_id;
        }
    } else {
        found = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
    }
  end:
    {
        PyObject *result=NULL;
        if (found && found->id == interpreter_id) {
            result = found->module;
        }
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
#endif
        return result;
    }
}
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
    while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
}
#else
#define __Pyx_ModuleStateLookup_wait_until_no_readers()
#endif
static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
    Py_ssize_t to_allocate = (*old_data)->allocated;
    while (to_allocate <= interpreter_id) {
        if (to_allocate == 0) to_allocate = 1;
        else to_allocate *= 2;
    }
    __Pyx_ModuleStateLookupData *new_data = *old_data;
    if (to_allocate != (*old_data)->allocated) {
         new_data = (__Pyx_ModuleStateLookupData *)realloc(
            *old_data,
            sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
        if (!new_data) {
            PyErr_NoMemory();
            return -1;
        }
        for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
            new_data->table[i].id = i;
            new_data->table[i].module = NULL;
        }
        new_data->allocated = to_allocate;
    }
    new_data->table[interpreter_id].module = module;
    if (new_data->count < interpreter_id+1) {
        new_data->count = interpreter_id+1;
    }
    *old_data = new_data;
    return 0;
}
static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
    __Pyx_InterpreterIdAndModule *read = data->table;
    __Pyx_InterpreterIdAndModule *write = data->table;
    __Pyx_InterpreterIdAndModule *end = read + data->count;
    for (; read<end; ++read) {
        if (read->module) {
            write->id = read->id;
            write->module = read->module;
            ++write;
        }
    }
    data->count = write - data->table;
    for (; write<end; ++write) {
        write->id = 0;
        write->module = NULL;
    }
    data->interpreter_id_as_index = 0;
}
static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    int result = 0;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_ModuleStateLookupData *new_data = old_data;
    if (!new_data) {
        new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
        if (!new_data) {
            result = -1;
            PyErr_NoMemory();
            goto end;
        }
        new_data->allocated = 1;
        new_data->interpreter_id_as_index = 1;
    }
    __Pyx_ModuleStateLookup_wait_until_no_readers();
    if (new_data->interpreter_id_as_index) {
        if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
            result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
            goto end;
        }
        __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
    }
    {
        Py_ssize_t insert_at = 0;
        {
            __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
                new_data->table, new_data->count, interpreter_id);
            assert(lower_bound);
            insert_at = lower_bound - new_data->table;
            if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
                lower_bound->module = module;
                goto end;  // already in table, nothing more to do
            }
        }
        if (new_data->count+1 >= new_data->allocated) {
            Py_ssize_t to_allocate = (new_data->count+1)*2;
            new_data =
                (__Pyx_ModuleStateLookupData*)realloc(
                    new_data,
                    sizeof(__Pyx_ModuleStateLookupData) +
                    (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
            if (!new_data) {
                result = -1;
                new_data = old_data;
                PyErr_NoMemory();
                goto end;
            }
            new_data->allocated = to_allocate;
        }
        ++new_data->count;
        int64_t last_id = interpreter_id;
        PyObject *last_module = module;
        for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
            int64_t current_id = new_data->table[i].id;
            new_data->table[i].id = last_id;
            last_id = current_id;
            PyObject *current_module = new_data->table[i].module;
            new_data->table[i].module = last_module;
            last_module = current_module;
        }
    }
  end:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
#else
    __Pyx_ModuleStateLookup_data = new_data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return result;
}
static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
#endif
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            data->table[interpreter_id].module = NULL;
        }
        goto done;
    }
    {
        __Pyx_ModuleStateLookup_wait_until_no_readers();
        __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
        if (!lower_bound) goto done;
        if (lower_bound->id != interpreter_id) goto done;
        __Pyx_InterpreterIdAndModule *end = data->table+data->count;
        for (;lower_bound<end-1; ++lower_bound) {
            lower_bound->id = (lower_bound+1)->id;
            lower_bound->module = (lower_bound+1)->module;
        }
    }
    --data->count;
    if (data->count == 0) {
        free(data);
        data = NULL;
    }
  done:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
#else
    __Pyx_ModuleStateLookup_data = data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return 0;
}
#endif

/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
