public class org.springframework.web.servlet.resource.ResourceHttpRequestHandler extends org.springframework.web.servlet.support.WebContentGenerator implements org.springframework.web.HttpRequestHandler, org.springframework.context.EmbeddedValueResolverAware, org.springframework.beans.factory.InitializingBean, org.springframework.web.cors.CorsConfigurationSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.web.servlet.resource.ResourceHttpRequestHandler
  super_class: org.springframework.web.servlet.support.WebContentGenerator
{
  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String URL_RESOURCE_CHARSET_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "[charset="

  private final java.util.List<java.lang.String> locationValues;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private final java.util.List<org.springframework.core.io.Resource> locations;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/core/io/Resource;>;

  private final java.util.Map<org.springframework.core.io.Resource, java.nio.charset.Charset> locationCharsets;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/core/io/Resource;Ljava/nio/charset/Charset;>;

  private final java.util.List<org.springframework.web.servlet.resource.ResourceResolver> resourceResolvers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;

  private final java.util.List<org.springframework.web.servlet.resource.ResourceTransformer> resourceTransformers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;

  private org.springframework.web.servlet.resource.ResourceResolverChain resolverChain;
    descriptor: Lorg/springframework/web/servlet/resource/ResourceResolverChain;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.web.servlet.resource.ResourceTransformerChain transformerChain;
    descriptor: Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.http.converter.ResourceHttpMessageConverter resourceHttpMessageConverter;
    descriptor: Lorg/springframework/http/converter/ResourceHttpMessageConverter;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.http.converter.ResourceRegionHttpMessageConverter resourceRegionHttpMessageConverter;
    descriptor: Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.web.accept.ContentNegotiationManager contentNegotiationManager;
    descriptor: Lorg/springframework/web/accept/ContentNegotiationManager;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.web.accept.PathExtensionContentNegotiationStrategy contentNegotiationStrategy;
    descriptor: Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.web.cors.CorsConfiguration corsConfiguration;
    descriptor: Lorg/springframework/web/cors/CorsConfiguration;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.web.util.UrlPathHelper urlPathHelper;
    descriptor: Lorg/springframework/web/util/UrlPathHelper;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.util.StringValueResolver embeddedValueResolver;
    descriptor: Lorg/springframework/util/StringValueResolver;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 101
            ldc Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
         1: .line 103
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 145
            aload 0 /* this */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.springframework.http.HttpMethod.GET:Lorg/springframework/http/HttpMethod;
            invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            getstatic org.springframework.http.HttpMethod.HEAD:Lorg/springframework/http/HttpMethod;
            invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
            aastore
            invokespecial org.springframework.web.servlet.support.WebContentGenerator.<init>:([Ljava/lang/String;)V
         1: .line 106
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
         2: .line 108
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
         3: .line 110
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_4
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
         4: .line 112
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
         5: .line 114
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
         6: .line 146
            return
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;

  public void setLocationValues(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.util.List locationValues
         0: .line 158
            aload 1 /* locationValues */
            ldc "Location values list must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 159
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         2: .line 160
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            aload 1 /* locationValues */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 161
            return
        end local 1 // java.util.List locationValues
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    4     1  locationValues  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      locationValues  

  public void setLocations(java.util.List<org.springframework.core.io.Resource>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.util.List locations
         0: .line 169
            aload 1 /* locations */
            ldc "Locations list must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 170
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         2: .line 171
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            aload 1 /* locations */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 172
            return
        end local 1 // java.util.List locations
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    4     1  locations  Ljava/util/List<Lorg/springframework/core/io/Resource;>;
    Signature: (Ljava/util/List<Lorg/springframework/core/io/Resource;>;)V
    MethodParameters:
           Name  Flags
      locations  

  public java.util.List<org.springframework.core.io.Resource> getLocations();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 183
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    Signature: ()Ljava/util/List<Lorg/springframework/core/io/Resource;>;

  public void setResourceResolvers(java.util.List<org.springframework.web.servlet.resource.ResourceResolver>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.util.List resourceResolvers
         0: .line 192
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 193
            aload 1 /* resourceResolvers */
            ifnull 3
         2: .line 194
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            aload 1 /* resourceResolvers */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 196
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List resourceResolvers
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    4     1  resourceResolvers  Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;
    Signature: (Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                   Name  Flags
      resourceResolvers  

  public java.util.List<org.springframework.web.servlet.resource.ResourceResolver> getResourceResolvers();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 202
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    Signature: ()Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceResolver;>;

  public void setResourceTransformers(java.util.List<org.springframework.web.servlet.resource.ResourceTransformer>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.util.List resourceTransformers
         0: .line 210
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 211
            aload 1 /* resourceTransformers */
            ifnull 3
         2: .line 212
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
            aload 1 /* resourceTransformers */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List resourceTransformers
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    4     1  resourceTransformers  Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;
    Signature: (Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                      Name  Flags
      resourceTransformers  

  public java.util.List<org.springframework.web.servlet.resource.ResourceTransformer> getResourceTransformers();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 220
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    Signature: ()Ljava/util/List<Lorg/springframework/web/servlet/resource/ResourceTransformer;>;

  public void setResourceHttpMessageConverter(org.springframework.http.converter.ResourceHttpMessageConverter);
    descriptor: (Lorg/springframework/http/converter/ResourceHttpMessageConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.http.converter.ResourceHttpMessageConverter messageConverter
         0: .line 229
            aload 0 /* this */
            aload 1 /* messageConverter */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
         1: .line 230
            return
        end local 1 // org.springframework.http.converter.ResourceHttpMessageConverter messageConverter
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  messageConverter  Lorg/springframework/http/converter/ResourceHttpMessageConverter;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      messageConverter  

  public org.springframework.http.converter.ResourceHttpMessageConverter getResourceHttpMessageConverter();
    descriptor: ()Lorg/springframework/http/converter/ResourceHttpMessageConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 238
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setResourceRegionHttpMessageConverter(org.springframework.http.converter.ResourceRegionHttpMessageConverter);
    descriptor: (Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.http.converter.ResourceRegionHttpMessageConverter messageConverter
         0: .line 247
            aload 0 /* this */
            aload 1 /* messageConverter */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
         1: .line 248
            return
        end local 1 // org.springframework.http.converter.ResourceRegionHttpMessageConverter messageConverter
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  messageConverter  Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      messageConverter  

  public org.springframework.http.converter.ResourceRegionHttpMessageConverter getResourceRegionHttpMessageConverter();
    descriptor: ()Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 256
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setContentNegotiationManager(org.springframework.web.accept.ContentNegotiationManager);
    descriptor: (Lorg/springframework/web/accept/ContentNegotiationManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.web.accept.ContentNegotiationManager contentNegotiationManager
         0: .line 266
            aload 0 /* this */
            aload 1 /* contentNegotiationManager */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationManager:Lorg/springframework/web/accept/ContentNegotiationManager;
         1: .line 267
            return
        end local 1 // org.springframework.web.accept.ContentNegotiationManager contentNegotiationManager
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  contentNegotiationManager  Lorg/springframework/web/accept/ContentNegotiationManager;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                           Name  Flags
      contentNegotiationManager  

  public org.springframework.web.accept.ContentNegotiationManager getContentNegotiationManager();
    descriptor: ()Lorg/springframework/web/accept/ContentNegotiationManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 275
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationManager:Lorg/springframework/web/accept/ContentNegotiationManager;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setCorsConfiguration(org.springframework.web.cors.CorsConfiguration);
    descriptor: (Lorg/springframework/web/cors/CorsConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.web.cors.CorsConfiguration corsConfiguration
         0: .line 283
            aload 0 /* this */
            aload 1 /* corsConfiguration */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.corsConfiguration:Lorg/springframework/web/cors/CorsConfiguration;
         1: .line 284
            return
        end local 1 // org.springframework.web.cors.CorsConfiguration corsConfiguration
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  corsConfiguration  Lorg/springframework/web/cors/CorsConfiguration;
    MethodParameters:
                   Name  Flags
      corsConfiguration  

  public org.springframework.web.cors.CorsConfiguration getCorsConfiguration(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/web/cors/CorsConfiguration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // javax.servlet.http.HttpServletRequest request
         0: .line 292
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.corsConfiguration:Lorg/springframework/web/cors/CorsConfiguration;
            areturn
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    1     1  request  Ljavax/servlet/http/HttpServletRequest;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      request  

  public void setUrlPathHelper(org.springframework.web.util.UrlPathHelper);
    descriptor: (Lorg/springframework/web/util/UrlPathHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
         0: .line 302
            aload 0 /* this */
            aload 1 /* urlPathHelper */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
         1: .line 303
            return
        end local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  urlPathHelper  Lorg/springframework/web/util/UrlPathHelper;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      urlPathHelper  

  public org.springframework.web.util.UrlPathHelper getUrlPathHelper();
    descriptor: ()Lorg/springframework/web/util/UrlPathHelper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 311
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setEmbeddedValueResolver(org.springframework.util.StringValueResolver);
    descriptor: (Lorg/springframework/util/StringValueResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // org.springframework.util.StringValueResolver resolver
         0: .line 316
            aload 0 /* this */
            aload 1 /* resolver */
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
         1: .line 317
            return
        end local 1 // org.springframework.util.StringValueResolver resolver
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    2     1  resolver  Lorg/springframework/util/StringValueResolver;
    MethodParameters:
          Name  Flags
      resolver  

  public void afterPropertiesSet();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 322
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolveResourceLocations:()V
         1: .line 324
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
            ifeq 3
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 3
         2: .line 325
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            ldc "Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver."
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
         3: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         4: .line 330
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            new org.springframework.web.servlet.resource.PathResourceResolver
            dup
            invokespecial org.springframework.web.servlet.resource.PathResourceResolver.<init>:()V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.initAllowedLocations:()V
         6: .line 336
            aload 0 /* this */
            new org.springframework.web.servlet.resource.DefaultResourceResolverChain
            dup
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceResolvers:Ljava/util/List;
            invokespecial org.springframework.web.servlet.resource.DefaultResourceResolverChain.<init>:(Ljava/util/List;)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
         7: .line 337
            aload 0 /* this */
            new org.springframework.web.servlet.resource.DefaultResourceTransformerChain
            dup
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceTransformers:Ljava/util/List;
            invokespecial org.springframework.web.servlet.resource.DefaultResourceTransformerChain.<init>:(Lorg/springframework/web/servlet/resource/ResourceResolverChain;Ljava/util/List;)V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
         8: .line 339
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
            ifnonnull 10
         9: .line 340
            aload 0 /* this */
            new org.springframework.http.converter.ResourceHttpMessageConverter
            dup
            invokespecial org.springframework.http.converter.ResourceHttpMessageConverter.<init>:()V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
        10: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
            ifnonnull 12
        11: .line 343
            aload 0 /* this */
            new org.springframework.http.converter.ResourceRegionHttpMessageConverter
            dup
            invokespecial org.springframework.http.converter.ResourceRegionHttpMessageConverter.<init>:()V
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
        12: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.initContentNegotiationStrategy:()Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            putfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
        13: .line 347
            return
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    Exceptions:
      throws java.lang.Exception

  private void resolveResourceLocations();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 350
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 351
            return
         2: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 4
         3: .line 354
            new java.lang.IllegalArgumentException
            dup
            ldc "Please set either Resource-based \"locations\" or String-based \"locationValues\", but not both."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.obtainApplicationContext:()Lorg/springframework/context/ApplicationContext;
            astore 1 /* applicationContext */
        start local 1 // org.springframework.context.ApplicationContext applicationContext
         5: .line 359
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 27
      StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* location */
        start local 2 // java.lang.String location
         7: .line 360
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
            ifnull 12
         8: .line 361
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.embeddedValueResolver:Lorg/springframework/util/StringValueResolver;
            aload 2 /* location */
            invokeinterface org.springframework.util.StringValueResolver.resolveStringValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* resolvedLocation */
        start local 4 // java.lang.String resolvedLocation
         9: .line 362
            aload 4 /* resolvedLocation */
            ifnonnull 11
        10: .line 363
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Location resolved to null: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* location */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 365
      StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* resolvedLocation */
            astore 2 /* location */
        end local 4 // java.lang.String resolvedLocation
        12: .line 367
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* charset */
        start local 4 // java.nio.charset.Charset charset
        13: .line 368
            aload 2 /* location */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 2 /* location */
        14: .line 369
            aload 2 /* location */
            ldc "[charset="
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 21
        15: .line 370
            aload 2 /* location */
            bipush 93
            ldc "[charset="
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* endIndex */
        start local 5 // int endIndex
        16: .line 371
            iload 5 /* endIndex */
            iconst_m1
            if_icmpne 18
        17: .line 372
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid charset syntax in location: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* location */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 374
      StackMap locals: java.nio.charset.Charset int
      StackMap stack:
            aload 2 /* location */
            ldc "[charset="
            invokevirtual java.lang.String.length:()I
            iload 5 /* endIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
        19: .line 375
            aload 6 /* value */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 4 /* charset */
        20: .line 376
            aload 2 /* location */
            iload 5 /* endIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* location */
        end local 6 // java.lang.String value
        end local 5 // int endIndex
        21: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* applicationContext */
            aload 2 /* location */
            invokeinterface org.springframework.context.ApplicationContext.getResource:(Ljava/lang/String;)Lorg/springframework/core/io/Resource;
            astore 5 /* resource */
        start local 5 // org.springframework.core.io.Resource resource
        22: .line 379
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            aload 5 /* resource */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 380
            aload 4 /* charset */
            ifnull 27
        24: .line 381
            aload 5 /* resource */
            instanceof org.springframework.core.io.UrlResource
            ifne 26
        25: .line 382
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected charset for non-UrlResource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 384
      StackMap locals: org.springframework.core.io.Resource
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
            aload 5 /* resource */
            aload 4 /* charset */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // org.springframework.core.io.Resource resource
        end local 4 // java.nio.charset.Charset charset
        end local 2 // java.lang.String location
        27: .line 359
      StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler org.springframework.context.ApplicationContext top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        28: .line 387
            return
        end local 1 // org.springframework.context.ApplicationContext applicationContext
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            5   29     1  applicationContext  Lorg/springframework/context/ApplicationContext;
            7   27     2            location  Ljava/lang/String;
            9   12     4    resolvedLocation  Ljava/lang/String;
           13   27     4             charset  Ljava/nio/charset/Charset;
           16   21     5            endIndex  I
           19   21     6               value  Ljava/lang/String;
           22   27     5            resource  Lorg/springframework/core/io/Resource;

  protected void initAllowedLocations();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 395
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 396
            return
         2: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
         3: goto 13
         4: .line 399
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            instanceof org.springframework.web.servlet.resource.PathResourceResolver
            ifeq 12
         5: .line 400
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResourceResolvers:()Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.springframework.web.servlet.resource.PathResourceResolver
            astore 2 /* pathResolver */
        start local 2 // org.springframework.web.servlet.resource.PathResourceResolver pathResolver
         6: .line 401
            aload 2 /* pathResolver */
            invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.getAllowedLocations:()[Lorg/springframework/core/io/Resource;
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 8
         7: .line 402
            aload 2 /* pathResolver */
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
            iconst_0
            anewarray org.springframework.core.io.Resource
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.core.io.Resource[]
            invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setAllowedLocations:([Lorg/springframework/core/io/Resource;)V
         8: .line 404
      StackMap locals: org.springframework.web.servlet.resource.PathResourceResolver
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            ifnull 14
         9: .line 405
            aload 2 /* pathResolver */
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationCharsets:Ljava/util/Map;
            invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setLocationCharsets:(Ljava/util/Map;)V
        10: .line 406
            aload 2 /* pathResolver */
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            invokevirtual org.springframework.web.servlet.resource.PathResourceResolver.setUrlPathHelper:(Lorg/springframework/web/util/UrlPathHelper;)V
        11: .line 408
            goto 14
        end local 2 // org.springframework.web.servlet.resource.PathResourceResolver pathResolver
        12: .line 398
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 1 /* i */
            ifge 4
        end local 1 // int i
        14: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            3   14     1             i  I
            6   12     2  pathResolver  Lorg/springframework/web/servlet/resource/PathResourceResolver;

  protected org.springframework.web.accept.PathExtensionContentNegotiationStrategy initContentNegotiationStrategy();
    descriptor: ()Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 420
            aconst_null
            astore 1 /* mediaTypes */
        start local 1 // java.util.Map mediaTypes
         1: .line 421
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getContentNegotiationManager:()Lorg/springframework/web/accept/ContentNegotiationManager;
            ifnull 6
         2: .line 423
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getContentNegotiationManager:()Lorg/springframework/web/accept/ContentNegotiationManager;
            ldc Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            invokevirtual org.springframework.web.accept.ContentNegotiationManager.getStrategy:(Ljava/lang/Class;)Lorg/springframework/web/accept/ContentNegotiationStrategy;
            checkcast org.springframework.web.accept.PathExtensionContentNegotiationStrategy
         3: .line 422
            astore 2 /* strategy */
        start local 2 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy strategy
         4: .line 424
            aload 2 /* strategy */
            ifnull 6
         5: .line 425
            new java.util.HashMap
            dup
            aload 2 /* strategy */
            invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.getMediaTypes:()Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 1 /* mediaTypes */
        end local 2 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy strategy
         6: .line 428
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getServletContext:()Ljavax/servlet/ServletContext;
            ifnull 8
         7: .line 429
            new org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategy
            dup
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getServletContext:()Ljavax/servlet/ServletContext;
            aload 1 /* mediaTypes */
            invokespecial org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategy.<init>:(Ljavax/servlet/ServletContext;Ljava/util/Map;)V
            goto 9
         8: .line 430
      StackMap locals:
      StackMap stack:
            new org.springframework.web.accept.PathExtensionContentNegotiationStrategy
            dup
            aload 1 /* mediaTypes */
            invokespecial org.springframework.web.accept.PathExtensionContentNegotiationStrategy.<init>:(Ljava/util/Map;)V
         9: .line 428
      StackMap locals:
      StackMap stack: org.springframework.web.accept.PathExtensionContentNegotiationStrategy
            areturn
        end local 1 // java.util.Map mediaTypes
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            1   10     1  mediaTypes  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
            4    6     2    strategy  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;

  public void handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // javax.servlet.http.HttpServletRequest request
        start local 2 // javax.servlet.http.HttpServletResponse response
         0: .line 451
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getResource:(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/core/io/Resource;
            astore 3 /* resource */
        start local 3 // org.springframework.core.io.Resource resource
         1: .line 452
            aload 3 /* resource */
            ifnonnull 5
         2: .line 453
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            ldc "Resource not found"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         3: .line 454
            aload 2 /* response */
            sipush 404
            invokeinterface javax.servlet.http.HttpServletResponse.sendError:(I)V
         4: .line 455
            return
         5: .line 458
      StackMap locals: org.springframework.core.io.Resource
      StackMap stack:
            getstatic org.springframework.http.HttpMethod.OPTIONS:Lorg/springframework/http/HttpMethod;
            aload 1 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            invokevirtual org.springframework.http.HttpMethod.matches:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 459
            aload 2 /* response */
            ldc "Allow"
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getAllowHeader:()Ljava/lang/String;
            invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
         7: .line 460
            return
         8: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.checkRequest:(Ljavax/servlet/http/HttpServletRequest;)V
         9: .line 467
            new org.springframework.web.context.request.ServletWebRequest
            dup
            aload 1 /* request */
            aload 2 /* response */
            invokespecial org.springframework.web.context.request.ServletWebRequest.<init>:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
            aload 3 /* resource */
            invokeinterface org.springframework.core.io.Resource.lastModified:()J
            invokevirtual org.springframework.web.context.request.ServletWebRequest.checkNotModified:(J)Z
            ifeq 12
        10: .line 468
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            ldc "Resource not modified"
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        11: .line 469
            return
        12: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* response */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.prepareResponse:(Ljavax/servlet/http/HttpServletResponse;)V
        13: .line 476
            aload 0 /* this */
            aload 1 /* request */
            aload 3 /* resource */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getMediaType:(Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
            astore 4 /* mediaType */
        start local 4 // org.springframework.http.MediaType mediaType
        14: .line 479
            ldc "HEAD"
            aload 1 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 480
            aload 0 /* this */
            aload 2 /* response */
            aload 3 /* resource */
            aload 4 /* mediaType */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setHeaders:(Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
        16: .line 481
            return
        17: .line 484
      StackMap locals: org.springframework.http.MediaType
      StackMap stack:
            new org.springframework.http.server.ServletServerHttpResponse
            dup
            aload 2 /* response */
            invokespecial org.springframework.http.server.ServletServerHttpResponse.<init>:(Ljavax/servlet/http/HttpServletResponse;)V
            astore 5 /* outputMessage */
        start local 5 // org.springframework.http.server.ServletServerHttpResponse outputMessage
        18: .line 485
            aload 1 /* request */
            ldc "Range"
            invokeinterface javax.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 25
        19: .line 486
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
            ifnull 20
            iconst_1
            goto 21
      StackMap locals: org.springframework.http.server.ServletServerHttpResponse
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: ldc "Not initialized"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
        22: .line 487
            aload 0 /* this */
            aload 2 /* response */
            aload 3 /* resource */
            aload 4 /* mediaType */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.setHeaders:(Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
        23: .line 488
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceHttpMessageConverter:Lorg/springframework/http/converter/ResourceHttpMessageConverter;
            aload 3 /* resource */
            aload 4 /* mediaType */
            aload 5 /* outputMessage */
            invokevirtual org.springframework.http.converter.ResourceHttpMessageConverter.write:(Ljava/lang/Object;Lorg/springframework/http/MediaType;Lorg/springframework/http/HttpOutputMessage;)V
        24: .line 489
            goto 39
        25: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
            ifnull 26
            iconst_1
            goto 27
      StackMap locals:
      StackMap stack:
        26: iconst_0
      StackMap locals:
      StackMap stack: int
        27: ldc "Not initialized"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
        28: .line 492
            aload 2 /* response */
            ldc "Accept-Ranges"
            ldc "bytes"
            invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        29: .line 493
            new org.springframework.http.server.ServletServerHttpRequest
            dup
            aload 1 /* request */
            invokespecial org.springframework.http.server.ServletServerHttpRequest.<init>:(Ljavax/servlet/http/HttpServletRequest;)V
            astore 6 /* inputMessage */
        start local 6 // org.springframework.http.server.ServletServerHttpRequest inputMessage
        30: .line 495
            aload 6 /* inputMessage */
            invokevirtual org.springframework.http.server.ServletServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
            invokevirtual org.springframework.http.HttpHeaders.getRange:()Ljava/util/List;
            astore 7 /* httpRanges */
        start local 7 // java.util.List httpRanges
        31: .line 496
            aload 2 /* response */
            sipush 206
            invokeinterface javax.servlet.http.HttpServletResponse.setStatus:(I)V
        32: .line 497
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resourceRegionHttpMessageConverter:Lorg/springframework/http/converter/ResourceRegionHttpMessageConverter;
        33: .line 498
            aload 7 /* httpRanges */
            aload 3 /* resource */
            invokestatic org.springframework.http.HttpRange.toResourceRegions:(Ljava/util/List;Lorg/springframework/core/io/Resource;)Ljava/util/List;
            aload 4 /* mediaType */
            aload 5 /* outputMessage */
        34: .line 497
            invokevirtual org.springframework.http.converter.ResourceRegionHttpMessageConverter.write:(Ljava/lang/Object;Lorg/springframework/http/MediaType;Lorg/springframework/http/HttpOutputMessage;)V
        end local 7 // java.util.List httpRanges
        35: .line 499
            goto 39
        36: .line 500
      StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse org.springframework.core.io.Resource org.springframework.http.MediaType org.springframework.http.server.ServletServerHttpResponse org.springframework.http.server.ServletServerHttpRequest
      StackMap stack: java.lang.IllegalArgumentException
            pop
        37: .line 501
            aload 2 /* response */
            ldc "Content-Range"
            new java.lang.StringBuilder
            dup
            ldc "bytes */"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* resource */
            invokeinterface org.springframework.core.io.Resource.contentLength:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface javax.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
        38: .line 502
            aload 2 /* response */
            sipush 416
            invokeinterface javax.servlet.http.HttpServletResponse.sendError:(I)V
        end local 6 // org.springframework.http.server.ServletServerHttpRequest inputMessage
        39: .line 505
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.springframework.http.server.ServletServerHttpResponse outputMessage
        end local 4 // org.springframework.http.MediaType mediaType
        end local 3 // org.springframework.core.io.Resource resource
        end local 2 // javax.servlet.http.HttpServletResponse response
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   40     0           this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0   40     1        request  Ljavax/servlet/http/HttpServletRequest;
            0   40     2       response  Ljavax/servlet/http/HttpServletResponse;
            1   40     3       resource  Lorg/springframework/core/io/Resource;
           14   40     4      mediaType  Lorg/springframework/http/MediaType;
           18   40     5  outputMessage  Lorg/springframework/http/server/ServletServerHttpResponse;
           30   39     6   inputMessage  Lorg/springframework/http/server/ServletServerHttpRequest;
           31   35     7     httpRanges  Ljava/util/List<Lorg/springframework/http/HttpRange;>;
      Exception table:
        from    to  target  type
          30    35      36  Class java.lang.IllegalArgumentException
    Exceptions:
      throws javax.servlet.ServletException, java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  

  protected org.springframework.core.io.Resource getResource(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/core/io/Resource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // javax.servlet.http.HttpServletRequest request
         0: .line 509
            aload 1 /* request */
            getstatic org.springframework.web.servlet.HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE:Ljava/lang/String;
            invokeinterface javax.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 510
            aload 2 /* path */
            ifnonnull 5
         2: .line 511
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Required request attribute '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 512
            getstatic org.springframework.web.servlet.HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not set"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 511
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 515
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* path */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.processPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* path */
         6: .line 516
            aload 2 /* path */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 7
            aload 0 /* this */
            aload 2 /* path */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 517
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         8: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* path */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidEncodedPath:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 520
            aconst_null
            areturn
        10: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
            ldc "ResourceResolverChain not initialized."
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
        11: .line 524
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
            ldc "ResourceTransformerChain not initialized."
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
        12: .line 526
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.resolverChain:Lorg/springframework/web/servlet/resource/ResourceResolverChain;
            aload 1 /* request */
            aload 2 /* path */
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.getLocations:()Ljava/util/List;
            invokeinterface org.springframework.web.servlet.resource.ResourceResolverChain.resolveResource:(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/List;)Lorg/springframework/core/io/Resource;
            astore 3 /* resource */
        start local 3 // org.springframework.core.io.Resource resource
        13: .line 527
            aload 3 /* resource */
            ifnull 15
        14: .line 528
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.transformerChain:Lorg/springframework/web/servlet/resource/ResourceTransformerChain;
            aload 1 /* request */
            aload 3 /* resource */
            invokeinterface org.springframework.web.servlet.resource.ResourceTransformerChain.transform:(Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/core/io/Resource;
            astore 3 /* resource */
        15: .line 530
      StackMap locals: org.springframework.core.io.Resource
      StackMap stack:
            aload 3 /* resource */
            areturn
        end local 3 // org.springframework.core.io.Resource resource
        end local 2 // java.lang.String path
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0   16     1   request  Ljavax/servlet/http/HttpServletRequest;
            1   16     2      path  Ljava/lang/String;
           13   16     3  resource  Lorg/springframework/core/io/Resource;
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      request  

  protected java.lang.String processPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.lang.String path
         0: .line 546
            aload 1 /* path */
            ldc "\\"
            ldc "/"
            invokestatic org.springframework.util.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* path */
         1: .line 547
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.cleanDuplicateSlashes:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* path */
         2: .line 548
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.cleanLeadingSlash:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    3     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private java.lang.String cleanDuplicateSlashes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.lang.String path
         0: .line 552
            aconst_null
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 553
            iconst_0
            istore 3 /* prev */
        start local 3 // char prev
         2: .line 554
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 18
         4: .line 555
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 1 /* path */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* curr */
        start local 5 // char curr
         5: .line 557
            iload 5 /* curr */
            bipush 47
            if_icmpne 10
            iload 3 /* prev */
            bipush 47
            if_icmpne 10
         6: .line 558
            aload 2 /* sb */
            ifnonnull 8
         7: .line 559
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            iconst_0
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sb */
         8: .line 568
      StackMap locals: int
      StackMap stack:
            iload 5 /* curr */
            istore 3 /* prev */
         9: .line 561
            goto 17
        10: .line 563
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ifnull 16
        11: .line 564
            aload 2 /* sb */
            aload 1 /* path */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 566
            goto 16
        13: .line 567
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        14: .line 568
            iload 5 /* curr */
            istore 3 /* prev */
        15: .line 569
            aload 6
            athrow
        16: .line 568
      StackMap locals:
      StackMap stack:
            iload 5 /* curr */
            istore 3 /* prev */
        end local 5 // char curr
        17: .line 554
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 4 // int i
        19: .line 571
            aload 2 /* sb */
            ifnull 20
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 1 /* path */
      StackMap locals:
      StackMap stack: java.lang.String
        21: areturn
        end local 3 // char prev
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0   22     1  path  Ljava/lang/String;
            1   22     2    sb  Ljava/lang/StringBuilder;
            2   22     3  prev  C
            3   19     4     i  I
            5   17     5  curr  C
      Exception table:
        from    to  target  type
           5     8      13  any
          10    13      13  any
    MethodParameters:
      Name  Flags
      path  

  private java.lang.String cleanLeadingSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.lang.String path
         0: .line 575
            iconst_0
            istore 2 /* slash */
        start local 2 // boolean slash
         1: .line 576
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 13
         3: .line 577
      StackMap locals: int int
      StackMap stack:
            aload 1 /* path */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 6
         4: .line 578
            iconst_1
            istore 2 /* slash */
         5: .line 579
            goto 12
         6: .line 580
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 32
            if_icmple 12
            aload 1 /* path */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 127
            if_icmpeq 12
         7: .line 581
            iload 3 /* i */
            ifeq 8
            iload 3 /* i */
            iconst_1
            if_icmpne 9
            iload 2 /* slash */
            ifeq 9
         8: .line 582
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            areturn
         9: .line 584
      StackMap locals:
      StackMap stack:
            iload 2 /* slash */
            ifeq 10
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 1 /* path */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        11: areturn
        12: .line 576
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 3 // int i
        14: .line 587
            iload 2 /* slash */
            ifeq 15
            ldc "/"
            goto 16
      StackMap locals:
      StackMap stack:
        15: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        16: areturn
        end local 2 // boolean slash
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0   17     1   path  Ljava/lang/String;
            1   17     2  slash  Z
            2   14     3      i  I
    MethodParameters:
      Name  Flags
      path  

  private boolean isInvalidEncodedPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.lang.String path
         0: .line 596
            aload 1 /* path */
            ldc "%"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 8
         1: .line 599
            aload 1 /* path */
            ldc "UTF-8"
            invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* decodedPath */
        start local 2 // java.lang.String decodedPath
         2: .line 600
            aload 0 /* this */
            aload 2 /* decodedPath */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 601
            iconst_1
            ireturn
         4: .line 603
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* decodedPath */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.processPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* decodedPath */
         5: .line 604
            aload 0 /* this */
            aload 2 /* decodedPath */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.isInvalidPath:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 605
            iconst_1
            ireturn
        end local 2 // java.lang.String decodedPath
         7: .line 608
      StackMap locals: org.springframework.web.servlet.resource.ResourceHttpRequestHandler java.lang.String
      StackMap stack: java.lang.Exception
            pop
         8: .line 612
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    9     1         path  Ljava/lang/String;
            2    7     2  decodedPath  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       7  Class java.lang.IllegalArgumentException
           4     6       7  Class java.lang.IllegalArgumentException
           1     3       7  Class java.io.UnsupportedEncodingException
           4     6       7  Class java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      path  

  protected boolean isInvalidPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // java.lang.String path
         0: .line 632
            aload 1 /* path */
            ldc "WEB-INF"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 1
            aload 1 /* path */
            ldc "META-INF"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         1: .line 633
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
            ifeq 3
         2: .line 634
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Path with \"WEB-INF\" or \"META-INF\": ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
         3: .line 636
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 638
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc ":/"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 12
         5: .line 639
            aload 1 /* path */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 6
            aload 1 /* path */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 1 /* path */
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 2 /* relativePath */
        start local 2 // java.lang.String relativePath
         8: .line 640
            aload 2 /* relativePath */
            invokestatic org.springframework.util.ResourceUtils.isUrl:(Ljava/lang/String;)Z
            ifne 9
            aload 2 /* relativePath */
            ldc "url:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
         9: .line 641
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
            ifeq 11
        10: .line 642
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Path represents URL or has \"url:\" prefix: ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
        11: .line 644
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.String relativePath
        12: .line 647
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc ".."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 16
            aload 1 /* path */
            invokestatic org.springframework.util.StringUtils.cleanPath:(Ljava/lang/String;)Ljava/lang/String;
            ldc "../"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 16
        13: .line 648
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
            ifeq 15
        14: .line 649
            getstatic org.springframework.web.servlet.resource.ResourceHttpRequestHandler.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Path contains \"../\" after call to StringUtils#cleanPath: ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
        15: .line 651
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        16: .line 653
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.String path
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0   17     1          path  Ljava/lang/String;
            8   12     2  relativePath  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  protected org.springframework.http.MediaType getMediaType(javax.servlet.http.HttpServletRequest, org.springframework.core.io.Resource);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
        start local 1 // javax.servlet.http.HttpServletRequest request
        start local 2 // org.springframework.core.io.Resource resource
         0: .line 667
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            ifnull 2
         1: .line 668
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.contentNegotiationStrategy:Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            aload 2 /* resource */
            invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.getMediaTypeForResource:(Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
         3: .line 667
      StackMap locals:
      StackMap stack: org.springframework.http.MediaType
            areturn
        end local 2 // org.springframework.core.io.Resource resource
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
            0    4     1   request  Ljavax/servlet/http/HttpServletRequest;
            0    4     2  resource  Lorg/springframework/core/io/Resource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      request   
      resource  

  protected void setHeaders(javax.servlet.http.HttpServletResponse, org.springframework.core.io.Resource, org.springframework.http.MediaType);
    descriptor: (Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/core/io/Resource;Lorg/springframework/http/MediaType;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 684
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method setContentLengthLong(long) is undefined for the type HttpServletResponse\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
           Name  Flags
      response   
      resource   
      mediaType  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 714
            new java.lang.StringBuilder
            dup
            ldc "ResourceHttpRequestHandler "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.resource.ResourceHttpRequestHandler.formatLocations:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;

  private java.lang.Object formatLocations();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
         0: .line 718
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 2
         1: .line 719
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locationValues:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            ldc "\", \""
            ldc "[\""
            ldc "\"]"
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            areturn
         2: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 4
         3: .line 722
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.ResourceHttpRequestHandler.locations:Ljava/util/List;
            areturn
         4: .line 724
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 0 // org.springframework.web.servlet.resource.ResourceHttpRequestHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/web/servlet/resource/ResourceHttpRequestHandler;
}
SourceFile: "ResourceHttpRequestHandler.java"