def process_uri_for_mount(
        self,
        d,
        filepath,
        line,
        server,
        port,
        mapping_type,
        d_configurations,
        l_bad_configurations,
    ):

        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port,
            mapping_type, 
            l_bad_configurations, 
            'src_'
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'listening_uri_'
        )

        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type, 
            l_bad_configurations, 
            'dst_'
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'backed_uri_'
        )

        shared_infrastructure.listen_ssl_process_uri( 
            lambda: self._root_configuration,
            lambda: self._ssl_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type,
            l_bad_configurations, 
            'src_'
        )


        def get_ips_for_upstream( host ):

            l_ips = []
            l_ips.extend( [ ip.address for ip in self._resolver.query( host, 'A' ) ] )
            l_ips.extend( [ '[%s]' % ( ip.address ) for ip in self._resolver.query( host, 'AAAA' ) ] )

            if not l_ips:
               l_bad_configurations.append( ( '%s not resolvable' % ( host ), self._root_configuration, server, port, self._mount_filename ) )

            return l_ips

        def get_upstream_name( d ):
            return '%s__%s_%s__%s' % (
                server,
                port,
                d[ 'dst_host' ],
                d[ 'dst_port' ]
        )

        def get_upstream_url( d ):
            uri = ''
            uri += d[ 'dst_scheme' ] + ':'
            uri += '//'
            if  d.get( 'dst_userinfo' ):
                uri += d[ 'dst_userinfo' ] + '@'
            uri += get_upstream_name( d )
            return uri


        def get_proxy_redirect_to_replace_url_with_port( d ):
            uri 	= ''
            uri 	+= d[ 'dst_scheme' ] + ':'
            uri 	+= '//'
            if  d.get( 'dst_userinfo' ):
                uri 	+= d[ 'dst_userinfo' ] + '@'
            uri 	+= d[ 'src_host' ]
            uri 	+= ':%s' % ( d[ 'dst_port' ] )
            uri 	+= d[ 'dst_path' ] or ''
            return uri

        def get_proxy_redirect_to_replace_url_without_port( d ):
            uri 	= ''
            uri 	+= d[ 'dst_scheme' ] + ':'
            uri 	+= '//'
            if  d.get( 'dst_userinfo' ):
                uri 	+= d[ 'dst_userinfo' ] + '@'
            uri 	+= d[ 'src_host' ]
            uri 	+= d[ 'dst_path' ] or ''
            return uri

        AgnosticConfiguration.add_to_configuration( 
            d, 
            lambda d: {
                        'src':
                            shared_infrastructure.str_with_extra(
                                d[ 'src_URI' ],
                                d[ 'listening_uri_extra' ],
   			    ), 
                        'src_scheme':
                            d[ 'src_scheme' ],
                        'src_userinfo':
                            d[ 'src_userinfo' ] or '',
                        'src_host':
                            d[ 'src_host' ],
                        'src_port':
                            str( d[ 'src_port' ] ),
                        'src_path':
                            d[ 'src_path' ] or '',
                        'src_query':
                            d[ 'src_query' ] or '',
                        'dst':
                            shared_infrastructure.str_with_extra(
                                d[ 'dst_URI' ],
                                d[ 'backed_uri_extra' ],
                            ),
                        'dst_scheme':
                            d[ 'dst_scheme' ],
                        'dst_userinfo':
                            d[ 'dst_userinfo' ] or '',
                        'dst_host':
                            d[ 'dst_host' ],
                        'dst_port':
                            str( d[ 'dst_port' ] ),
                        'dst_path':
                            d[ 'dst_path' ] or '',
                        'dst_query':
                            d[ 'dst_query' ] or '',
                        'dst_upstream_name':
                            get_upstream_name( d ),
                        'dst_upstream':
                            get_upstream_url( d ),
                        'dst_upstream_resolved_ips':
                            get_ips_for_upstream( d[ 'dst_host' ] ),
                        'proxy_redirect_to_replace_with_port':
                            get_proxy_redirect_to_replace_url_with_port( d ),
                        'proxy_redirect_to_replace_without_port':
                            get_proxy_redirect_to_replace_url_without_port( d ),
                    }, 
            d_configurations,
            filepath,
            server, 
            port, 
            mapping_type, 
            le_sort	= lambda x: ( x[ 'src' ], x[ 'dst' ] )
        )
    def process_uri_for_unmount(
        self,
        d,
        filepath,
        line,
        server,
        port,
        mapping_type,
        d_configurations,
        l_bad_configurations,
    ):
        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port,
            mapping_type, 
            l_bad_configurations, 
            ''
        )

        shared_infrastructure.listen_ssl_process_uri( 
            lambda: self._root_configuration,
            lambda: self._ssl_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type,
            l_bad_configurations, 
            '' 
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'listening_uri_',
        )

        AgnosticConfiguration.add_to_configuration( 
            d, 
            lambda m: { 
                'uri'	:
                    shared_infrastructure.str_with_extra(
                        d[ 'URI' ],
                        d[ 'listening_uri_extra' ],
                    ),
            },
            d_configurations,
            filepath,
            server,
            port,
            mapping_type,
            le_sort     = lambda x: ( x[ 'uri' ] )
        )
    def process_uri_for_redirect(
        self,
        d,
        filepath,
        line,
        server,
        port,
        mapping_type,
        d_configurations,
        l_bad_configurations,
    ):
        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port,
            mapping_type, 
            l_bad_configurations, 
            'src_'
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'listening_uri_',
        )

        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type, 
            l_bad_configurations, 
            'dst_' 
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'redirected_uri_',
        )

        shared_infrastructure.listen_ssl_process_uri( 
            lambda: self._root_configuration,
            lambda: self._ssl_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type,
            l_bad_configurations, 
            'src_' 
        )

        AgnosticConfiguration.add_to_configuration( 
            d, 
            lambda d: {
                        'src'		:
                             shared_infrastructure.str_with_extra(
                                 d[ 'src_URI' ],
                                 d[ 'listening_uri_extra' ],
                 	     ),
                        'dst'		:
                             shared_infrastructure.str_with_extra(
                                 d[ 'dst_URI' ],
                                 d[ 'redirected_uri_extra' ],
            		     ), 
                    }, 
            d_configurations,
            filepath,
            server,
            port,
            mapping_type,
            le_sort     = lambda x: ( x[ 'src' ], x[ 'dst' ] )
        )
    def process_uri_for_url2entity(
        self,
        d,
        filepath,
        line,
        server,
        port,
        mapping_type,
        d_configurations,
        l_bad_configurations,
    ):
        shared_infrastructure.common_process_uri( 
            lambda: self._root_configuration,
            d, 
            line, 
            server, 
            port,
            mapping_type, 
            l_bad_configurations, 
            '',
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'listening_uri_',
        )

        shared_infrastructure.listen_ssl_process_uri( 
            lambda: self._root_configuration,
            lambda: self._ssl_configuration,
            d, 
            line, 
            server, 
            port, 
            mapping_type,
            l_bad_configurations, 
            '',
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'appcode_',
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'env_',
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'aera_',
        )

        shared_infrastructure.common_process_extra(
            lambda: self._root_configuration,
            d,
            line,
            server,
            port,
            mapping_type,
            l_bad_configurations,
            lambda: self._extra_from_distrib,
            'virtual_ngv_num_',
        )


        URL2EntityConfiguration.add_to_configuration( 
            d, 
            lambda d: {
                        'uri'			:
                            shared_infrastructure.str_with_extra(
                                d[ 'URI' ],
                                d[ 'listening_uri_extra' ],
                            ),
                        'appcode'		:
                            shared_infrastructure.str_with_extra(
                                d[ 'appcode' ],
                                d[ 'appcode_extra' ],
                            ),
                        'env'			:
                            shared_infrastructure.str_with_extra(
                                d[ 'env' ],
                                d[ 'env_extra' ],
                            ),
                        'aera'			:
                            shared_infrastructure.str_with_extra(
                                d[ 'aera' ],
                                d[ 'aera_extra' ],
                            ),
                        'virtual_ngv_num'	:
                            shared_infrastructure.str_with_extra(
                                d[ 'virtual_ngv_num' ],
                                d[ 'virtual_ngv_num_extra' ],
                            ),
                    }, 
            d_configurations,
            filepath,
            server, 
            port, 
            mapping_type,
            le_sort     = lambda x: ( x[ 'uri' ] )
        )